diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 12:04:41 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 12:04:41 +0000 |
commit | 975f66f2eebe9dadba04f275774d4ab83f74cf25 (patch) | |
tree | 89bd26a93aaae6a25749145b7e4bca4a1e75b2be /ansible_collections/community/network/tests | |
parent | Initial commit. (diff) | |
download | ansible-975f66f2eebe9dadba04f275774d4ab83f74cf25.tar.xz ansible-975f66f2eebe9dadba04f275774d4ab83f74cf25.zip |
Adding upstream version 7.7.0+dfsg.upstream/7.7.0+dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'ansible_collections/community/network/tests')
805 files changed, 60669 insertions, 0 deletions
diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_instance/aliases b/ansible_collections/community/network/tests/integration/targets/ce_is_is_instance/aliases new file mode 100644 index 000000000..ad7ccf7ad --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_instance/aliases @@ -0,0 +1 @@ +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_instance/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_instance/defaults/main.yaml new file mode 100644 index 000000000..164afead2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_instance/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "[^_].*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_instance/meta/main.yml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_instance/meta/main.yml new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_instance/meta/main.yml @@ -0,0 +1 @@ + diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_instance/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_instance/tasks/main.yaml new file mode 100644 index 000000000..e06ccf174 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_instance/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: netconf.yaml, tags: ['netconf'] } diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_instance/tasks/netconf.yaml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_instance/tasks/netconf.yaml new file mode 100644 index 000000000..73b91adfa --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_instance/tasks/netconf.yaml @@ -0,0 +1,17 @@ +--- +- name: collect all netconf test cases + find: + paths: "{{ role_path }}/tests/netconf" + patterns: "{{ testcase }}.yaml" + use_regex: true + connection: local + register: test_cases + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test case (connection=netconf) + include: "{{ test_case_to_run }} ansible_connection=netconf" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_instance/tests/netconf/ce_is_is_instance.yaml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_instance/tests/netconf/ce_is_is_instance.yaml new file mode 100644 index 000000000..d7c5a7c6e --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_instance/tests/netconf/ce_is_is_instance.yaml @@ -0,0 +1,85 @@ +--- +- debug: + msg: "START ce_is_is_instance merged integration tests on connection={{ ansible_connection }}" + +- block: + - name: berfore merged, there should be no isis 100. + ce_is_is_instance: &delete + instance_id: 100 + state: absent + + - name: Merge the provided configuration with the exisiting running configuration + ce_is_is_instance: &merged + instance_id: 100 + vpn_name: '__public__' + register: result + + - name: change ansible_connection to network_cli + ce_netconf: + rpc: get + cfg_xml: "<filter type=\"subtree\"> + <isiscomm xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <isSites> + <isSite> + <instanceId></instanceId> + <vpnName></vpnName> + </isSite> + </isSites> + </isiscomm> + </filter>" + register: result_xml + + - name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + - "'<instanceId>100</instanceId>' in result_xml.end_state.result" + - "'<vpnName>__public__</vpnName>' in result_xml.end_state.result" + + - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_instance: *merged + register: result + + - name: Assert that the previous task was idempotent + assert: + that: + - "result['changed'] == false" + + - name: delete the provided configuration with the exisiting running configuration + ce_is_is_instance: *delete + register: result + + - name: change ansible_connection to network_cli + ce_netconf: + rpc: get + cfg_xml: "<filter type=\"subtree\"> + <isiscomm xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <isSites> + <isSite> + <instanceId></instanceId> + <vpnName></vpnName> + </isSite> + </isSites> + </isiscomm> + </filter>" + register: result_xml + + - name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + - "'<instanceId>100</instanceId>' not in result_xml.end_state.result" + - "'<vpnName>__public__</vpnName>' not in result_xml.end_state.result" + + - name: delete the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_instance: *delete + register: result + + - name: Assert that the previous task was idempotent + assert: + that: + - "result['changed'] == false" + + +- debug: + msg: "END ce_is_is_instance merged integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_interface/aliases b/ansible_collections/community/network/tests/integration/targets/ce_is_is_interface/aliases new file mode 100644 index 000000000..ad7ccf7ad --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_interface/aliases @@ -0,0 +1 @@ +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_interface/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_interface/defaults/main.yaml new file mode 100644 index 000000000..164afead2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_interface/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "[^_].*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_interface/meta/main.yml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_interface/meta/main.yml new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_interface/meta/main.yml @@ -0,0 +1 @@ + diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_interface/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_interface/tasks/main.yaml new file mode 100644 index 000000000..e06ccf174 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_interface/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: netconf.yaml, tags: ['netconf'] } diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_interface/tasks/netconf.yaml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_interface/tasks/netconf.yaml new file mode 100644 index 000000000..73b91adfa --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_interface/tasks/netconf.yaml @@ -0,0 +1,17 @@ +--- +- name: collect all netconf test cases + find: + paths: "{{ role_path }}/tests/netconf" + patterns: "{{ testcase }}.yaml" + use_regex: true + connection: local + register: test_cases + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test case (connection=netconf) + include: "{{ test_case_to_run }} ansible_connection=netconf" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_interface/tests/netconf/ce_is_is_interface.yaml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_interface/tests/netconf/ce_is_is_interface.yaml new file mode 100644 index 000000000..75afbbe89 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_interface/tests/netconf/ce_is_is_interface.yaml @@ -0,0 +1,133 @@ +--- +- debug: + msg: "START ce_is_is_interface merged integration tests on connection={{ ansible_connection }}" + +- block: + + - name: Merge the provided configuration with the exisiting running configuration + ce_is_is_interface: &delete + instance_id: 100 + ifname: 10GE1/0/1 + leveltype: level_1 + level1dispriority: 10 + silentenable: true + silentcost: true + typep2penable: true + snpacheck: true + p2pnegotiationmode: 2_way + p2ppeeripignore: true + ppposicpcheckenable: true + level2cost: 10 + state: absent + register: result + + - name: Merge the provided configuration with the exisiting running configuration + ce_is_is_interface: &merged + instance_id: 100 + ifname: 10GE1/0/1 + leveltype: level_1 + level1dispriority: 10 + silentenable: true + silentcost: true + typep2penable: true + snpacheck: true + p2pnegotiationmode: 2_way + p2ppeeripignore: true + ppposicpcheckenable: true + level2cost: 10 + register: result + + - name: use ce_netconf to get configuration + ce_netconf: + rpc: get + cfg_xml: "<filter type=\"subtree\"> + <isiscomm xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <isSites> + <isSite> + <instanceId>100</instanceId> + <isCircuits> + <isCircuit> + </isCircuit> + </isCircuits> + </isSite> + </isSites> + </isiscomm> + </filter>" + register: result_xml + + - name: Assert the configuration is reflected on host + assert: + that: + - "'<ifName>10GE1/0/1</ifName>' in result_xml.end_state.result" + - "'<circuitLevelType>level_1</circuitLevelType>' in result_xml.end_state.result" + - "'<level1DisPriority>10</level1DisPriority>' in result_xml.end_state.result" + - "'<level2DisPriority>10</level2DisPriority>' in result_xml.end_state.result" + - "'<silentEnable>true</silentEnable>' in result_xml.end_state.result" + - "'<silentCost>true</silentCost>' in result_xml.end_state.result" + - "'<typeP2pEnable>true</typeP2pEnable>' in result_xml.end_state.result" + - "'<snpaCheck>true</snpaCheck>' in result_xml.end_state.result" + - "'<p2pNegotiationMode>2_way</p2pNegotiationMode>' in result_xml.end_state.result" + - "'<p2pPeerIPIgnore>true</p2pPeerIPIgnore>' in result_xml.end_state.result" + - "'<pPPOsicpCheckEnable>true</pPPOsicpCheckEnable>' in result_xml.end_state.result" + - "'<level1Cost>10</level1Cost>' in result_xml.end_state.result" + - "'<level2Cost>10</level2Cost>' in result_xml.end_state.result" + + - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_interface: *merged + register: result + + - name: Assert that the previous task was idempotent + assert: + that: + - "result['changed'] == false" + + - name: delete the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_interface: *delete + register: result + + - name: use ce_netconf to get configuration + ce_netconf: + rpc: get + cfg_xml: "<filter type=\"subtree\"> + <isiscomm xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <isSites> + <isSite> + <instanceId>100</instanceId> + <isCircuits> + <isCircuit> + </isCircuit> + </isCircuits> + </isSite> + </isSites> + </isiscomm> + </filter>" + register: result_xml + + - name: Assert the configuration is reflected on host + assert: + that: + - "'<ifName>10GE1/0/1</ifName>' not in result_xml.end_state.result" + - "'<circuitLevelType>level_1</circuitLevelType>' not in result_xml.end_state.result" + - "'<level1DisPriority>10</level1DisPriority>' not in result_xml.end_state.result" + - "'<level2DisPriority>10</level2DisPriority>' not in result_xml.end_state.result" + - "'<silentEnable>true</silentEnable>' not in result_xml.end_state.result" + - "'<silentCost>true</silentCost>' not in result_xml.end_state.result" + - "'<typeP2pEnable>true</typeP2pEnable>' not in result_xml.end_state.result" + - "'<snpaCheck>true</snpaCheck>' not in result_xml.end_state.result" + - "'<p2pNegotiationMode>2_way</p2pNegotiationMode>' not in result_xml.end_state.result" + - "'<p2pPeerIPIgnore>true</p2pPeerIPIgnore>' not in result_xml.end_state.result" + - "'<pPPOsicpCheckEnable>true</pPPOsicpCheckEnable>' not in result_xml.end_state.result" + - "'<level1Cost>10</level1Cost>' not in result_xml.end_state.result" + - "'<level2Cost>10</level2Cost>' not in result_xml.end_state.result" + + - name: delete the provided configuration with the existing running configuration (REPEAT) + ce_is_is_interface: *delete + register: result + + - name: Assert that the previous task was REPEAT + assert: + that: + - "result['changed'] == false" + +- debug: + msg: "END ce_is_is_interface merged integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/aliases b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/aliases new file mode 100644 index 000000000..ad7ccf7ad --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/aliases @@ -0,0 +1 @@ +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/defaults/main.yaml new file mode 100644 index 000000000..164afead2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "[^_].*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tasks/main.yaml new file mode 100644 index 000000000..e06ccf174 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: netconf.yaml, tags: ['netconf'] } diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tasks/netconf.yaml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tasks/netconf.yaml new file mode 100644 index 000000000..73b91adfa --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tasks/netconf.yaml @@ -0,0 +1,17 @@ +--- +- name: collect all netconf test cases + find: + paths: "{{ role_path }}/tests/netconf" + patterns: "{{ testcase }}.yaml" + use_regex: true + connection: local + register: test_cases + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test case (connection=netconf) + include: "{{ test_case_to_run }} ansible_connection=netconf" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/cleanup.yaml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/cleanup.yaml new file mode 100644 index 000000000..03c0f0ee9 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/cleanup.yaml @@ -0,0 +1,21 @@ +--- +- debug: + msg: "CLEANUP ce_is_is_view, deleted integration tests on connection={{ ansible_connection }}" + +- name: Get lacp config by ce_netconf. + ce_netconf: + rpc: get + cfg_xml: "<config> + <isiscomm xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <isSites> + <isSite operation=\"delete\"> + <instanceId>100</instanceId> + <vpnName>_public_</vpnName> + <description>ISIS</description> + </isSite> + </isSites> + </isiscomm> + </config>" + +- debug: + msg: "END CLEANUP ce_is_is_view, deleted integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/setup.yaml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/setup.yaml new file mode 100644 index 000000000..92ec370c2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/setup.yaml @@ -0,0 +1,22 @@ +--- +- debug: + msg: "SETUP ce_is_is_view integration tests on connection={{ ansible_connection }}" +# create ISIS 100 + +- name: Get lacp config by ce_netconf. + ce_netconf: + rpc: get + cfg_xml: "<config> + <isiscomm xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <isSites> + <isSite operation=\"merg\"> + <instanceId>100</instanceId> + <vpnName>_public_</vpnName> + <description>ISIS</description> + </isSite> + </isSites> + </isiscomm> + </config>" + +- debug: + msg: "END SETUP ce_is_is_view integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_is_is_view_entity .yaml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_is_is_view_entity .yaml new file mode 100644 index 000000000..1c81c2ca7 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_is_is_view_entity .yaml @@ -0,0 +1,78 @@ +--- +- debug: + msg: "START ce_is_is_view entity presented integration tests on connection={{ ansible_connection }}" +- include_tasks: setup.yaml + +- name: present the provided configuration with the exisiting running configuration + ce_is_is_view: &present + instance_id: 100 + netentity: isis_net_entity + register: result + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: Get basic config by ce_netconf. + ce_netconf: &get_config + rpc: get + cfg_xml: "<filter type=\"subtree\"> + <isiscomm xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <isSites> + <isSite> + <instanceId>100</instanceId> + <isNetEntitys> + <isNetEntity> + <netEntity></netEntity> + </isNetEntity> + </isNetEntitys> + </isSite> + </isSites> + </isiscomm> + </filter>" + register: result_xml + + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_view: *present + register: repeat + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<instanceId>100</instanceId>' in result_xml.end_state.result" + - "'<netEntity>isis_net_entity</netEntity>' in result_xml.end_state.result" + +- name: present the provided configuration with the exisiting running configuration + ce_is_is_view: &absent + instance_id: 100 + netentity: isis_net_entity + state: absent + register: result + + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_view: *absent + register: repeat + +- name: Get basic config by ce_netconf. + ce_netconf: *get_config + register: result_xml + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<instanceId>100</instanceId>' not in result_xml.end_state.result" + - "''<netEntity>isis_net_entity</netEntity>' not in result_xml.end_state.result" + # after present, isis 100 should be deleted +- include_tasks: cleanup.yaml +- debug: + msg: "END ce_is_is_view pentity resentd integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_isis_bfd.yaml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_isis_bfd.yaml new file mode 100644 index 000000000..6aa200f6e --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_isis_bfd.yaml @@ -0,0 +1,92 @@ +--- +- debug: + msg: "START ce_is_is_view EXPORTROUTE route policy presented integration tests on connection={{ ansible_connection }}" +- include_tasks: setup.yaml + +- name: present the provided configuration with the exisiting running configuration + ce_is_is_view: &present + instance_id: 100 + bfd_min_rx: 100 + bfd_min_tx: 100 + bfd_multiplier_num: 10 + register: result + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: Get basic config by ce_netconf. + ce_netconf: &get_config + rpc: get + cfg_xml: "<filter type=\"subtree\"> + <isiscomm xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <isSites> + <isSite> + <instanceId>100</instanceId> + <isSiteMTs> + <isSiteMT> + <addressFamily>afIpv4</addressFamily> + <mtId>0</mtId> + <bfdMinRx></bfdMinRx> + <bfdMinTx></bfdMinTx> + <bfdMultNum></bfdMultNum> + </isSiteMT> + </isSiteMTs> + </isSite> + </isSites> + </isiscomm> + </filter>" + register: result_xml + + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_view: *present + register: repeat + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<bfdMinRx>100</bfdMinRx>' in result_xml.end_state.result" + - "'<bfdMinTx>100</bfdMinTx>' in result_xml.end_state.result" + - "'<bfdMultNum>10</bfdMultNum>' in result_xml.end_state.result" + +- name: present the provided configuration with the exisiting running configuration + ce_is_is_view: &absent + instance_id: 100 + defaultmode: always + cost: 10 + mode_tag: 10 + level_type: level_1 + avoid_learning: true + mode_routepolicyname: routepolicy_name + tag: 100 + state: absent + register: result + + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_view: *absent + register: repeat + +- name: Get basic config by ce_netconf. + ce_netconf: *get_config + register: result_xml + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<bfdMinRx>100</bfdMinRx>' not in result_xml.end_state.result" + - "'<bfdMinTx>100</bfdMinTx>' not in result_xml.end_state.result" + - "'<bfdMultNum>10</bfdMultNum>' not in result_xml.end_state.result" +# after present, isis 100 should be deleted +- include_tasks: cleanup.yaml +- debug: + msg: "END ce_is_is_view EXPORTROUTE route policy resentd integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_isis_export.yaml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_isis_export.yaml new file mode 100644 index 000000000..f83a07c2c --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_isis_export.yaml @@ -0,0 +1,96 @@ +--- +- debug: + msg: "START ce_is_is_view EXPORTROUTE route policy presented integration tests on connection={{ ansible_connection }}" +- include_tasks: setup.yaml + +- name: present the provided configuration with the exisiting running configuration + ce_is_is_view: &present + instance_id: 100 + export_protocol: ospf + export_policytype: aclNumOrName + export_processid: 100 + register: result + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: Get basic config by ce_netconf. + ce_netconf: &get_config + rpc: get + cfg_xml: "<filter type=\"subtree\"> + <isiscomm xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <isSites> + <isSite> + <instanceId>100</instanceId> + <isSiteMTs> + <isSiteMT> + <addressFamily>afIpv4</addressFamily> + <mtId>0</mtId> + <isFilterExports> + <isFilterExport> + <protocol></protocol> + <processId></processId> + <policyType></policyType> + </isFilterExport> + </isFilterExports> + </isSiteMT> + </isSiteMTs> + </isSite> + </isSites> + </isiscomm> + </filter>" + register: result_xml + + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_view: *present + register: repeat + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<protocol>ospf</protocol>' in result_xml.end_state.result" + - "'<processId>100</processId>' in result_xml.end_state.result" + - "'<policyType>level_1</policyType>' in result_xml.end_state.result" + +- name: present the provided configuration with the exisiting running configuration + ce_is_is_view: &absent + instance_id: 100 + defaultmode: always + cost: 10 + mode_tag: 10 + level_type: level_1 + avoid_learning: true + mode_routepolicyname: routepolicy_name + tag: 100 + state: absent + register: result + + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_view: *absent + register: repeat + +- name: Get basic config by ce_netconf. + ce_netconf: *get_config + register: result_xml + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<protocol>ospf</protocol>' not in result_xml.end_state.result" + - "'<processId>100</processId>' not in result_xml.end_state.result" + - "'<policyType>level_1</policyType>' in result_xml.end_state.result" +# after present, isis 100 should be deleted +- include_tasks: cleanup.yaml +- debug: + msg: "END ce_is_is_view EXPORTROUTE route policy resentd integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_isis_import.yaml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_isis_import.yaml new file mode 100644 index 000000000..c5b4e60df --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_isis_import.yaml @@ -0,0 +1,124 @@ +--- +- debug: + msg: "START ce_is_is_view import route policy presented integration tests on connection={{ ansible_connection }}" +- include_tasks: setup.yaml + +- name: present the provided configuration with the exisiting running configuration + ce_is_is_view: &present + instance_id: 100 + protocol: ospf + processid: 100 + cost_type: external + import_cost: 10 + import_tag: 10 + import_route_policy: routepolicy_name + impotr_leveltype: level_1 + inheritcost: true + permitibgp: true + tag: 100 + register: result + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: Get basic config by ce_netconf. + ce_netconf: &get_config + rpc: get + cfg_xml: "<filter type=\"subtree\"> + <isiscomm xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <isSites> + <isSite> + <instanceId>100</instanceId> + <isSiteMTs> + <isSiteMT> + <addressFamily>afIpv4</addressFamily> + <mtId>0</mtId> + <isImportRoutes> + <isImportRoute> + <protocol></protocol> + <processId></processId> + <costType></costType> + <cost></cost> + <tag></tag> + <policyType></policyType> + <routePolicyName></routePolicyName> + <levelType></levelType> + <inheritCost></inheritCost> + <permitIbgp></permitIbgp> + </isImportRoute> + </isImportRoutes> + </isSiteMT> + </isSiteMTs> + </isSite> + </isSites> + </isiscomm> + </filter>" + register: result_xml + + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_view: *present + register: repeat + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<protocol>ospf</protocol>' in result_xml.end_state.result" + - "'<processId>100</processId>' in result_xml.end_state.result" + - "'<costType>external</costType>' in result_xml.end_state.result" + - "'<cost>10</cost>' in result_xml.end_state.result" + - "'<tag>10</tag>' in result_xml.end_state.result" + - "'<policyType>level_1</policyType>' in result_xml.end_state.result" + - "'<routePolicyName>routepolicy_name</routePolicyName>' in result_xml.end_state.result" + - "'<levelType>level_1</levelType>' in result_xml.end_state.result" + - "'<inheritCost>true</inheritCost>' in result_xml.end_state.result" + - "'<permitIbgp>true</permitIbgp>' in result_xml.end_state.result" + +- name: present the provided configuration with the exisiting running configuration + ce_is_is_view: &absent + instance_id: 100 + defaultmode: always + cost: 10 + mode_tag: 10 + level_type: level_1 + avoid_learning: true + mode_routepolicyname: routepolicy_name + tag: 100 + state: absent + register: result + + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_view: *absent + register: repeat + +- name: Get basic config by ce_netconf. + ce_netconf: *get_config + register: result_xml + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<protocol>ospf</protocol>' not in result_xml.end_state.result" + - "'<processId>100</processId>' not in result_xml.end_state.result" + - "'<costType>external</costType>' not in result_xml.end_state.result" + - "'<cost>10</cost>' not in result_xml.end_state.result" + - "'<tag>10</tag>' not in result_xml.end_state.result" + - "'<policyType>level_1</policyType>' not in result_xml.end_state.result" + - "'<routePolicyName>routepolicy_name</routePolicyName>' not in result_xml.end_state.result" + - "'<levelType>level_1</levelType>' not in result_xml.end_state.result" + - "'<inheritCost>true</inheritCost>' not in result_xml.end_state.result" + - "'<permitIbgp>true</permitIbgp>' not in result_xml.end_state.result" +# after present, isis 100 should be deleted +- include_tasks: cleanup.yaml +- debug: + msg: "END ce_is_is_view import route policy resentd integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_isis_l1tol2.yaml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_isis_l1tol2.yaml new file mode 100644 index 000000000..f12b5034b --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_isis_l1tol2.yaml @@ -0,0 +1,109 @@ +--- +- debug: + msg: "START ce_is_is_view import route policy presented integration tests on connection={{ ansible_connection }}" +- include_tasks: setup.yaml + +- name: present the provided configuration with the exisiting running configuration + ce_is_is_view: &present + instance_id: 100 + allow_filter: true + allow_up_down: true + ip_prefix_name: prefix_name + aclnum_or_name: 3001 + penetration_direct: level1-level2 + import_routepolicy_name: routepolicy_name + tag: 100 + register: result + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: Get basic config by ce_netconf. + ce_netconf: &get_config + rpc: get + cfg_xml: "<filter type=\"subtree\"> + <isiscomm xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <isSites> + <isSite> + <instanceId>100</instanceId> + <isSiteMTs> + <isSiteMT> + <addressFamily>afIpv4</addressFamily> + <mtId>0</mtId> + <isLeakRouteLevel2ToLevel1s> + <isLeakRouteLevel2ToLevel1> + <tag></tag> + <routePolicyName></routePolicyName> + <aclNumOrName></aclNumOrName> + <ipPrefix></ipPrefix> + <allowFilter></allowFilter> + <allowUpdown></allowUpdown> + </isLeakRouteLevel2ToLevel1> + </isLeakRouteLevel2ToLevel1s> + </isSiteMT> + </isSiteMTs> + </isSite> + </isSites> + </isiscomm> + </filter>" + register: result_xml + + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_view: *present + register: repeat + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<tag>100</tag>' in result_xml.end_state.result" + - "'<routePolicyName>routepolicy_name</routePolicyName>' in result_xml.end_state.result" + - "'<allowUpdown>true</allowUpdown>' in result_xml.end_state.result" + - "'<aclNumOrName>3001</aclNumOrName>' in result_xml.end_state.result" + - "'<ipPrefix>prefix_name</ipPrefix>' in result_xml.end_state.result" + - "'<allowFilter>true</allowFilter>' in result_xml.end_state.result" + +- name: present the provided configuration with the exisiting running configuration + ce_is_is_view: &absent + instance_id: 100 + allow_filter: true + allow_up_down: true + ip_prefix_name: prefix_name + aclnum_or_name: 3001 + penetration_direct: level1-level2 + import_routepolicy_name: routepolicy_name + tag: 100 + state: absent + register: result + + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_view: *absent + register: repeat + +- name: Get basic config by ce_netconf. + ce_netconf: *get_config + register: result_xml + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<tag>100</tag>' in result_xml.end_state.result" + - "'<routePolicyName>routepolicy_name</routePolicyName>' not in result_xml.end_state.result" + - "'<allowUpdown>true</allowUpdown>' not in result_xml.end_state.result" + - "'<aclNumOrName>3001</aclNumOrName>' not in result_xml.end_state.result" + - "'<ipPrefix>prefix_name</ipPrefix>' not in result_xml.end_state.result" + - "'<allowFilter>true</allowFilter>' not in result_xml.end_state.result" + # after present, isis 100 should be deleted +- include_tasks: cleanup.yaml +- debug: + msg: "END ce_is_is_view import route policy resentd integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_isis_l2tol1.yaml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_isis_l2tol1.yaml new file mode 100644 index 000000000..3af5111fb --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_isis_l2tol1.yaml @@ -0,0 +1,109 @@ +--- +- debug: + msg: "START ce_is_is_view import route policy presented integration tests on connection={{ ansible_connection }}" +- include_tasks: setup.yaml + +- name: present the provided configuration with the exisiting running configuration + ce_is_is_view: &present + instance_id: 100 + penetration_direct: level2-level1 + allow_filter: true + allow_up_down: true + ip_prefix_name: prefix_name + aclnum_or_name: 3001 + import_routepolicy_name: routepolicy_name + tag: 100 + register: result + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: Get basic config by ce_netconf. + ce_netconf: &get_config + rpc: get + cfg_xml: "<filter type=\"subtree\"> + <isiscomm xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <isSites> + <isSite> + <instanceId>100</instanceId> + <isSiteMTs> + <isSiteMT> + <addressFamily>afIpv4</addressFamily> + <mtId>0</mtId> + <isLeakRouteLevel2ToLevel1s> + <isLeakRouteLevel1ToLevel2s> + <tag></tag> + <routePolicyName></routePolicyName> + <aclNumOrName></aclNumOrName> + <ipPrefix></ipPrefix> + <allowFilter></allowFilter> + <allowUpdown></allowUpdown> + </isLeakRouteLevel1ToLevel2s> + </isLeakRouteLevel2ToLevel1s> + </isSiteMT> + </isSiteMTs> + </isSite> + </isSites> + </isiscomm> + </filter>" + register: result_xml + + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_view: *present + register: repeat + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<tag>100</tag>' in result_xml.end_state.result" + - "'<routePolicyName>routepolicy_name</routePolicyName>' in result_xml.end_state.result" + - "'<allowUpdown>true</allowUpdown>' in result_xml.end_state.result" + - "'<aclNumOrName>3001</aclNumOrName>' in result_xml.end_state.result" + - "'<ipPrefix>prefix_name</ipPrefix>' in result_xml.end_state.result" + - "'<allowFilter>true</allowFilter>' in result_xml.end_state.result" + +- name: present the provided configuration with the exisiting running configuration + ce_is_is_view: &absent + instance_id: 100 + penetration_direct: level2-level1 + allow_filter: true + allow_up_down: true + ip_prefix_name: prefix_name + aclnum_or_name: 3001 + import_routepolicy_name: routepolicy_name + tag: 100 + state: absent + register: result + + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_view: *absent + register: repeat + +- name: Get basic config by ce_netconf. + ce_netconf: *get_config + register: result_xml + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<tag>100</tag>' in result_xml.end_state.result" + - "'<routePolicyName>routepolicy_name</routePolicyName>' not in result_xml.end_state.result" + - "'<allowUpdown>true</allowUpdown>' not in result_xml.end_state.result" + - "'<aclNumOrName>3001</aclNumOrName>' not in result_xml.end_state.result" + - "'<ipPrefix>prefix_name</ipPrefix>' not in result_xml.end_state.result" + - "'<allowFilter>true</allowFilter>' not in result_xml.end_state.result" + # after present, isis 100 should be deleted +- include_tasks: cleanup.yaml +- debug: + msg: "END ce_is_is_view import route policy resentd integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_isis_max_load.yaml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_isis_max_load.yaml new file mode 100644 index 000000000..0629d3415 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_isis_max_load.yaml @@ -0,0 +1,80 @@ +--- +- debug: + msg: "START ce_is_is_view maxLoadBalancing presented integration tests on connection={{ ansible_connection }}" +- include_tasks: setup.yaml + +- name: present the provided configuration with the exisiting running configuration + ce_is_is_view: &present + instance_id: 100 + max_load: 30 + register: result + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: Get basic config by ce_netconf. + ce_netconf: &get_config + rpc: get + cfg_xml: "<filter type=\"subtree\"> + <isiscomm xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <isSites> + <isSite> + <instanceId>100</instanceId> + <isSiteMTs> + <isSiteMT> + <addressFamily>afIpv4</addressFamily> + <mtId>0</mtId> + <maxLoadBalancing></maxLoadBalancing> + </isSiteMT> + </isSiteMTs> + </isSite> + </isSites> + </isiscomm> + </filter>" + register: result_xml + + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_view: *present + register: repeat + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<instanceId>100</instanceId>' in result_xml.end_state.result" + - "'<maxLoadBalancing>30</maxLoadBalancing>' in result_xml.end_state.result" + +- name: present the provided configuration with the exisiting running configuration + ce_is_is_view: &absent + instance_id: 100 + max_load: 30 + state: absent + register: result + + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_view: *absent + register: repeat + +- name: Get basic config by ce_netconf. + ce_netconf: *get_config + register: result_xml + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<instanceId>100</instanceId>' not in result_xml.end_state.result" + - "'<maxLoadBalancing>30</maxLoadBalancing>' not in result_xml.end_state.result" + # after present, isis 100 should be deleted +- include_tasks: cleanup.yaml +- debug: + msg: "END ce_is_is_view maxLoadBalancing resentd integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_isis_preferences.yaml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_isis_preferences.yaml new file mode 100644 index 000000000..97d232fec --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_isis_preferences.yaml @@ -0,0 +1,87 @@ +--- +- debug: + msg: "START ce_is_is_view preferences presented integration tests on connection={{ ansible_connection }}" +- include_tasks: setup.yaml + +- name: present the provided configuration with the exisiting running configuration + ce_is_is_view: &present + instance_id: 100 + preference_value: 100 + route_policy_name: route + register: result + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: Get basic config by ce_netconf. + ce_netconf: &get_config + rpc: get + cfg_xml: "<filter type=\"subtree\"> + <isiscomm xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <isSites> + <isSite> + <instanceId>100</instanceId> + <isSiteMTs> + <isSiteMT> + <isPreferences> + <isPreference> + <preferenceValue></preferenceValue> + <routePolicyName></routePolicyName> + </isPreference> + </isPreferences> + </isSiteMT> + </isSiteMTs> + </isSite> + </isSites> + </isiscomm> + </filter>" + register: result_xml + + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_view: *present + register: repeat + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<instanceId>100</instanceId>' in result_xml.end_state.result" + - "'<preferenceValue>100</preferenceValue>' in result_xml.end_state.result" + - "'<routePolicyName>route</routePolicyName>' in result_xml.end_state.result" + +- name: present the provided configuration with the exisiting running configuration + ce_is_is_view: &absent + instance_id: 100 + preference_value: 100 + route_policy_name: route + state: absent + register: result + + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_view: *absent + register: repeat + +- name: Get basic config by ce_netconf. + ce_netconf: *get_config + register: result_xml + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<instanceId>100</instanceId>' not in result_xml.end_state.result" + - "''<preferenceValue>100</preferenceValue>' not in result_xml.end_state.result" + - "''<routePolicyName>route</routePolicyName>' not in result_xml.end_state.result" + # after present, isis 100 should be deleted +- include_tasks: cleanup.yaml +- debug: + msg: "END ce_is_is_view Preference resentd integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_isis_view_basic.yaml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_isis_view_basic.yaml new file mode 100644 index 000000000..ca95d0e05 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_isis_view_basic.yaml @@ -0,0 +1,115 @@ +--- +- debug: + msg: "START ce_is_is_view presented integration tests on connection={{ ansible_connection }}" +- include_tasks: setup.yaml + +- name: present the provided configuration with the exisiting running configuration + ce_is_is_view: &present + instance_id: 100 + description: ISIS + islevel: level_1 + coststyle: narrow + relaxSpfLimit: true + stdlevel1cost: 60 + stdlevel2cost: 60 + stdbandwidth: 100 + autocostenable: true + autocostenablecompatible: true + register: result + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: Get basic config by ce_netconf. + ce_netconf: &get_config + rpc: get + cfg_xml: "<filter type=\"subtree\"> + <isiscomm xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <isSites> + <isSite> + <instanceId>100</instanceId> + <description></description> + <isLevel></isLevel> + <costStyle></costStyle> + <relaxSpfLimit></relaxSpfLimit> + <stdLevel1Cost></stdLevel1Cost> + <stdLevel2Cost></stdLevel2Cost> + <stdbandwidth></stdbandwidth> + <stdAutoCostEnable></stdAutoCostEnable> + <stdAutoCostEnableCompatible></stdAutoCostEnableCompatible> + </isSite> + </isiscomm> + </filter>" + register: result_xml + + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_view: *present + register: repeat + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<instanceId>100</instanceId>' in result_xml.end_state.result" + - "'<vpnName>_public_</vpnName>' in result_xml.end_state.result" + - "'<description>ISIS</description>' in result_xml.end_state.result" + - "'<isLevel>level_1</isLevel>' in result_xml.end_state.result" + - "'<costStyle>narrow</costStyle>' in result_xml.end_state.result" + - "'<relaxSpfLimit>true</relaxSpfLimit>' in result_xml.end_state.result" + - "'<stdLevel1Cost>60</stdLevel1Cost>' in result_xml.end_state.result" + - "'<stdLevel2Cost>60</stdLevel2Cost>' in result_xml.end_state.result" + - "'<stdbandwidth>100</stdbandwidth>' in result_xml.end_state.result" + - "'<stdAutoCostEnable>true</stdAutoCostEnable>' in result_xml.end_state.result" + - "'<stdAutoCostEnableCompatible>true</stdAutoCostEnableCompatible>' in result_xml.end_state.result" + +- name: present the provided configuration with the exisiting running configuration + ce_is_is_view: &absent + instance_id: 100 + description: ISIS + islevel: level_1 + coststyle: narrow + relaxSpfLimit: true + stdlevel1cost: 60 + stdlevel2cost: 60 + stdbandwidth: 100 + autocostenable: true + autocostenablecompatible: true + state: absent + register: result + + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_view: *absent + register: repeat + +- name: Get basic config by ce_netconf. + ce_netconf: *get_config + register: result_xml + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<instanceId>100</instanceId>' not in result_xml.end_state.result" + - "'<vpnName>_public_</vpnName>' not in result_xml.end_state.result" + - "'<description>ISIS</description>' not in result_xml.end_state.result" + - "'<isLevel>level_1</isLevel>' not in result_xml.end_state.result" + - "'<costStyle>narrow</costStyle>' not in result_xml.end_state.result" + - "'<relaxSpfLimit>true</relaxSpfLimit>' not in result_xml.end_state.result" + - "'<stdLevel1Cost>60</stdLevel1Cost>' not in result_xml.end_state.result" + - "'<stdLevel2Cost>60</stdLevel2Cost>' not in result_xml.end_state.result" + - "'<stdbandwidth>100</stdbandwidth>' not in result_xml.end_state.result" + - "'<stdAutoCostEnable>true</stdAutoCostEnable>' not in result_xml.end_state.result" + - "'<stdAutoCostEnableCompatible>true</stdAutoCostEnableCompatible>' not in result_xml.end_state.result" +# after present, isis 100 should be deleted +- include_tasks: cleanup.yaml +- debug: + msg: "END ce_is_is_view presentd integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_issi_default.yaml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_issi_default.yaml new file mode 100644 index 000000000..1059054dc --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_ce_issi_default.yaml @@ -0,0 +1,111 @@ +--- +- debug: + msg: "START ce_is_is_view import route policy presented integration tests on connection={{ ansible_connection }}" +- include_tasks: setup.yaml + +- name: present the provided configuration with the exisiting running configuration + ce_is_is_view: &present + instance_id: 100 + defaultmode: always + cost: 10 + mode_tag: 10 + level_type: level_1 + avoid_learning: true + mode_routepolicyname: routepolicy_name + tag: 100 + register: result + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: Get basic config by ce_netconf. + ce_netconf: &get_config + rpc: get + cfg_xml: "<filter type=\"subtree\"> + <isiscomm xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <isSites> + <isSite> + <instanceId>100</instanceId> + <isSiteMTs> + <isSiteMT> + <addressFamily>afIpv4</addressFamily> + <mtId>0</mtId> + <isDefaultRoutes> + <isDefaultRoute> + <defaultMode></defaultMode> + <routePolicyName></routePolicyName> + <cost></cost> + <tag></tag> + <levelType></levelType> + <avoidLearning></avoidLearning> + </isDefaultRoute> + </isDefaultRoutes> + </isSiteMT> + </isSiteMTs> + </isSite> + </isSites> + </isiscomm> + </filter>" + register: result_xml + + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_view: *present + register: repeat + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<tag>100</tag>' in result_xml.end_state.result" + - "'<defaultMode>always</defaultMode>' in result_xml.end_state.result" + - "'<routePolicyName>routepolicy_name</routePolicyName>' in result_xml.end_state.result" + - "'<cost>10</cost>' in result_xml.end_state.result" + - "'<tag>10</tag>' in result_xml.end_state.result" + - "'<levelType>level_1</levelType>' in result_xml.end_state.result" + - "'<avoidLearning>true</avoidLearning>' in result_xml.end_state.result" + +- name: present the provided configuration with the exisiting running configuration + ce_is_is_view: &absent + instance_id: 100 + defaultmode: always + cost: 10 + mode_tag: 10 + level_type: level_1 + avoid_learning: true + mode_routepolicyname: routepolicy_name + tag: 100 + state: absent + register: result + + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_view: *absent + register: repeat + +- name: Get basic config by ce_netconf. + ce_netconf: *get_config + register: result_xml + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<tag>100</tag>' not in result_xml.end_state.result" + - "'<defaultMode>always</defaultMode>' not in result_xml.end_state.result" + - "'<routePolicyName>routepolicy_name</routePolicyName>' not in result_xml.end_state.result" + - "'<cost>10</cost>' not in result_xml.end_state.result" + - "'<tag>10</tag>' not in result_xml.end_state.result" + - "'<levelType>level_1</levelType>' not in result_xml.end_state.result" + - "'<avoidLearning>true</avoidLearning>' not in result_xml.end_state.result" +# after present, isis 100 should be deleted +- include_tasks: cleanup.yaml +- debug: + msg: "END ce_is_is_view import route policy resentd integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_isis_filter_import.yaml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_isis_filter_import.yaml new file mode 100644 index 000000000..7a97d982d --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_isis_filter_import.yaml @@ -0,0 +1,97 @@ +--- +- debug: + msg: "START ce_is_is_view EXPORTROUTE route policy presented integration tests on connection={{ ansible_connection }}" +- include_tasks: setup.yaml + +- name: present the provided configuration with the exisiting running configuration + ce_is_is_view: &present + instance_id: 100 + import_aclnumorname: 301 + import_ipprefix: ipprefix + import_routepolicyname: routepolicyname + register: result + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: Get basic config by ce_netconf. + ce_netconf: &get_config + rpc: get + cfg_xml: "<filter type=\"subtree\"> + <isiscomm xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <isSites> + <isSite> + <instanceId>100</instanceId> + <isSiteMTs> + <isSiteMT> + <addressFamily>afIpv4</addressFamily> + <mtId>0</mtId> + <isFilterImports> + <isFilterImport> + <aclNumOrName></aclNumOrName> + <ipPrefix></ipPrefix> + <routePolicyName></routePolicyName> + </isFilterImport> + </isFilterImports> + </isSiteMT> + </isSiteMTs> + </isSite> + </isSites> + </isiscomm> + </filter>" + register: result_xml + + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_view: *present + register: repeat + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<aclNumOrName>3001</aclNumOrName>' in result_xml.end_state.result" + - "'<ipPrefix>ipprefix</ipPrefix>' in result_xml.end_state.result" + - "'<routePolicyName>routepolicyname</routePolicyName>' in result_xml.end_state.result" + +- name: present the provided configuration with the exisiting running configuration + ce_is_is_view: &absent + instance_id: 100 + defaultmode: always + cost: 10 + mode_tag: 10 + level_type: level_1 + avoid_learning: true + mode_routepolicyname: routepolicy_name + tag: 100 + state: absent + register: result + + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_view: *absent + register: repeat + +- name: Get basic config by ce_netconf. + ce_netconf: *get_config + register: result_xml + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<aclNumOrName>3001</aclNumOrName>' not in result_xml.end_state.result" + - "'<ipPrefix>ipprefix</ipPrefix>' not in result_xml.end_state.result" + - "'<routePolicyName>routepolicyname</routePolicyName>' not in result_xml.end_state.result" + +# after present, isis 100 should be deleted +- include_tasks: cleanup.yaml +- debug: + msg: "END ce_is_is_view EXPORTROUTE route policy resentd integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_isis_next_hop.yaml b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_isis_next_hop.yaml new file mode 100644 index 000000000..f18eeaf84 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_is_is_view/tests/netconf/test_isis_next_hop.yaml @@ -0,0 +1,87 @@ +--- +- debug: + msg: "START ce_is_is_view next hop presented integration tests on connection={{ ansible_connection }}" +- include_tasks: setup.yaml + +- name: present the provided configuration with the exisiting running configuration + ce_is_is_view: &present + instance_id: 100 + ip_address: 1.1.1.1 + weight: 100 + register: result + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: Get basic config by ce_netconf. + ce_netconf: &get_config + rpc: get + cfg_xml: "<filter type=\"subtree\"> + <isiscomm xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <isSites> + <isSite> + <instanceId>100</instanceId> + <isSiteMTs> + <isSiteMT> + <addressFamily>afIpv4</addressFamily> + <mtId>0</mtId> + <isNextHopWeights> + <isNextHopWeight> + <ipAddress></ipAddress> + <weight></weight> + </isNextHopWeight> + </isNextHopWeights> + </isSiteMT> + </isSiteMTs> + </isSite> + </isSites> + </isiscomm> + </filter>" + register: result_xml + + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_view: *present + register: repeat + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<ipAddress>1.1.1.1</ipAddress>' in result_xml.end_state.result" + - "'<weight>100</weight>' in result_xml.end_state.result" + +- name: present the provided configuration with the exisiting running configuration + ce_is_is_view: &absent + instance_id: 100 + ip_address: 1.1.1.1 + weight: 100 + state: absent + register: result + + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_is_is_view: *absent + register: repeat + +- name: Get basic config by ce_netconf. + ce_netconf: *get_config + register: result_xml + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<ipAddress>1.1.1.1</ipAddress>' not in result_xml.end_state.result" + - "'<weight>100</weight>' not in result_xml.end_state.result" + # after present, isis 100 should be deleted +- include_tasks: cleanup.yaml +- debug: + msg: "END ce_is_is_view next hop resentd integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_lacp/aliases b/ansible_collections/community/network/tests/integration/targets/ce_lacp/aliases new file mode 100644 index 000000000..ad7ccf7ad --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_lacp/aliases @@ -0,0 +1 @@ +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/ce_lacp/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/ce_lacp/defaults/main.yaml new file mode 100644 index 000000000..164afead2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_lacp/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "[^_].*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/ce_lacp/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/ce_lacp/tasks/main.yaml new file mode 100644 index 000000000..e06ccf174 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_lacp/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: netconf.yaml, tags: ['netconf'] } diff --git a/ansible_collections/community/network/tests/integration/targets/ce_lacp/tasks/netconf.yaml b/ansible_collections/community/network/tests/integration/targets/ce_lacp/tasks/netconf.yaml new file mode 100644 index 000000000..73b91adfa --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_lacp/tasks/netconf.yaml @@ -0,0 +1,17 @@ +--- +- name: collect all netconf test cases + find: + paths: "{{ role_path }}/tests/netconf" + patterns: "{{ testcase }}.yaml" + use_regex: true + connection: local + register: test_cases + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test case (connection=netconf) + include: "{{ test_case_to_run }} ansible_connection=netconf" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/ce_lacp/tests/netconf/absent.yaml b/ansible_collections/community/network/tests/integration/targets/ce_lacp/tests/netconf/absent.yaml new file mode 100644 index 000000000..2c32e574d --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_lacp/tests/netconf/absent.yaml @@ -0,0 +1,95 @@ +--- +- debug: + msg: "START ce_lacp merged integration tests on connection={{ ansible_connection }}" +# befor removing, it should be merged +- include_tasks: merge.yaml + +- name: Merge the provided configuration with the exisiting running configuration + ce_lacp: &absent + mode: Dynamic + trunk_id: 10 + preempt_enable: True + state_flapping: True + port_id_extension_enable: True + unexpected_mac_disable: True + system_id: 1111-2222-3333 + timeout_type: Fast + fast_timeout: 12 + mixed_rate_link_enable: True + preempt_delay: 12 + collector_delay: 12 + max_active_linknumber: 2 + select: Prority + priority: 23 + global_priority: 123 + state: absent + register: result + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: Get lacp config by ce_netconf. + ce_netconf: + rpc: get + cfg_xml: "<filter type=\"subtree\"> + <ifmtrunk xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <TrunkIfs> + <TrunkIf> + <ifName>Eth-Trunk10</ifName> + <lacpTrunk> + <isSupportPrmpt></isSupportPrmpt> + <rcvTimeoutType></rcvTimeoutType> + <fastTimeoutUserDefinedValue></fastTimeoutUserDefinedValue> + <selectPortStd></selectPortStd> + <promptDelay></promptDelay> + <maxActiveNum></maxActiveNum> + <collectMaxDelay></collectMaxDelay> + <mixRateEnable></mixRateEnable> + <dampStaFlapEn></dampStaFlapEn> + <dampUnexpMacEn></dampUnexpMacEn> + <trunkSysMac></trunkSysMac> + <trunkPortIdExt></trunkPortIdExt> + </lacpTrunk> + </TrunkIf> + </TrunkIfs> + </ifmtrunk> + </filter>" + register: result_ifs_merged + +- name: Get lacp config by ce_netconf. + ce_netconf: + rpc: get + cfg_xml: "<filter type=\"subtree\"> + <ifmtrunk xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <lacpSysInfo> + <priority></priority> + </lacpSysInfo> + </ifmtrunk> + </filter>" + register: result_global_merged + + +- name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) + ce_lacp: *absent + register: result_re_merged + +- name: Assert that the previous task was idempotent, some become ot default values, others depend on devices. + assert: + that: + - "result_re_merged.changed == false" + - "'<isSupportPrmpt>false</isSupportPrmpt>' == result_ifs_merged.end_state.result" + - "'<rcvTimeoutType>Slow</rcvTimeoutType>' == result_ifs_merged.end_state.result" + - "'<fastTimeoutUserDefinedValue>90</fastTimeoutUserDefinedValue>' == result_ifs_merged.end_state.result" + - "'<selectPortStd>Prority</selectPortStd>' == result_ifs_merged.end_state.result" + - "'<promptDelay>30</promptDelay>' == result_ifs_merged.end_state.result" + - "'<collectMaxDelay>0</collectMaxDelay>' in result_ifs_merged.end_state.result" + - "'<mixRateEnable>false</mixRateEnable>' in result_ifs_merged.end_state.result" + - "'<dampStaFlapEn>false</dampStaFlapEn>' in result_ifs_merged.end_state.result" + - "'<dampUnexpMacEn>false</dampUnexpMacEn>' in result_ifs_merged.end_state.result" + - "'<trunkSysMac>false</trunkSysMac>' in result_ifs_merged.end_state.result" + - "'<priority>32768</priority>' in result_global_merged.end_state.result" + +- debug: + msg: "END ce_lacp merged integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_lacp/tests/netconf/delete.yaml b/ansible_collections/community/network/tests/integration/targets/ce_lacp/tests/netconf/delete.yaml new file mode 100644 index 000000000..a3ce81723 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_lacp/tests/netconf/delete.yaml @@ -0,0 +1,32 @@ +--- +- debug: + msg: "START ce_lacp deleted integration tests on connection={{ ansible_connection }}" + +- name: Merge the provided configuration with the exisiting running configuration + ce_lacp: + mode: Dynamic + trunk_id: 10 + preempt_enable: True + state_flapping: True + port_id_extension_enable: True + unexpected_mac_disable: True + system_id: 1111-2222-3333 + timeout_type: Fast + fast_timeout: 12 + mixed_rate_link_enable: True + preempt_delay: 12 + collector_delay: 12 + max_active_linknumber: 2 + select: Prority + priority: 23 + global_priority: 123 + state: absent + register: result + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- debug: + msg: "END ce_lacp deleted integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_lacp/tests/netconf/merge.yaml b/ansible_collections/community/network/tests/integration/targets/ce_lacp/tests/netconf/merge.yaml new file mode 100644 index 000000000..eef3956ee --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_lacp/tests/netconf/merge.yaml @@ -0,0 +1,31 @@ +--- +- debug: + msg: "START ce_lacp merged integration tests on connection={{ ansible_connection }}" + +- name: Merge the provided configuration with the exisiting running configuration + ce_lacp: + mode: Dynamic + trunk_id: 10 + preempt_enable: True + state_flapping: True + port_id_extension_enable: True + unexpected_mac_disable: True + system_id: 1111-2222-3333 + timeout_type: Fast + fast_timeout: 12 + mixed_rate_link_enable: True + preempt_delay: 12 + collector_delay: 12 + max_active_linknumber: 2 + select: Prority + priority: 23 + global_priority: 123 + register: result + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- debug: + msg: "END ce_lacp merged integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_lacp/tests/netconf/present.yaml b/ansible_collections/community/network/tests/integration/targets/ce_lacp/tests/netconf/present.yaml new file mode 100644 index 000000000..ee696c9e1 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_lacp/tests/netconf/present.yaml @@ -0,0 +1,103 @@ +--- +- debug: + msg: "START ce_lacp presented integration tests on connection={{ ansible_connection }}" + +- name: present the provided configuration with the exisiting running configuration + ce_lacp: &present + mode: Dynamic + trunk_id: 10 + preempt_enable: True + state_flapping: True + port_id_extension_enable: True + unexpected_mac_disable: True + system_id: 1111-2222-3333 + timeout_type: Fast + fast_timeout: 12 + mixed_rate_link_enable: True + preempt_delay: 12 + collector_delay: 12 + max_active_linknumber: 2 + select: Prority + priority: 23 + global_priority: 123 + register: result + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: Get lacp config by ce_netconf. + ce_netconf: + rpc: get + cfg_xml: "<filter type=\"subtree\"> + <ifmtrunk xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <TrunkIfs> + <TrunkIf> + <ifName>Eth-Trunk10</ifName> + <workMode></workMode> + <lacpTrunk> + <isSupportPrmpt></isSupportPrmpt> + <rcvTimeoutType></rcvTimeoutType> + <fastTimeoutUserDefinedValue></fastTimeoutUserDefinedValue> + <selectPortStd></selectPortStd> + <promptDelay></promptDelay> + <maxActiveNum></maxActiveNum> + <collectMaxDelay></collectMaxDelay> + <mixRateEnable></mixRateEnable> + <dampStaFlapEn></dampStaFlapEn> + <dampUnexpMacEn></dampUnexpMacEn> + <trunkSysMac></trunkSysMac> + <trunkPortIdExt></trunkPortIdExt> + </lacpTrunk> + </TrunkIf> + </TrunkIfs> + </ifmtrunk> + </filter>" + register: result_ifs_presentd + +- name: Get global lacp config by ce_netconf. + ce_netconf: + rpc: get + cfg_xml: "<filter type=\"subtree\"> + <ifmtrunk xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <lacpSysInfo> + <priority></priority> + <lacpMlagGlobal> + <lacpMlagPriority></lacpMlagPriority> + <lacpMlagSysId></lacpMlagSysId> + </lacpMlagGlobal> + </lacpSysInfo> + </ifmtrunk> + </filter>" + register: result_global_presentd + + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_lacp: *present + register: result_re_presentd + +- name: Assert that the previous task was idempotent + assert: + that: + - "result_re_presentd.changed == false" + - "'<workMode>Dynamic</workMode>' == result_ifs_presentd.end_state.result" + - "'<isSupportPrmpt>true</isSupportPrmpt>' == result_ifs_presentd.end_state.result" + - "'<rcvTimeoutType>Fast</rcvTimeoutType>' == result_ifs_presentd.end_state.result" + - "'<fastTimeoutUserDefinedValue>12</fastTimeoutUserDefinedValue>' == result_ifs_presentd.end_state.result" + - "'<selectPortStd>Prority</selectPortStd>' == result_ifs_presentd.end_state.result" + - "'<promptDelay>12</promptDelay>' == result_ifs_presentd.end_state.result" + - "'<maxActiveNum>2</maxActiveNum>' == result_ifs_presentd.end_state.result" + - "'<collectMaxDelay>12</collectMaxDelay>' in result_ifs_presentd.end_state.result" + - "'<mixRateEnable>true</mixRateEnable>' in result_ifs_presentd.end_state.result" + - "'<dampStaFlapEn>true</dampStaFlapEn>' in result_ifs_presentd.end_state.result" + - "'<dampUnexpMacEn>true</dampUnexpMacEn>' in result_ifs_presentd.end_state.result" + - "'<trunkSysMac>true</trunkSysMac>' in result_ifs_presentd.end_state.result" + - "'<trunkPortIdExt>true</trunkPortIdExt>' in result_ifs_presentd.end_state.result" + - "'<lacpMlagSysId>1111-2222-3333</lacpMlagSysId>' in result_global_presentd.end_state.result" + - "'<priority>123</priority>' in result_global_presentd.end_state.result" + +# after present, it should be deleted +- include_tasks: delete.yaml +- debug: + msg: "END ce_lacp presentd integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_lldp/aliases b/ansible_collections/community/network/tests/integration/targets/ce_lldp/aliases new file mode 100644 index 000000000..ad7ccf7ad --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_lldp/aliases @@ -0,0 +1 @@ +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/ce_lldp/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/ce_lldp/defaults/main.yaml new file mode 100644 index 000000000..164afead2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_lldp/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "[^_].*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/ce_lldp/meta/main.yml b/ansible_collections/community/network/tests/integration/targets/ce_lldp/meta/main.yml new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_lldp/meta/main.yml @@ -0,0 +1 @@ + diff --git a/ansible_collections/community/network/tests/integration/targets/ce_lldp/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/ce_lldp/tasks/main.yaml new file mode 100644 index 000000000..e06ccf174 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_lldp/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: netconf.yaml, tags: ['netconf'] } diff --git a/ansible_collections/community/network/tests/integration/targets/ce_lldp/tasks/netconf.yaml b/ansible_collections/community/network/tests/integration/targets/ce_lldp/tasks/netconf.yaml new file mode 100644 index 000000000..73b91adfa --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_lldp/tasks/netconf.yaml @@ -0,0 +1,17 @@ +--- +- name: collect all netconf test cases + find: + paths: "{{ role_path }}/tests/netconf" + patterns: "{{ testcase }}.yaml" + use_regex: true + connection: local + register: test_cases + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test case (connection=netconf) + include: "{{ test_case_to_run }} ansible_connection=netconf" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/ce_lldp/tests/netconf/absent.yaml b/ansible_collections/community/network/tests/integration/targets/ce_lldp/tests/netconf/absent.yaml new file mode 100644 index 000000000..1a1489067 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_lldp/tests/netconf/absent.yaml @@ -0,0 +1,108 @@ +--- +- debug: + msg: "START ce_lldp absent integration tests on connection={{ ansible_connection }}" + +- block: + + - name: present the provided configuration befor absent + ce_lldp: + lldpenable: enabled + mdnstatus: rxOnly + interval: 35 + hold_multiplier: 5 + restart_delay: 3 + transmit_delay: 5 + notification_interval: 6 + fast_count: 5 + mdn_notification_interval: 10.1.1.1 + management_address: 10.10.10.1 + bind_name: vlanif100 + register: result + + - name: change ansible_connection to network_cli + set_fact: + ansible_connection: network_cli + + - name: display lldp + ce_command: + commands: + - display current-configuration | include lldp + register: result_display + + - name: change ansible_connection to netconf + set_fact: + ansible_connection: netconf + +# There should be some configuration(LLDP) on host befor absent + - name: Assert the configuration is reflected on host + assert: + that: + - "'lldp enable' in result_display.stdout[0]" + - "'undo lldp mdn disable' in result_display.stdout[0]" + - "'lldp transmit interval 35' in result_display.stdout[0]" + - "'lldp transmit multiplier 5' in result_display.stdout[0]" + - "'lldp restart 3' in result_display.stdout[0]" + - "'lldp transmit delay 5' in result_display.stdout[0]" + - "'lldp fast-count 5' in result_display.stdout[0]" + - "'lldp management-address 10.10.10.1' in result_display.stdout[0]" + - "'lldp mdn trap-interval 6' in result_display.stdout[0]" + - "'lldp trap-interval 6' in result_display.stdout[0]" + - "'lldp management-address bind interface vlanif100' in result_display.stdout[0]" + + - name: absent the provided configuration with the exisiting running configuration + ce_lldp: &absent + lldpenable: enabled + mdnstatus: rxOnly + interval: 35 + hold_multiplier: 5 + restart_delay: 3 + transmit_delay: 5 + notification_interval: 6 + fast_count: 5 + mdn_notification_interval: 10.1.1.1 + management_address: 10.10.10.1 + bind_name: vlanif100 + state: absent + register: result + + - name: change ansible_connection to network_cli + set_fact: + ansible_connection: network_cli + + - name: display lldp + ce_command: + commands: + - display current-configuration | include lldp + register: result_display + + - name: change ansible_connection to netconf + set_fact: + ansible_connection: netconf + + - name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + - "'lldp enable' not in result_display.stdout[0]" + - "'undo lldp mdn disable' not in result_display.stdout[0]" + - "'lldp transmit interval 35' not in result_display.stdout[0]" + - "'lldp transmit multiplier 5' not in result_display.stdout[0]" + - "'lldp restart 3' not in result_display.stdout[0]" + - "'lldp transmit delay 5' not in result_display.stdout[0]" + - "'lldp fast-count 5' not in result_display.stdout[0]" + - "'lldp management-address 10.10.10.1' not in result_display.stdout[0]" + - "'lldp mdn trap-interval 6' not in result_display.stdout[0]" + - "'lldp trap-interval 6' not in result_display.stdout[0]" + - "'lldp management-address bind interface vlanif100' not in result_display.stdout[0]" + + - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) + ce_lldp: *absent + register: result + + - name: Assert that the previous task was idempotent + assert: + that: + - "result['changed'] == false" + +- debug: + msg: "END ce_lldp absent integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_lldp/tests/netconf/clean.yaml b/ansible_collections/community/network/tests/integration/targets/ce_lldp/tests/netconf/clean.yaml new file mode 100644 index 000000000..8e12f61ea --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_lldp/tests/netconf/clean.yaml @@ -0,0 +1,20 @@ +--- +- debug: + msg: "Start ce_lldp deleted remove interface config ansible_connection={{ ansible_connection }}" + +- name: change ansible_connection to network_cli + set_fact: + ansible_connection: network_cli +# After the global LLDP function is disabled, all LLDP configuration restore defaults except the LLDP alarm function. +- name: display lldp + ce_command: + commands: + - undo lldp enable + - lldp mdn disable + +- name: change ansible_connection to netconf + set_fact: + ansible_connection: netconf + +- debug: + msg: "End ce_lldp deleted remove interface config ansible_connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_lldp/tests/netconf/present.yaml b/ansible_collections/community/network/tests/integration/targets/ce_lldp/tests/netconf/present.yaml new file mode 100644 index 000000000..f523d32dd --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_lldp/tests/netconf/present.yaml @@ -0,0 +1,66 @@ +--- +- debug: + msg: "START ce_lldp merged integration tests on connection={{ ansible_connection }}" + +- block: + + - include_tasks: cleanup.yaml + + - name: Merge the provided configuration with the exisiting running configuration + ce_lldp: &merged + lldpenable: enabled + mdnstatus: rxOnly + interval: 35 + hold_multiplier: 5 + restart_delay: 3 + transmit_delay: 5 + notification_interval: 6 + fast_count: 5 + mdn_notification_interval: 10.1.1.1 + management_address: 10.10.10.1 + bind_name: vlanif100 + register: result + + - name: change ansible_connection to network_cli + set_fact: + ansible_connection: network_cli + + - name: display lldp + ce_command: + commands: + - display current-configuration | include lldp + register: result_display + + - name: change ansible_connection to netconf + set_fact: + ansible_connection: netconf + + - name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + - "'lldp enable' in result_display.stdout[0]" + - "'undo lldp mdn disable' in result_display.stdout[0]" + - "'lldp transmit interval 35' in result_display.stdout[0]" + - "'lldp transmit multiplier 5' in result_display.stdout[0]" + - "'lldp restart 3' in result_display.stdout[0]" + - "'lldp transmit delay 5' in result_display.stdout[0]" + - "'lldp fast-count 5' in result_display.stdout[0]" + - "'lldp management-address 10.10.10.1' in result_display.stdout[0]" + - "'lldp mdn trap-interval 6' in result_display.stdout[0]" + - "'lldp trap-interval 6' in result_display.stdout[0]" + - "'lldp management-address bind interface vlanif100' in result_display.stdout[0]" + + - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) + ce_lldp: *merged + register: result + + - name: Assert that the previous task was idempotent + assert: + that: + - "result['changed'] == false" + + - include_tasks: cleanup.yaml + +- debug: + msg: "END ce_lldp merged integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_lldp_interface/aliases b/ansible_collections/community/network/tests/integration/targets/ce_lldp_interface/aliases new file mode 100644 index 000000000..ad7ccf7ad --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_lldp_interface/aliases @@ -0,0 +1 @@ +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/ce_lldp_interface/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/ce_lldp_interface/defaults/main.yaml new file mode 100644 index 000000000..164afead2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_lldp_interface/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "[^_].*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/ce_lldp_interface/meta/main.yml b/ansible_collections/community/network/tests/integration/targets/ce_lldp_interface/meta/main.yml new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_lldp_interface/meta/main.yml @@ -0,0 +1 @@ + diff --git a/ansible_collections/community/network/tests/integration/targets/ce_lldp_interface/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/ce_lldp_interface/tasks/main.yaml new file mode 100644 index 000000000..e06ccf174 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_lldp_interface/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: netconf.yaml, tags: ['netconf'] } diff --git a/ansible_collections/community/network/tests/integration/targets/ce_lldp_interface/tasks/netconf.yaml b/ansible_collections/community/network/tests/integration/targets/ce_lldp_interface/tasks/netconf.yaml new file mode 100644 index 000000000..73b91adfa --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_lldp_interface/tasks/netconf.yaml @@ -0,0 +1,17 @@ +--- +- name: collect all netconf test cases + find: + paths: "{{ role_path }}/tests/netconf" + patterns: "{{ testcase }}.yaml" + use_regex: true + connection: local + register: test_cases + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test case (connection=netconf) + include: "{{ test_case_to_run }} ansible_connection=netconf" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/ce_lldp_interface/tests/netconf/lldp_interface.yaml b/ansible_collections/community/network/tests/integration/targets/ce_lldp_interface/tests/netconf/lldp_interface.yaml new file mode 100644 index 000000000..d5551a84f --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_lldp_interface/tests/netconf/lldp_interface.yaml @@ -0,0 +1,155 @@ +--- +- debug: + msg: "START ce_lldp_interface merged integration tests on connection={{ ansible_connection }}" + +- block: + - name: Merge the provided configuration with the exisiting running configuration - basic-tlv + ce_lldp_interface: &merged1 + config: + msg_interval: 8 + ifname: 10GE 1/0/1 + admin_status: txandrx + basic_tlv: + management_addr: true + port_desc: true + system_capability: true + system_description: true + system_name: true + register: result1 + - name: Merge the provided configuration with the existing running configuration (REPEAT) + ce_lldp_interface: *merged1 + register: result2 + - name: "Netconf get operation" + ce_netconf: + rpc: get + cfg_xml: '<filter type=\"subtree\"> + <lldp xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <lldpInterfaces> + <lldpInterface> + <ifName>10GE1/0/1</ifName> + <msgInterval> + <txInterval></txInterval> + </msgInterval> + <lldpAdminStatus></lldpAdminStatus> + <tlvTxEnable> + <manAddrTxEnable></manAddrTxEnable> + <portDescTxEnable></portDescTxEnable> + <sysCapTxEnable></sysCapTxEnable> + </tlvTxEnable> + </lldpInterface> + </lldpInterfaces> + </lldp> + </filter>' + register: result3 + - name: Assert the configuration is reflected on host + assert: + that: + - "result1['changed'] == true" + - "result2['changed'] == false" + - "'<txInterval>8</txInterval>' in result3.endstate.result" + - "'<lldpAdminStatus>txAndRx</lldpAdminStatus>' in result3.endstate.result" + - "'<manAddrTxEnable>true</manAddrTxEnable>' in result3.endstate.result" + - "'<portDescTxEnable>true</portDescTxEnable>' in result3.endstate.result" + - "'<sysCapTxEnable>true</sysCapTxEnable>' in result3.endstate.result" + + - name: Merge the provided configuration with the exisiting running configuration - dot1-tlv + ce_lldp_interface: &merged2 + config: + msg_interval: 8 + ifname: 10GE 1/0/1 + dot1_tlv: + port_vlan_enable: true + port_desc: true + prot_vlan_enable: true + prot_vlan_id: 123 + vlan_name: 234 + vlan_name_enable: true + register: result1 + - name: Merge the provided configuration with the existing running configuration (REPEAT) + ce_lldp_interface: *merged2 + register: result2 + - name: "Netconf get operation" + ce_netconf: + rpc: get + cfg_xml: '<filter type=\"subtree\"> + <lldp xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <lldpInterfaces> + <lldpInterface> + <ifName>10GE1/0/1</ifName> + <msgInterval> + <txInterval></txInterval> + </msgInterval> + <lldpAdminStatus></lldpAdminStatus> + <tlvTxEnable> + <portVlanTxEnable></portVlanTxEnable> + <protoVlanTxEnable></protoVlanTxEnable> + <txProtocolVlanId></txProtocolVlanId> + <vlanNameTxEnable></vlanNameTxEnable> + <txVlanNameId></txVlanNameId> + <protoIdTxEnable></protoIdTxEnable> + </tlvTxEnable> + </lldpInterface> + </lldpInterfaces> + </lldp> + </filter>' + register: result3 + - name: Assert the configuration is reflected on host + assert: + that: + - "result1['changed'] == true" + - "result2['changed'] == false" + - "'<portVlanTxEnable>true</portVlanTxEnable>' in result3.endstate.result" + - "'<protoVlanTxEnable>true</protoVlanTxEnable>' in result3.endstate.result" + - "'<txProtocolVlanId>123</txProtocolVlanId>' in result3.endstate.result" + - "'<vlanNameTxEnable>true</vlanNameTxEnable>' in result3.endstate.result" + - "'<txVlanNameId>true</txVlanNameId>' in result3.endstate.result" + - "'<protoIdTxEnable>true</protoIdTxEnable>' in result3.endstate.result" + + - name: Merge the provided configuration with the exisiting running configuration - dot3-tlv + ce_lldp_interface: &merged + config: + msg_interval: 8 + ifname: 10GE 1/0/1 + dot3_tlv: + eee: true + link_aggregation: true + mac_physic: true + max_frame_size: true + register: result1 + - name: Merge the provided configuration with the existing running configuration (REPEAT) + ce_lldp_interface: *merged + register: result2 + - name: "Netconf get operation" + ce_netconf: + rpc: get + cfg_xml: '<filter type=\"subtree\"> + <lldp xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <lldpInterfaces> + <lldpInterface> + <ifName>10GE1/0/1</ifName> + <msgInterval> + <txInterval></txInterval> + </msgInterval> + <lldpAdminStatus></lldpAdminStatus> + <tlvTxEnable> + <macPhyTxEnable></macPhyTxEnable> + <linkAggreTxEnable></linkAggreTxEnable> + <maxFrameTxEnable></maxFrameTxEnable> + <eee></eee> + </tlvTxEnable> + </lldpInterface> + </lldpInterfaces> + </lldp> + </filter>' + register: result3 + - name: Assert the configuration is reflected on host + assert: + that: + - "result1['changed'] == true" + - "result2['changed'] == false" + - "'<macPhyTxEnable>true</macPhyTxEnable>' in result3.endstate.result" + - "'<linkAggreTxEnable>true</linkAggreTxEnable>' in result3.endstate.result" + - "'<maxFrameTxEnable>123</maxFrameTxEnable>' in result3.endstate.result" + +- debug: + msg: "END ce_lldp_interface merged integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_mdn_interface/aliases b/ansible_collections/community/network/tests/integration/targets/ce_mdn_interface/aliases new file mode 100644 index 000000000..ad7ccf7ad --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_mdn_interface/aliases @@ -0,0 +1 @@ +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/ce_mdn_interface/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/ce_mdn_interface/defaults/main.yaml new file mode 100644 index 000000000..164afead2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_mdn_interface/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "[^_].*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/ce_mdn_interface/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/ce_mdn_interface/tasks/main.yaml new file mode 100644 index 000000000..e06ccf174 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_mdn_interface/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: netconf.yaml, tags: ['netconf'] } diff --git a/ansible_collections/community/network/tests/integration/targets/ce_mdn_interface/tasks/netconf.yaml b/ansible_collections/community/network/tests/integration/targets/ce_mdn_interface/tasks/netconf.yaml new file mode 100644 index 000000000..73b91adfa --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_mdn_interface/tasks/netconf.yaml @@ -0,0 +1,17 @@ +--- +- name: collect all netconf test cases + find: + paths: "{{ role_path }}/tests/netconf" + patterns: "{{ testcase }}.yaml" + use_regex: true + connection: local + register: test_cases + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test case (connection=netconf) + include: "{{ test_case_to_run }} ansible_connection=netconf" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/ce_mdn_interface/tests/netconf/ce_mdn_interface.yaml b/ansible_collections/community/network/tests/integration/targets/ce_mdn_interface/tests/netconf/ce_mdn_interface.yaml new file mode 100644 index 000000000..4aec853fe --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_mdn_interface/tests/netconf/ce_mdn_interface.yaml @@ -0,0 +1,97 @@ +--- +- debug: + msg: "START ce_mdn_interface presented integration tests on connection={{ ansible_connection }}" +# set up default before test +- name: clean up default configuration with the exisiting running configuration + ce_mdn_interface: + lldpenable: disabled + mdnstatus: disabled + ifname: 10GE1/0/1 + +- name: present the provided configuration with the exisiting running configuration + ce_mdn_interface: &present + lldpenable: enabled + mdnstatus: rxOnly + ifname: 10GE1/0/1 + register: result + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: Get mdnInterface config by ce_netconf. + ce_netconf: &get_config + rpc: get + cfg_xml: "<filter type=\"subtree\"> + <lldp xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <mdnInterfaces> + <mdnInterface> + <ifName>10GE1/0/1</ifName> + <mdnStatus></mdnStatus> + </mdnInterface> + </mdnInterfaces> + </lldp> + </filter>" + register: result_xml + +- name: Get lldp enabled config by ce_netconf. + ce_netconf: &get_config_lldp + rpc: get + cfg_xml: "<filter type=\"subtree\"> + <lldp xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <lldpSys> + <lldpEnable></lldpEnable> + </lldpSys> + </lldp> + /filter>" + register: result_xml_lldp + + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_mdn_interface: *present + register: repeat + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<mdnStatus>rxOnly</mdnStatus>' in result_xml.end_state.result" + - "'<lldpEnable>enabled</lldpEnable>' in result_xml_lldp.end_state.result" + +- name: absent the provided configuration with the exisiting running configuration + ce_mdn_interface: &absent + lldpenable: disabled + mdnstatus: disabled + ifname: 10GE1/0/1 + state: absent + register: result + + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: absent the provided configuration with the existing running configuration (REPEAT) + ce_mdn_interface: *absent + register: repeat + +- name: Get mdnInterface config by ce_netconf. + ce_netconf: *get_config + register: result_xml + +- name: Get lldp enabled config by ce_netconf. + ce_netconf: *get_config + register: result_xml_lldp + +- name: Assert that the previous task was idempotent + assert: + that: + - "result['changed'] == false" + - "'<mdnStatus>disabled</mdnStatus>' not in result_xml.end_state.result" + - "'<lldpEnable>disabled</lldpEnable>' in result_xml_lldp.end_state.result" +# after present, isis 100 should be deleted + +- debug: + msg: "END ce_mdn_interface resentd integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_multicast_global/aliases b/ansible_collections/community/network/tests/integration/targets/ce_multicast_global/aliases new file mode 100644 index 000000000..ad7ccf7ad --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_multicast_global/aliases @@ -0,0 +1 @@ +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/ce_multicast_global/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/ce_multicast_global/defaults/main.yaml new file mode 100644 index 000000000..164afead2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_multicast_global/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "[^_].*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/ce_multicast_global/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/ce_multicast_global/tasks/main.yaml new file mode 100644 index 000000000..e06ccf174 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_multicast_global/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: netconf.yaml, tags: ['netconf'] } diff --git a/ansible_collections/community/network/tests/integration/targets/ce_multicast_global/tasks/netconf.yaml b/ansible_collections/community/network/tests/integration/targets/ce_multicast_global/tasks/netconf.yaml new file mode 100644 index 000000000..73b91adfa --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_multicast_global/tasks/netconf.yaml @@ -0,0 +1,17 @@ +--- +- name: collect all netconf test cases + find: + paths: "{{ role_path }}/tests/netconf" + patterns: "{{ testcase }}.yaml" + use_regex: true + connection: local + register: test_cases + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test case (connection=netconf) + include: "{{ test_case_to_run }} ansible_connection=netconf" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/ce_multicast_global/tests/netconf/test_ce_multicast_global.yaml b/ansible_collections/community/network/tests/integration/targets/ce_multicast_global/tests/netconf/test_ce_multicast_global.yaml new file mode 100644 index 000000000..69b1f5f26 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_multicast_global/tests/netconf/test_ce_multicast_global.yaml @@ -0,0 +1,73 @@ +--- +- debug: + msg: "START ce_multicast_global presented integration tests on connection={{ ansible_connection }}" + +- name: present the provided configuration with the exisiting running configuration + ce_multicast_global: &present + aftype: v4 + vrf: vpna + weight: 100 + register: result + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: Get basic config by ce_netconf. + ce_netconf: &get_config + rpc: get + cfg_xml: "<filter type=\"subtree\"> + <mcastbase xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <mcastAfsEnables> + <mcastAfsEnable> + <vrfName></vrfName> + <addressFamily></addressFamily> + </mcastAfsEnable> + </mcastAfsEnables> + </mcastbase> + </filter>" + register: result_xml + + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_multicast_global: *present + register: repeat + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<vrfName>vpna</vrfName>' in result_xml.end_state.result" + - "'<addressFamily>vpna</addressFamily>' in result_xml.end_state.result" + +- name: present the provided configuration with the exisiting running configuration + ce_multicast_global: &absent + aftype: v4 + vrf: vpna + register: result + + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_multicast_global: *absent + register: repeat + +- name: Get basic config by ce_netconf. + ce_netconf: *get_config + register: result_xml + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<vrfName>vpna</vrfName>' not in result_xml.end_state.result" + - "'<addressFamily>vpna</addressFamily>' not in result_xml.end_state.result" +# after present, isis 100 should be deleted + +- debug: + msg: "END ce_multicast_global resentd integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_multicast_igmp_enable/aliases b/ansible_collections/community/network/tests/integration/targets/ce_multicast_igmp_enable/aliases new file mode 100644 index 000000000..ad7ccf7ad --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_multicast_igmp_enable/aliases @@ -0,0 +1 @@ +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/ce_multicast_igmp_enable/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/ce_multicast_igmp_enable/defaults/main.yaml new file mode 100644 index 000000000..164afead2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_multicast_igmp_enable/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "[^_].*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/ce_multicast_igmp_enable/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/ce_multicast_igmp_enable/tasks/main.yaml new file mode 100644 index 000000000..e06ccf174 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_multicast_igmp_enable/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: netconf.yaml, tags: ['netconf'] } diff --git a/ansible_collections/community/network/tests/integration/targets/ce_multicast_igmp_enable/tasks/netconf.yaml b/ansible_collections/community/network/tests/integration/targets/ce_multicast_igmp_enable/tasks/netconf.yaml new file mode 100644 index 000000000..73b91adfa --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_multicast_igmp_enable/tasks/netconf.yaml @@ -0,0 +1,17 @@ +--- +- name: collect all netconf test cases + find: + paths: "{{ role_path }}/tests/netconf" + patterns: "{{ testcase }}.yaml" + use_regex: true + connection: local + register: test_cases + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test case (connection=netconf) + include: "{{ test_case_to_run }} ansible_connection=netconf" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/ce_multicast_igmp_enable/tests/netconf/ce_multicast_igmp_enable.yaml b/ansible_collections/community/network/tests/integration/targets/ce_multicast_igmp_enable/tests/netconf/ce_multicast_igmp_enable.yaml new file mode 100644 index 000000000..2a94b0a35 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_multicast_igmp_enable/tests/netconf/ce_multicast_igmp_enable.yaml @@ -0,0 +1,95 @@ +--- +- debug: + msg: "START ce_multicast_igmp_enable presented integration tests on connection={{ ansible_connection }}" +# clean up before test +- name: clean up configuration with the exisiting running configuration + ce_multicast_igmp_enable: &absent + aftype: v4 + features: vlan + vlan_id: 100 + igmp: true + version: 2 + proxy: true + + +- name: present the provided configuration with the exisiting running configuration + ce_multicast_igmp_enable: &present + aftype: v4 + features: vlan + vlan_id: 100 + igmp: true + version: 2 + proxy: true + register: result + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: Get basic config by ce_netconf. + ce_netconf: &get_config + rpc: get + cfg_xml: "<filter type=\"subtree\"> + <l2mc xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <vlan> + <l2McVlanCfgs> + <l2McVlanCfg> + <addrFamily></addrFamily> + <vlanId></vlanId> + <snoopingEnable></snoopingEnable> + <version></version> + <proxyEnable></proxyEnable> + </l2McVlanCfg> + </l2McVlanCfgs> + </vlan> + </l2mc> + </filter>" + register: result_xml + + +- name: present the provided configuration with the existing running configuration (IDEMPOTENT) + ce_multicast_igmp_enable: *present + register: repeat + +- name: Assert that the previous task was idempotent + assert: + that: + - "repeat.changed == false" + - "'<addrFamily>ipv4unicast</addrFamily>' in result_xml.end_state.result" + - "'<vlanId>100</vlanId>' in result_xml.end_state.result" + - "'<snoopingEnable>true</snoopingEnable>' in result_xml.end_state.result" + - "'<version>2</version>' in result_xml.end_state.result" + - "'<proxyEnable>true</proxyEnable>' in result_xml.end_state.result" + +- name: absent the provided configuration with the exisiting running configuration + ce_multicast_igmp_enable: *absent + register: result + + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" + +- name: absent the provided configuration with the existing running configuration (REPEAT) + ce_multicast_igmp_enable: *absent + register: repeat + +- name: Get basic config by ce_netconf. + ce_netconf: *get_config + register: result_xml + +- name: Assert that the previous task was idempotent + assert: + that: + - "result['changed'] == false" + - "'<addrFamily>ipv4unicast</addrFamily>' not in result_xml.end_state.result" + - "'<vlanId>100</vlanId>' not in result_xml.end_state.result" + - "'<snoopingEnable>true</snoopingEnable>' not in result_xml.end_state.result" + - "'<version>2</version>' not in result_xml.end_state.result" + - "'<proxyEnable>true</proxyEnable>' not in result_xml.end_state.result" +# after present, isis 100 should be deleted + +- debug: + msg: "END ce_multicast_igmp_enable resentd integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_static_route_bfd/aliases b/ansible_collections/community/network/tests/integration/targets/ce_static_route_bfd/aliases new file mode 100644 index 000000000..ad7ccf7ad --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_static_route_bfd/aliases @@ -0,0 +1 @@ +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/ce_static_route_bfd/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/ce_static_route_bfd/defaults/main.yaml new file mode 100644 index 000000000..164afead2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_static_route_bfd/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "[^_].*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/ce_static_route_bfd/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/ce_static_route_bfd/tasks/main.yaml new file mode 100644 index 000000000..e06ccf174 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_static_route_bfd/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: netconf.yaml, tags: ['netconf'] } diff --git a/ansible_collections/community/network/tests/integration/targets/ce_static_route_bfd/tasks/netconf.yaml b/ansible_collections/community/network/tests/integration/targets/ce_static_route_bfd/tasks/netconf.yaml new file mode 100644 index 000000000..73b91adfa --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_static_route_bfd/tasks/netconf.yaml @@ -0,0 +1,17 @@ +--- +- name: collect all netconf test cases + find: + paths: "{{ role_path }}/tests/netconf" + patterns: "{{ testcase }}.yaml" + use_regex: true + connection: local + register: test_cases + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test case (connection=netconf) + include: "{{ test_case_to_run }} ansible_connection=netconf" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/ce_static_route_bfd/tests/netconf/ce_static_route_bfd.yaml b/ansible_collections/community/network/tests/integration/targets/ce_static_route_bfd/tests/netconf/ce_static_route_bfd.yaml new file mode 100644 index 000000000..e333278d9 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_static_route_bfd/tests/netconf/ce_static_route_bfd.yaml @@ -0,0 +1,150 @@ +--- +- debug: + msg: "START ce_static_route_bfd presented integration tests on connection={{ ansible_connection }}" +- include_tasks: cleanup.yaml +- name: Config an ip route-static bfd 10GE1/0/1 3.3.3.3 min-rx-interval 50 min-tx-interval 50 detect-multiplier 5 + ce_static_route_bfd: &merge1 + function_flag: 'singleBFD' + nhp_interface: 10GE1/0/1 + next_hop: 3.3.3.3 + min_tx_interval: 50 + min_rx_interval: 50 + detect_multiplier: 5 + aftype: v4 + state: present + register: result1 +- name: (repeat)Config an ip route-static bfd 10GE1/0/1 3.3.3.3 min-rx-interval 50 min-tx-interval 50 detect-multiplier 5 + ce_static_route_bfd: + <<: *merge1 + register: result2 + +- name: Assert the configuration is reflected on host + assert: + that: + - "result1['changed'] == true" + - "result2['changed'] == false" + + +# ip route-static bfd [ interface-type interface-number | vpn-instance vpn-instance-name ] nexthop-address +- name: ip route-static bfd 10GE1/0/1 3.3.3.4 + ce_static_route_bfd: &merge2 + function_flag: 'singleBFD' + nhp_interface: 10GE1/0/1 + next_hop: 3.3.3.4 + aftype: v4 + register: result1 +- name: (repeat)ip route-static bfd 10GE1/0/1 3.3.3.4 + ce_static_route_bfd: + <<: *merge2 + register: result2 +- name: Assert the configuration is reflected on host + assert: + that: + - "result1['changed'] == true" + - "result2['changed'] == false" +#ip route-static default-bfd { min-rx-interval {min-rx-interval} | min-tx-interval {min-tx-interval} | detect-multiplier {multiplier}} +- name: Config an ip route-static default-bfd min-rx-interval 50 min-tx-interval 50 detect-multiplier 6 + ce_static_route_bfd: &merge3 + function_flag: 'globalBFD' + min_tx_interval: 50 + min_rx_interval: 50 + detect_multiplier: 6 + aftype: v4 + state: present + register: result1 +- name: (repeat)Config an ip route-static default-bfd min-rx-interval 50 min-tx-interval 50 detect-multiplier 6 + ce_static_route_bfd: + <<: *merge3 + register: result2 +- name: Assert the configuration is reflected on host + assert: + that: + - "result1['changed'] == true" + - "result2['changed'] == false" + +- name: undo ip route-static default-bfd + ce_static_route_bfd: &merge4 + function_flag: 'globalBFD' + aftype: v4 + state: absent + commands: 'sys,undo ip route-static default-bfd,commit' + register: result1 +- name: (repeat)undo ip route-static default-bfd + ce_static_route_bfd: + <<: *merge4 + register: result2 +- name: Assert the configuration is reflected on host + assert: + that: + - "result1['changed'] == true" + - "result2['changed'] == false" + +- name: Config an ipv4 static route 2.2.2.0/24 2.2.2.1 preference 1 tag 2 description test for staticBFD + ce_static_route_bfd: &merge5 + function_flag: 'staticBFD' + prefix: 2.2.2.2 + mask: 24 + next_hop: 2.2.2.1 + tag: 2 + description: test + pref: 1 + aftype: v4 + bfd_session_name: btoa + state: present + register: result1 +- name: (repeat) Config an ipv4 static route 2.2.2.0/24 2.2.2.1 preference 1 tag 2 description test for staticBFD + ce_static_route_bfd: + <<: *merge5 + register: result2 +- name: Assert the configuration is reflected on host + assert: + that: + - "result1['changed'] == true" + - "result2['changed'] == false" + +- name: Get lacp config by ce_netconf. + ce_netconf: + rpc: get + cfg_xml: "<get> + <filter type=\"subtree\"> + <staticrt xmlns=\"http://www.huawei.com/netconf/vrp\" content-version=\"1.0\" format-version=\"1.0\"> + <staticrtbase> + <srBfdParas> + <srBfdPara> + <afType/> + <ifName/> + <destVrfName/> + <nexthop/> + <localAddress/> + <minTxInterval/> + <minRxInterval/> + <multiplier/> + </srBfdPara> + </srBfdParas> + </staticrtbase> + </staticrt> + </filter> + </get>" + register: result_present + +- name: Assert that the previous task was idempotent + assert: + that: + - "'<afType>v4</afType>' == result_present.end_state.result" + - "'<ifName>10GE1/0/1</ifName>' == result_present.end_state.result" + - "'<rcvTimeoutType>Fast</rcvTimeoutType>' == result_present.end_state.result" + - "'<destVrfName>__publiv__</destVrfName>' == result_present.end_state.result" + - "'<selectPortStd>Prority</selectPortStd>' == result_present.end_state.result" + - "'<nexthop>2.2.2.1</nexthop>' == result_present.end_state.result" + - "'<localAddress>2.2.2.2</localAddress>' == result_present.end_state.result" + - "'<minTxInterval>12</minTxInterval>' in result_present.end_state.result" + - "'<mixRateEnable>true</mixRateEnable>' in result_present.end_state.result" + - "'<multiplier>true</multiplier>' in result_present.end_state.result" + - "'<dampUnexpMacEn>true</dampUnexpMacEn>' in result_present.end_state.result" + - "'<trunkSysMac>true</trunkSysMac>' in result_present.end_state.result" + - "'<trunkPortIdExt>true</trunkPortIdExt>' in result_present.end_state.result" + - "'<lacpMlagSysId>1111-2222-3333</lacpMlagSysId>' in result_present.end_state.result" + - "'<priority>123</priority>' in result_present.end_state.result" +- include_tasks: cleanup.yaml +- debug: + msg: "END ce_static_route_bfd presentd integration tests on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/ce_static_route_bfd/tests/netconf/cleanup.yaml b/ansible_collections/community/network/tests/integration/targets/ce_static_route_bfd/tests/netconf/cleanup.yaml new file mode 100644 index 000000000..10ad3e5c1 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/ce_static_route_bfd/tests/netconf/cleanup.yaml @@ -0,0 +1,31 @@ +--- +- name: Merge the provided configuration with the exisiting running configuration + ce_static_route_bfd: + function_flag: 'singleBFD' + nhp_interface: 10GE1/0/1 + next_hop: 3.3.3.3 + min_tx_interval: 50 + min_rx_interval: 50 + detect_multiplier: 5 + aftype: v4 + state: absent + register: result + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" +- name: ip route-static bfd 10GE1/0/1 3.3.3.4 + ce_static_route_bfd: &merge + function_flag: 'globalBFD' + min_tx_interval: 50 + min_rx_interval: 50 + detect_multiplier: 6 + aftype: v4 + state: absent + register: result + +- name: Assert the configuration is reflected on host + assert: + that: + - "result['changed'] == true" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_backup/README.md b/ansible_collections/community/network/tests/integration/targets/cnos_backup/README.md new file mode 100644 index 000000000..9b3c7cd8f --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_backup/README.md @@ -0,0 +1,115 @@ +# Ansible Role: cnos_backup_sample - Saving the switch configuration to a remote server +--- +<add role description below> + +This role is an example of using the *cnos_backup.py* Lenovo module in the context of CNOS switch configuration. This module allows you to work with switch configurations. It provides a way to back up the running or startup configurations of a switch to a remote server. This is achieved by periodically saving a copy of the startup or running configuration of the network device to a remote server using FTP, SFTP, TFTP, or SCP. + +The results of the operation can be viewed in *results* directory. + +For more details, see [Lenovo modules for Ansible: cnos_backup](http://systemx.lenovofiles.com/help/index.jsp?topic=%2Fcom.lenovo.switchmgt.ansible.doc%2Fcnos_backup.html&cp=0_3_1_0_4_4). + + +## Requirements +--- +<add role requirements information below> + +- Ansible version 2.2 or later ([Ansible installation documentation](http://docs.ansible.com/ansible/intro_installation.html)) +- Lenovo switches running CNOS version 10.2.1.0 or later +- an SSH connection to the Lenovo switch (SSH must be enabled on the network device) + + +## Role Variables +--- +<add role variables information below> + +Available variables are listed below, along with description. + +The following are mandatory inventory variables: + +Variable | Description +--- | --- +`ansible_connection` | Has to be `network_cli` +`ansible_network_os` | Has to be `cnos` +`ansible_ssh_user` | Specifies the username used to log into the switch +`ansible_ssh_pass` | Specifies the password used to log into the switch +`enablePassword` | Configures the password used to enter Global Configuration command mode on the switch (this is an optional parameter) +`hostname` | Searches the hosts file at */etc/ansible/hosts* and identifies the IP address of the switch on which the role is going to be applied +`deviceType` | Specifies the type of device from where the configuration will be backed up (**g8272_cnos** - G8272, **g8296_cnos** - G8296, **g8332_cnos** - G8332, **NE10032** - NE10032, **NE1072T** - NE1072T, **NE1032** - NE1032, **NE1032T** - NE1032T, **NE2572** - NE2572, **NE0152T** - NE0152T) + +The values of the variables used need to be modified to fit the specific scenario in which you are deploying the solution. To change the values of the variables, you need to visits the *vars* directory of each role and edit the *main.yml* file located there. The values stored in this file will be used by Ansible when the template is executed. + +The syntax of *main.yml* file for variables is the following: + +``` +<template variable>:<value> +``` + +You will need to replace the `<value>` field with the value that suits your topology. The `<template variable>` fields are taken from the template and it is recommended that you leave them unchanged. + +Variable | Description +--- | --- +`configType` | Specifies the type of configuration to be backed up to the remote server (**running-config** - running configuration, **startup-config** - startup configuration) +`protocol` | Specifies the protocol used by the network device to interact with the remote server to where to upload the backup configuration (**ftp** - FTP, **sftp** - SFTP, **tftp** - TFTP, **scp** - SCP) +`serverip` | Specifies the IP Address of the remote server to where the configuration will be backed up +`rcpath` | Specifies the full file path where the configuration file will be copied on the remote server (when backing up the switch configuration through TFTP, an empty directory needs to be created, otherwise the operation will fail) +`serverusername` | Configures the username for the server relating to the protocol used +`serverpassword` | Configures the password for the server relating to the protocol used + + +## Dependencies +--- +<add dependencies information below> + +- username.iptables - Configures the firewall and blocks all ports except those needed for web server and SSH access. +- username.common - Performs common server configuration. +- cnos_backup.py - This modules needs to be present in the *library* directory of the role. +- cnos.py - This module needs to be present in the PYTHONPATH environment variable set in the Ansible system. +- /etc/ansible/hosts - You must edit the */etc/ansible/hosts* file with the device information of the switches designated as leaf switches. You may refer to *cnos_backup_sample_hosts* for a sample configuration. + +Ansible keeps track of all network elements that it manages through a hosts file. Before the execution of a playbook, the hosts file must be set up. + +Open the */etc/ansible/hosts* file with root privileges. Most of the file is commented out by using **#**. You can also comment out the entries you will be adding by using **#**. You need to copy the content of the hosts file for the role into the */etc/ansible/hosts* file. The sample hosts file for the role is located in the main directory. + +``` +[cnos_backup_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos +10.241.107.40 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos +``` + +**Note:** You need to change the IP addresses to fit your specific topology. You also need to change the `<username>` and `<password>` to the appropriate values used to log into the specific Lenovo network devices. + + +## Example Playbook +--- +<add playbook samples below> + +To execute an Ansible playbook, use the following command: + +``` +ansible-playbook cnos_backup_sample.yml -vvv +``` + +`-vvv` is an optional verbose command that helps identify what is happening during playbook execution. The playbook for each role is located in the main directory of the solution. + +``` +- name: Module to back up configuration + hosts: cnos_backup_sample + gather_facts: no + connection: local + roles: + - cnos_backup_sample +``` + + +## License +--- +<add license information below> +Copyright (C) 2017 Lenovo, Inc. + +This file is part of Ansible + +Ansible is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +Ansible is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with Ansible. If not, see <http://www.gnu.org/licenses/>. diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_backup/aliases b/ansible_collections/community/network/tests/integration/targets/cnos_backup/aliases new file mode 100644 index 000000000..be010d923 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_backup/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_backup/cnos_backup_sample_hosts b/ansible_collections/community/network/tests/integration/targets/cnos_backup/cnos_backup_sample_hosts new file mode 100644 index 000000000..9f07a29d4 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_backup/cnos_backup_sample_hosts @@ -0,0 +1,17 @@ +# You have to paste this dummy information in /etc/ansible/hosts +# Notes: +# - Comments begin with the '#' character +# - Blank lines are ignored +# - Groups of hosts are delimited by [header] elements +# - You can enter hostnames or ip Addresses +# - A hostname/ip can be a member of multiple groups +# +# In the /etc/ansible/hosts file u have to enter [cnos_backup_sample] tag +# Following you should specify IP Addresses details +# Please change <username> and <password> with appropriate value for your switch. + +[cnos_backup_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos rcpath=/root/cnos_config/G8272-running-config.txt + +#Use this in case its TFTP as tftpboot folder is the starting point for tftp +#10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos rcpath=/anil/G8272-running-config.txt diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_backup/tasks/main.yml b/ansible_collections/community/network/tests/integration/targets/cnos_backup/tasks/main.yml new file mode 100644 index 000000000..7cc3c231a --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_backup/tasks/main.yml @@ -0,0 +1,30 @@ +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +# This contain sample config back up tasks +--- + +- name: Test Startup Config Backup + cnos_backup: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_backup_{{ inventory_hostname }}_output.txt configType='{{item.configType}}' protocol='{{item.protocol}}' serverip='{{item.serverip}}' rcpath='{{item.rcpath}}' serverusername='{{item.serverusername}}' serverpassword='{{item.serverpassword}}' + with_items: "{{test_config_data2}}" + +- name: Test Running Config Backup + cnos_backup: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_backup_{{ inventory_hostname }}_output.txt configType='{{item.configType}}' protocol='{{item.protocol}}' serverip='{{item.serverip}}' rcpath='{{item.rcpath}}' serverusername='{{item.serverusername}}' serverpassword='{{item.serverpassword}}' + with_items: "{{test_config_data1}}" + +#Root folder will be different for SFTP/SCP and TFTP +#The following task is commented. +#Before trying this, please change in /etc/ansible/hosts file +#and backup the config file with reference to your tftp-root folder + +#- name: Test Running Config Backup -TFTP +# cnos_backup: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_backup_{{ inventory_hostname }}_output.txt configType='{{item.configType}}' protocol='{{item.protocol}}' serverip='{{item.serverip}}' rcpath='{{item.rcpath}}' +# with_items: "{{test_config_data3}}" + +#- name: Test Startup Config Backup - TFTP +# cnos_backup: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_backup_{{ inventory_hostname }}_output.txt configType='{{item.configType}}' protocol='{{item.protocol}}' serverip='{{item.serverip}}' rcpath='{{item.rcpath}}' +# with_items: "{{test_config_data4}}" + +# Completed file diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_backup/vars/main.yml b/ansible_collections/community/network/tests/integration/targets/cnos_backup/vars/main.yml new file mode 100644 index 000000000..478ec145c --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_backup/vars/main.yml @@ -0,0 +1,12 @@ +--- +test_config_data1: + - {configType: "running-config", protocol: "sftp", serverip: "10.241.106.118", serverusername: "root", serverpassword: "root123", rcpath: "/root/cnos_config/"} + +test_config_data2: + - {configType: "startup-config", protocol: "sftp", serverip: "10.241.106.118", serverusername: "root", serverpassword: "root123", rcpath: "/root/cnos_config/"} + +test_config_data3: + - {configType: running-config, protocol: "tftp", serverip: "10.241.106.118", rcpath: "/root/cnos_config/"} + +test_config_data4: + - {configType: startup-config, protocol: "tftp", serverip: "10.241.106.118", rcpath: "/root/cnos_config/"} diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_banner/aliases b/ansible_collections/community/network/tests/integration/targets/cnos_banner/aliases new file mode 100644 index 000000000..be010d923 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_banner/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_banner/cnos_banner_sample_hosts b/ansible_collections/community/network/tests/integration/targets/cnos_banner/cnos_banner_sample_hosts new file mode 100644 index 000000000..495d6ba41 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_banner/cnos_banner_sample_hosts @@ -0,0 +1,14 @@ +# You have to paste this dummy information in /etc/ansible/hosts +# Notes: +# - Comments begin with the '#' character +# - Blank lines are ignored +# - Groups of hosts are delimited by [header] elements +# - You can enter hostnames or ip Addresses +# - A hostname/ip can be a member of multiple groups +# +# In the /etc/ansible/hosts file u have to enter [cnos_banner_sample] tag +# Following you should specify IP Addresses details +# Please change <username> and <password> with appropriate value for your switch. + +[cnos_banner_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_banner/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_banner/defaults/main.yaml new file mode 100644 index 000000000..5f709c5aa --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_banner/defaults/main.yaml @@ -0,0 +1,2 @@ +--- +testcase: "*" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_banner/tasks/cli.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_banner/tasks/cli.yaml new file mode 100644 index 000000000..303af4076 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_banner/tasks/cli.yaml @@ -0,0 +1,22 @@ +--- +- name: collect all cli test cases + find: + paths: "{{ role_path }}/tests/cli" + patterns: "{{ testcase }}.yaml" + register: test_cases + delegate_to: localhost + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test cases (connection=network_cli) + include: "{{ test_case_to_run }}" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run + +- name: run test case (connection=local) + include: "{{ test_case_to_run }} ansible_connection=local" + with_first_found: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_banner/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_banner/tasks/main.yaml new file mode 100644 index 000000000..fa3dd7fb2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_banner/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: cli.yaml, tags: ['cli'] } diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_banner/tests/cli/basic-login.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_banner/tests/cli/basic-login.yaml new file mode 100644 index 000000000..0e1e8f97d --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_banner/tests/cli/basic-login.yaml @@ -0,0 +1,43 @@ +--- + +- name: setup - remove login + cnos_banner: + banner: login + state: absent + provider: "{{ cli }}" + +- name: Set login + cnos_banner: + banner: login + text: | + this is my login banner + that has a multiline + string + state: present + provider: "{{ cli }}" + + register: result + +- debug: + msg: "{{ result }}" + +- assert: + that: + - "result.changed == true" + +- name: Set login again (idempotent) + cnos_banner: + banner: login + text: | + this is my login banner + that has a multiline + string + state: present + provider: "{{ cli }}" + + register: result + +- assert: + that: + - "result.changed == false" + - "result.commands | length == 0" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_banner/tests/cli/basic-motd.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_banner/tests/cli/basic-motd.yaml new file mode 100644 index 000000000..b7bcfc671 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_banner/tests/cli/basic-motd.yaml @@ -0,0 +1,45 @@ +--- + +- name: setup - remove motd + cnos_banner: + banner: motd + state: absent + provider: "{{ cli }}" + + +- name: Set motd + cnos_banner: + banner: motd + text: | + this is my motd banner + that has a multiline + string + state: present + provider: "{{ cli }}" + + register: result + +- debug: + msg: "{{ result }}" + +- assert: + that: + - "result.changed == true" +# - "'banner motd @\nthis is my motd banner\nthat has a multiline\nstring\n@' in result.commands" + +- name: Set motd again (idempotent) + cnos_banner: + banner: motd + text: | + this is my motd banner + that has a multiline + string + state: present + provider: "{{ cli }}" + + register: result + +- assert: + that: + - "result.changed == false" + - "result.commands | length == 0" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_banner/tests/cli/basic-no-login.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_banner/tests/cli/basic-no-login.yaml new file mode 100644 index 000000000..b3d7d4b67 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_banner/tests/cli/basic-no-login.yaml @@ -0,0 +1,36 @@ +--- +- name: Setup + cnos_banner: + banner: login + text: | + Junk login banner + over multiple lines + state: present + provider: "{{ cli }}" + +- name: remove login + cnos_banner: + banner: login + state: absent + provider: "{{ cli }}" + register: result + +- debug: + msg: "{{ result }}" + +- assert: + that: + - "result.changed == true" + - "'no banner login' in result.commands" # does this break due to "contains?" + +- name: remove login (idempotent) + cnos_banner: + banner: login + state: absent + provider: "{{ cli }}" + register: result + +- assert: + that: + - "result.changed == false" + - "result.commands | length == 0" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_banner/vars/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_banner/vars/main.yaml new file mode 100644 index 000000000..aa25153ec --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_banner/vars/main.yaml @@ -0,0 +1,9 @@ +--- +cli: + host: "{{ inventory_hostname }}" + port: 22 + username: admin + password: admin + timeout: 30 + authorize: True + auth_pass: diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_bgp/README.md b/ansible_collections/community/network/tests/integration/targets/cnos_bgp/README.md new file mode 100644 index 000000000..d48ce8520 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_bgp/README.md @@ -0,0 +1,119 @@ +# Ansible Role: cnos_bgp_sample - CNOS Switch BGP Configuration +--- +<add role description below> + +This role is an example of using the *cnos_bgp.py* Lenovo module in the context of CNOS switch configuration. This module allows you to work with Border Gateway Protocol (BGP) related configurations. The operators used are overloaded to ensure control over switch BGP configurations. This module is invoked using method with *asNumber* as one of its arguments. + +The first level of the BGP configuration allows to set up an AS number, with the following attributes going into various configuration operations under the context of BGP. After passing this level, there are eight BGP arguments that will perform further configurations. They are *bgpArg1*, *bgpArg2*, *bgpArg3*, *bgpArg4*, *bgpArg5*, *bgpArg6*, *bgpArg7*, and *bgpArg8*. + +The results of the operation can be viewed in *results* directory. + +For more details, see [Lenovo modules for Ansible: cnos_bgp](http://systemx.lenovofiles.com/help/index.jsp?topic=%2Fcom.lenovo.switchmgt.ansible.doc%2Fcnos_bgp.html&cp=0_3_1_0_4_16). + + +## Requirements +--- +<add role requirements information below> + +- Ansible version 2.2 or later ([Ansible installation documentation](http://docs.ansible.com/ansible/intro_installation.html)) +- Lenovo switches running CNOS version 10.2.1.0 or later +- an SSH connection to the Lenovo switch (SSH must be enabled on the network device) + + +## Role Variables +--- +<add role variables information below> + +Available variables are listed below, along with description. + +The following are mandatory inventory variables: + +Variable | Description +--- | --- +`ansible_connection` | Has to be `network_cli` +`ansible_network_os` | Has to be `cnos` +`ansible_ssh_user` | Specifies the username used to log into the switch +`ansible_ssh_pass` | Specifies the password used to log into the switch +`enablePassword` | Configures the password used to enter Global Configuration command mode on the switch (this is an optional parameter) +`hostname` | Searches the hosts file at */etc/ansible/hosts* and identifies the IP address of the switch on which the role is going to be applied +`deviceType` | Specifies the type of device from where the configuration will be backed up (**g8272_cnos** - G8272, **g8296_cnos** - G8296, **g8332_cnos** - G8332, **NE10032** - NE10032, **NE1072T** - NE1072T, **NE1032** - NE1032, **NE1032T** - NE1032T, **NE2572** - NE2572, **NE0152T** - NE0152T) + +The values of the variables used need to be modified to fit the specific scenario in which you are deploying the solution. To change the values of the variables, you need to visits the *vars* directory of each role and edit the *main.yml* file located there. The values stored in this file will be used by Ansible when the template is executed. + +The syntax of *main.yml* file for variables is the following: + +``` +<template variable>:<value> +``` + +You will need to replace the `<value>` field with the value that suits your topology. The `<template variable>` fields are taken from the template and it is recommended that you leave them unchanged. + +Variable | Description +--- | --- +`asNum` | Specifies the AS number +`bgpArg1` | This is an overloaded BGP variable. Please refer to the [cnos_bgp module documentation](http://ralfss28.labs.lenovo.com:5555/help/topic/com.lenovo.switchmgt.ansible.doc/cnos_bgp.html?cp=0_3_1_0_2_13) for detailed information on usage. The values of these variables depend on the configuration context and the choices are the following: **address-family**, **bestpath**, **bgp**, **cluster-id**, **confederation**, **enforce-first-as**, **fast-external-failover**, **graceful-restart**, **graceful-restart-helper**, **log-neighbor-changes**, **maxas-limit**, **neighbor**, **router-id**, **shutdown**, **synchronization**, **timers**, **vrf**. +`bgpArg2` | This is an overloaded BGP variable. Please refer to the [cnos_bgp module documentation](http://ralfss28.labs.lenovo.com:5555/help/topic/com.lenovo.switchmgt.ansible.doc/cnos_bgp.html?cp=0_3_1_0_2_13) for detailed information on usage. The values of these variables depend on the configuration context and the choices are the following: **ipv4**, **ipv6**, **always-compare-med**, **compare-confed-aspath**, **compare-routerid**, **dont-compare-originator-id**, **tie-break-on-age**, **as-path**, **med**, number of times to prepend the local AS, Route Reflector Cluster ID as a 32 bit quantity or in IP address format, **identifier**, **peers**, delay value, number of autonomous systems in the AS-path attribute, neighbor address, neighbor prefix, manually configured router identifier, keepalive interval. +`bgpArg3` | This is an overloaded BGP variable. Please refer to the [cnos_bgp module documentation](http://ralfss28.labs.lenovo.com:5555/help/topic/com.lenovo.switchmgt.ansible.doc/cnos_bgp.html?cp=0_3_1_0_2_13) for detailed information on usage. The values of these variables depend on the configuration context and the choices are the following: **aggregate-address**, **client-to-client**, **dampening**, **distance**, **maximum-paths**, **network**, **nexthop**, **redistribute**, **save**, **synchronization**, **ignore**, **multipath-relax**, **confed**, **missing-as-worst**, **non-deterministic**, **remove-recv-med**, **remove-send-med**, set routing domain confederation AS, AS number. +`bgpArg4` | This is an overloaded BGP variable. Please refer to the [cnos_bgp module documentation](http://ralfss28.labs.lenovo.com:5555/help/topic/com.lenovo.switchmgt.ansible.doc/cnos_bgp.html?cp=0_3_1_0_2_13) for detailed information on usage. The values of these variables depend on the configuration context and the choices are the following: IP address/prefix length, **route-map**, time after which a penalty is decreased by half, administrative distance to routes outside the AS, **ebgp**, **ibgp**, **synchronization**, IP address, delay value, **direct**, **ospf**, **static**, **memory**. +`bgpArg5` | This is an overloaded BGP variable. Please refer to the [cnos_bgp module documentation](http://ralfss28.labs.lenovo.com:5555/help/topic/com.lenovo.switchmgt.ansible.doc/cnos_bgp.html?cp=0_3_1_0_2_13) for detailed information on usage. The values of these variables depend on the configuration context and the choices are the following: **as-set**, **summary-only**, name of the route map that controls where BGP route dampening is enabled, value to start reusing a route, administrative distance to routes inside the AS, value for maximum path numbers, **backdoor**, **mask**, **route-map**. +`bgpArg6` | This is an overloaded BGP variable. Please refer to the [cnos_bgp module documentation](http://ralfss28.labs.lenovo.com:5555/help/topic/com.lenovo.switchmgt.ansible.doc/cnos_bgp.html?cp=0_3_1_0_2_13) for detailed information on usage. The values of these variables depend on the configuration context and the choices are the following: **summary-only**, **as-set**, value to start suppressing a route, administrative distance for local routes, IP subnet address mask, name of the route map. +`bgpArg7` | This is an overloaded BGP variable. Please refer to the [cnos_bgp module documentation](http://ralfss28.labs.lenovo.com:5555/help/topic/com.lenovo.switchmgt.ansible.doc/cnos_bgp.html?cp=0_3_1_0_2_13) for detailed information on usage. The values of these variables depend on the configuration context and the choices are the following: maximum duration to suppress a stable route, **route-map**, **backdoor**. +'bgpArg8' | This is an overloaded BGP variable. Please refer to the [cnos_bgp module documentation](http://ralfss28.labs.lenovo.com:5555/help/topic/com.lenovo.switchmgt.ansible.doc/cnos_bgp.html?cp=0_3_1_0_2_13) for detailed information on usage. The values of these variables depend on the configuration context and the choices are the following: time after which an unreachable route's penalty is decreased by half, **backdoor**. + +## Dependencies +--- +<add dependencies information below> + +- username.iptables - Configures the firewall and blocks all ports except those needed for web server and SSH access. +- username.common - Performs common server configuration. +- cnos_bgp.py - This modules needs to be present in the *library* directory of the role. +- cnos.py - This module needs to be present in the PYTHONPATH environment variable set in the Ansible system. +- /etc/ansible/hosts - You must edit the */etc/ansible/hosts* file with the device information of the switches designated as leaf switches. You may refer to *cnos_bgp_sample_hosts* for a sample configuration. + +Ansible keeps track of all network elements that it manages through a hosts file. Before the execution of a playbook, the hosts file must be set up. + +Open the */etc/ansible/hosts* file with root privileges. Most of the file is commented out by using **#**. You can also comment out the entries you will be adding by using **#**. You need to copy the content of the hosts file for the role into the */etc/ansible/hosts* file. The sample hosts file for the role is located in the main directory. + +``` +[cnos_bgp_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos +10.241.107.40 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos +``` + +**Note:** You need to change the IP addresses to fit your specific topology. You also need to change the `<username>` and `<password>` to the appropriate values used to log into the specific Lenovo network devices. + + +## Example Playbook +--- +<add playbook samples below> + +To execute an Ansible playbook, use the following command: + +``` +ansible-playbook cnos_bgp_sample.yml -vvv +``` + +`-vvv` is an optional verbose command that helps identify what is happening during playbook execution. The playbook for each role is located in the main directory of the solution. + +``` +- name: Module to do BGP configuration + hosts: cnos_bgp_sample + gather_facts: no + connection: local + roles: + - cnos_bgp_sample +``` + + +## License +--- +<add license information below> +Copyright (C) 2017 Lenovo, Inc. + +This file is part of Ansible + +Ansible is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +Ansible is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with Ansible. If not, see <http://www.gnu.org/licenses/>. diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_bgp/aliases b/ansible_collections/community/network/tests/integration/targets/cnos_bgp/aliases new file mode 100644 index 000000000..be010d923 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_bgp/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_bgp/cnos_bgp_sample_hosts b/ansible_collections/community/network/tests/integration/targets/cnos_bgp/cnos_bgp_sample_hosts new file mode 100644 index 000000000..c84d7e3c0 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_bgp/cnos_bgp_sample_hosts @@ -0,0 +1,14 @@ +# You have to paste this dummy information in /etc/ansible/hosts +# Notes: +# - Comments begin with the '#' character +# - Blank lines are ignored +# - Groups of hosts are delimited by [header] elements +# - You can enter hostnames or ip Addresses +# - A hostname/ip can be a member of multiple groups +# +# In the /etc/ansible/hosts file u have to enter [cnos_bgp_sample] tag +# Following you should specify IP Addresses details +# Please change <username> and <password> with appropriate value for your switch. + +[cnos_bgp_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_bgp/tasks/main.yml b/ansible_collections/community/network/tests/integration/targets/cnos_bgp/tasks/main.yml new file mode 100644 index 000000000..456a08185 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_bgp/tasks/main.yml @@ -0,0 +1,83 @@ +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +## This contain sample BGP execution tasks +--- +- name: Test BGP - neighbor + cnos_bgp: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_bgp_{{ inventory_hostname }}_output.txt asNum='{{item.asNum}}' bgpArg1='{{item.bgpArg1}}' bgpArg2='{{item.bgpArg2}}' bgpArg3='{{item.bgpArg3}}' bgpArg4='{{item.bgpArg4}}' bgpArg5='{{item.bgpArg5}}' bgpArg6='{{item.bgpArg6}}' + with_items: "{{test_bgp_data13}}" + +- name: Test BGP - BFD + cnos_bgp: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_bgp_{{ inventory_hostname }}_output.txt asNum='{{item.asNum}}' bgpArg1='{{item.bgpArg1}}' bgpArg2='{{item.bgpArg2}}' bgpArg3='{{item.bgpArg3}}' bgpArg4='{{item.bgpArg4}}' + with_items: "{{test_bgp_data19}}" + +- name: Test BGP - address-family - dampening + cnos_bgp: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_bgp_{{ inventory_hostname }}_output.txt asNum='{{item.asNum}}' bgpArg1='{{item.bgpArg1}}' bgpArg2='{{item.bgpArg2}}' bgpArg3='{{item.bgpArg3}}' bgpArg4='{{item.bgpArg4}}' bgpArg5='{{item.bgpArg5}}' bgpArg6='{{item.bgpArg6}}' bgpArg7='{{item.bgpArg7}}' bgpArg8='{{item.bgpArg8}}' + with_items: "{{test_bgp_data1}}" + +- name: Test BGP - address-family - network + cnos_bgp: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_bgp_{{ inventory_hostname }}_output.txt asNum='{{item.asNum}}' bgpArg1='{{item.bgpArg1}}' bgpArg2='{{item.bgpArg2}}' bgpArg3='{{item.bgpArg3}}' bgpArg4='{{item.bgpArg4}}' bgpArg5='{{item.bgpArg5}}' + with_items: "{{test_bgp_data18}}" + +- name: Test BGP - bestpath - always-compare-med + cnos_bgp: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_bgp_{{ inventory_hostname }}_output.txt asNum='{{item.asNum}}' bgpArg1='{{item.bgpArg1}}' bgpArg2='{{item.bgpArg2}}' + with_items: "{{test_bgp_data2}}" + +- name: Test BGP - bestpath-compare-confed-aspat + cnos_bgp: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_bgp_{{ inventory_hostname }}_output.txt asNum='{{item.asNum}}' bgpArg1='{{item.bgpArg1}}' bgpArg2='{{item.bgpArg2}}' + with_items: "{{test_bgp_data3}}" + +- name: Test BGP - bgp + cnos_bgp: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_bgp_{{ inventory_hostname }}_output.txt asNum='{{item.asNum}}' bgpArg1='{{item.bgpArg1}}' bgpArg2='{{item.bgpArg2}}' + with_items: "{{test_bgp_data4}}" + +- name: Test BGP - cluster-id + cnos_bgp: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_bgp_{{ inventory_hostname }}_output.txt asNum='{{item.asNum}}' bgpArg1='{{item.bgpArg1}}' bgpArg2='{{item.bgpArg2}}' + with_items: "{{test_bgp_data5}}" + +- name: Test BGP - confederation-identifier + cnos_bgp: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_bgp_{{ inventory_hostname }}_output.txt asNum='{{item.asNum}}' bgpArg1='{{item.bgpArg1}}' bgpArg2='{{item.bgpArg2}}' bgpArg3='{{item.bgpArg3}}' + with_items: "{{test_bgp_data6}}" + +- name: Test BGP - enforce-first-as + cnos_bgp: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_bgp_{{ inventory_hostname }}_output.txt asNum='{{item.asNum}}' bgpArg1='{{item.bgpArg1}}' + with_items: "{{test_bgp_data7}}" + +- name: Test BGP - fast-external-failover + cnos_bgp: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_bgp_{{ inventory_hostname }}_output.txt asNum='{{item.asNum}}' bgpArg1='{{item.bgpArg1}}' + with_items: "{{test_bgp_data8}}" + +- name: Test BGP - graceful-restart + cnos_bgp: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_bgp_{{ inventory_hostname }}_output.txt asNum='{{item.asNum}}' bgpArg1='{{item.bgpArg1}}' bgpArg2='{{item.bgpArg2}}' + with_items: "{{test_bgp_data9}}" + +- name: Test BGP - graceful-restart-helper + cnos_bgp: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_bgp_{{ inventory_hostname }}_output.txt asNum='{{item.asNum}}' bgpArg1='{{item.bgpArg1}}' + with_items: "{{test_bgp_data10}}" + +- name: Test BGP - maxas-limit + cnos_bgp: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_bgp_{{ inventory_hostname }}_output.txt asNum='{{item.asNum}}' bgpArg1='{{item.bgpArg1}}' bgpArg2='{{item.bgpArg2}}' + with_items: "{{test_bgp_data11}}" + +#- name: Test BGP - neighbor +# cnos_bgp: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_bgp_{{ inventory_hostname }}_output.txt asNum='{{item.asNum}}' bgpArg1='{{item.bgpArg1}}' bgpArg2='{{item.bgpArg2}}' bgpArg3='{{item.bgpArg3}}' +# with_items: "{{test_bgp_data13}}" + +- name: Test BGP - router-id + cnos_bgp: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_bgp_{{ inventory_hostname }}_output.txt asNum='{{item.asNum}}' bgpArg1='{{item.bgpArg1}}' bgpArg2='{{item.bgpArg2}}' + with_items: "{{test_bgp_data14}}" + +- name: Test BGP - synchronization + cnos_bgp: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_bgp_{{ inventory_hostname }}_output.txt asNum='{{item.asNum}}' bgpArg1='{{item.bgpArg1}}' + with_items: "{{test_bgp_data15}}" + +- name: Test BGP - timers + cnos_bgp: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_bgp_{{ inventory_hostname }}_output.txt asNum='{{item.asNum}}' bgpArg1='{{item.bgpArg1}}' bgpArg2='{{item.bgpArg2}}' bgpArg3='{{item.bgpArg3}}' + with_items: "{{test_bgp_data16}}" + +- name: Test BGP - vrf + cnos_bgp: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_bgp_{{ inventory_hostname }}_output.txt asNum='{{item.asNum}}' bgpArg1='{{item.bgpArg1}}' + with_items: "{{test_bgp_data17}}" +# Completed file diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_bgp/vars/main.yml b/ansible_collections/community/network/tests/integration/targets/cnos_bgp/vars/main.yml new file mode 100644 index 000000000..ba08d9c0f --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_bgp/vars/main.yml @@ -0,0 +1,37 @@ +--- +test_bgp_data1: + - {asNum: 33, bgpArg1: "address-family", bgpArg2: "ipv4", bgpArg3: "dampening", bgpArg4: 13, bgpArg5: 233, bgpArg6: 333, bgpArg7: 15, bgpArg8: 33 } +test_bgp_data2: + - {asNum: 33, bgpArg1: "bestpath", bgpArg2: "always-compare-med"} +test_bgp_data3: + - {asNum: 33, bgpArg1: "bestpath", bgpArg2: "compare-confed-aspath"} +test_bgp_data4: + - {asNum: 33, bgpArg1: "bgp", bgpArg2: 33} +test_bgp_data5: + - {asNum: 33, bgpArg1: "cluster-id", bgpArg2: "1.2.3.4"} +test_bgp_data6: + - {asNum: 33, bgpArg1: "confederation", bgpArg2: "identifier", bgpArg3: 333} +test_bgp_data7: + - {asNum: 33, bgpArg1: "enforce-first-as"} +test_bgp_data8: + - {asNum: 33, bgpArg1: "fast-external-failover"} +test_bgp_data9: + - {asNum: 33, bgpArg1: "graceful-restart", bgpArg2: 333} +test_bgp_data10: + - {asNum: 33, bgpArg1: "graceful-restart-helper"} +test_bgp_data11: + - {asNum: 33, bgpArg1: "maxas-limit", bgpArg2: 333} +test_bgp_data13: + - {asNum: 33, bgpArg1: "neighbor", bgpArg2: "10.241.107.40", bgpArg3: 13, bgpArg4: "address-family", bgpArg5: "ipv4", bgpArg6: "next-hop-self" } +test_bgp_data14: + - {asNum: 33, bgpArg1: "router-id", bgpArg2: "1.2.3.4"} +test_bgp_data15: + - {asNum: 33, bgpArg1: "synchronization"} +test_bgp_data16: + - {asNum: 33, bgpArg1: "timers", bgpArg2: 333, bgpArg3: 3333} +test_bgp_data17: + - {asNum: 33, bgpArg1: "vrf"} +test_bgp_data18: + - {asNum: 33, bgpArg1: "address-family", bgpArg2: "ipv4", bgpArg3: "network", bgpArg4: "1.2.3.4/5", bgpArg5: "backdoor"} +test_bgp_data19: + - {asNum: 33, bgpArg1: "neighbor", bgpArg2: "10.241.107.40", bgpArg3: 13, bgpArg4: "bfd"} diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_command/README.md b/ansible_collections/community/network/tests/integration/targets/cnos_command/README.md new file mode 100644 index 000000000..374470c4a --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_command/README.md @@ -0,0 +1,115 @@ +# Ansible Role: cnos_command - Executes any CLI command on switch and results are displayed. +--- +<add role description below> + + Sends arbitrary commands to an CNOS node and returns the results + read from the device. The C(cnos_command) module includes an + argument that will cause the module to wait for a specific condition + before returning or timing out if the condition is not met. + +## Requirements +--- +<add role requirements information below> + +- Ansible version 2.6 or later ([Ansible installation documentation](http://docs.ansible.com/ansible/intro_installation.html)) +- Lenovo switches running CNOS version 10.2.1.0 or later +- an SSH connection to the Lenovo switch (SSH must be enabled on the network device) + + +## Role Variables +--- +<add role variables information below> +Available variables are listed below, along with description. + +The following are mandatory inventory variables: + +Variable | Description +--- | --- +`ansible_connection` | Has to be `network_cli` +`ansible_network_os` | Has to be `cnos` +`ansible_ssh_user` | Specifies the username used to log into the switch +`ansible_ssh_pass` | Specifies the password used to log into the switch + +These are the various options the customer have in executing the cnos_command modules: + +Variable | Description +--- | --- +`commands` | List of commands to send to the remote device. The resulting output from the command is returned. If the I(wait_for) argument is provided, the module is not returned until the condition is satisfied or the number of retires as expired. +`wait_for` | List of conditions to evaluate against the output of the command. The task will wait for each condition to be true before moving forward. If the conditional is not true within the configured number of retries, the task fails. See examples. +`match` | The I(match) argument is used in conjunction with the I(wait_for) argument to specify the match policy. Valid values are C(all) or C(any). If the value is set to C(all) then all conditionals in the wait_for must be satisfied. If the value is set to C(any) then only one of the values must be satisfied. +`retries` | Specifies the number of retries a command should by tried before it is considered failed. The command is run on the target device every retry and evaluated against the I(wait_for) conditions. +`interval` | Configures the interval in seconds to wait between retries of the command. If the command does not pass the specified conditions, the interval indicates how long to wait before trying the command again. + +Need to specify these variables in vars/main.yml under variable `cli` + +Variable | Description +--- | --- +`host` | Has to be "{{ inventory_hostname }}" +`port` | Has to be`22` +`username` | User Name of switch +`password` | Password of switch +`timeout` | time out value for CLI +`authorize` | Whether u have to enter enable mode for data collection. +`auth_pass`| Enable Password if required + + +## Dependencies +--- +<add dependencies information below> + +- username.iptables - Configures the firewall and blocks all ports except those needed for web server and SSH access. +- username.common - Performs common server configuration. +- cnos_command.py - This module file will be located at lib/ansible/modules/network/cnos/ of Ansible installation. +- cnos.py - This module util file will be located at lib/ansible/module_utils/network/cnos of Ansible installation. +- cnos.py - This module plugin file will be located at lib/ansible/plugins/action of Ansible installation. +- cnos.py - This module plugin file will be located at lib/ansible/plugins/cliconf of Ansible installation. +- cnos.py - This module plugin file will be located at lib/ansible/plugins/cliconf of Ansible installation. +- /etc/ansible/hosts - You must edit the */etc/ansible/hosts* file with the device information of the switches designated as leaf switches. You may refer to *cnos_command_sample_hosts* for a sample configuration. + +Ansible keeps track of all network elements that it manages through a hosts file. Before the execution of a playbook, the hosts file must be set up. + +Open the */etc/ansible/hosts* file with root privileges. Most of the file is commented out by using **#**. You can also comment out the entries you will be adding by using **#**. You need to copy the content of the hosts file for the role into the */etc/ansible/hosts* file. The sample hosts file for the role is located in the main directory. + +``` +[cnos_command] +10.241.107.39 ansible_connection=network_cli ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> +``` + +**Note:** You need to change the IP addresses to fit your specific topology. You also need to change the `<username>` and `<password>` to the appropriate values used to log into the specific Lenovo network devices. + + +## Example Playbook +--- +<add playbook samples below> + +To execute an Ansible playbook, use the following command: + +``` +ansible-playbook cnos_command_sample.yml -vvv +``` + +`-vvv` is an optional verbose command that helps identify what is happening during playbook execution. The playbook for each role is located in the main directory of the solution. + +``` + - name: Module to do some CLI Command configurations + hosts: cnos_command + gather_facts: no + connection: network_cli + roles: + - cnos_command +``` + +## License +--- +<add license information below> +Copyright (C) 2017 Lenovo, Inc. + +This file is part of Ansible + +Ansible is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, eithe +r version 3 of the License, or (at your option) any later version. + +Ansible is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PU +RPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with Ansible. If not, see <http://www.gnu.org/licenses/>. diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_command/aliases b/ansible_collections/community/network/tests/integration/targets/cnos_command/aliases new file mode 100644 index 000000000..be010d923 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_command/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_command/cnos_command_sample_hosts b/ansible_collections/community/network/tests/integration/targets/cnos_command/cnos_command_sample_hosts new file mode 100644 index 000000000..05c50f256 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_command/cnos_command_sample_hosts @@ -0,0 +1,14 @@ +# You have to paste this dummy information in /etc/ansible/hosts +# Notes: +# - Comments begin with the '#' character +# - Blank lines are ignored +# - Groups of hosts are delimited by [header] elements +# - You can enter hostnames or ip Addresses +# - A hostname/ip can be a member of multiple groups +# +# In the /etc/ansible/hosts file u have to enter [cnos_command_sample] tag +# Following you should specify IP Addresses details +# Please change <username> and <password> with appropriate value for your switch. + +[cnos_command_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_command/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_command/defaults/main.yaml new file mode 100644 index 000000000..9ef5ba516 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_command/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_command/tasks/cli.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_command/tasks/cli.yaml new file mode 100644 index 000000000..d675462dd --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_command/tasks/cli.yaml @@ -0,0 +1,15 @@ +--- +- name: collect all cli test cases + find: + paths: "{{ role_path }}/tests/cli" + patterns: "{{ testcase }}.yaml" + register: test_cases + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test case + include: "{{ test_case_to_run }}" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_command/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_command/tasks/main.yaml new file mode 100644 index 000000000..fa3dd7fb2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_command/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: cli.yaml, tags: ['cli'] } diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_command/tests/cli/bad_operator.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_command/tests/cli/bad_operator.yaml new file mode 100644 index 000000000..0e885c4c2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_command/tests/cli/bad_operator.yaml @@ -0,0 +1,19 @@ +--- +- debug: msg="START cli/bad_operator.yaml" + +- name: test bad operator + cnos_command: + commands: + - display version + - display interface brief + wait_for: + - result[0] contains 'Description: Foo' + register: result + ignore_errors: yes + +- assert: + that: + - "result.failed == true" + - "result.msg is defined" + +- debug: msg="END cli/bad_operator.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_command/tests/cli/contains.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_command/tests/cli/contains.yaml new file mode 100644 index 000000000..87a4035e7 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_command/tests/cli/contains.yaml @@ -0,0 +1,19 @@ +--- +- debug: msg="START cli/contains.yaml" + +- name: test contains operator + cnos_command: + commands: + - display version + - display process memory + wait_for: + - "result[0] contains 'Lenovo'" + - "result[1] contains 'Mem:'" + register: result + +- assert: + that: + - "result.changed == false" + - "result.stdout is defined" + +- debug: msg="END cli/contains.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_command/tests/cli/invalid.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_command/tests/cli/invalid.yaml new file mode 100644 index 000000000..f4df0c3f2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_command/tests/cli/invalid.yaml @@ -0,0 +1,27 @@ +--- +- debug: msg="START cli/invalid.yaml" + +- name: run invalid command + cnos_command: + commands: ['display foo'] + register: result + ignore_errors: yes + +- assert: + that: + - "result.failed" + +- name: run commands that include invalid command + cnos_command: + commands: + - display version + - display foo + register: result + ignore_errors: yes + +- assert: + that: + - "result.failed" + ignore_errors: true + +- debug: msg="END cli/invalid.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_command/tests/cli/output.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_command/tests/cli/output.yaml new file mode 100644 index 000000000..a9a328507 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_command/tests/cli/output.yaml @@ -0,0 +1,27 @@ +--- +- debug: msg="START cli/output.yaml" + +- name: get output for single command + cnos_command: + commands: ['display version'] + register: result + +- assert: + that: + - "result.changed == false" + - "result.stdout is defined" + +- name: get output for multiple commands + cnos_command: + commands: + - display version + - display interface brief + register: result + +- assert: + that: + - "result.changed == false" + - "result.stdout is defined" + - "result.stdout | length == 2" + +- debug: msg="END cli/output.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_command/tests/cli/timeout.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_command/tests/cli/timeout.yaml new file mode 100644 index 000000000..54781db0e --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_command/tests/cli/timeout.yaml @@ -0,0 +1,18 @@ +--- +- debug: msg="START cli/timeout.yaml" + +- name: test bad condition + cnos_command: + commands: + - display version + wait_for: + - "result[0] contains bad_value_string" + register: result + ignore_errors: yes + +- assert: + that: + - "result.failed == true" + - "result.msg is defined" + +- debug: msg="END cli/timeout.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_conditional_command/README.md b/ansible_collections/community/network/tests/integration/targets/cnos_conditional_command/README.md new file mode 100644 index 000000000..7f8a187f0 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_conditional_command/README.md @@ -0,0 +1,120 @@ +# Ansible Role: cnos_conditional_command_sample - Executing a single CNOS command with respect to conditions specified in the inventory +--- +<add role description below> + +This role is an example of using the *cnos_conditional_command.py* Lenovo module in the context of CNOS switch configuration. This module allows you to modify the running configuration of a switch. It provides a way to execute a single CNOS command on a network device by evaluating the current running configuration and executing the command only if the specific settings have not been already configured. + +The CNOS command is passed as an argument of the method. + +This module functions the same as the *cnos_command.py* module. The only exception is that the following inventory variable can be specified: condition = <flag string> + +When this inventory variable is specified as the variable of a task, the command is executed for the network element that matches the flag string. +Usually, commands are executed across a group of network devices. When there is a requirement to skip the execution of the command on one or more devices, it is recommended to use this module. + +The results of the operation can be viewed in *results* directory. + +For more details, see [Lenovo modules for Ansible: cnos_conditional_command](http://systemx.lenovofiles.com/help/index.jsp?topic=%2Fcom.lenovo.switchmgt.ansible.doc%2Fcnos_conditional_command.html&cp=0_3_1_0_4_9). + + +## Requirements +--- +<add role requirements information below> + +- Ansible version 2.2 or later ([Ansible installation documentation](http://docs.ansible.com/ansible/intro_installation.html)) +- Lenovo switches running CNOS version 10.2.1.0 or later +- an SSH connection to the Lenovo switch (SSH must be enabled on the network device) + + +## Role Variables +--- +<add role variables information below> + +Available variables are listed below, along with description. + +The following are mandatory inventory variables: + +Variable | Description +--- | --- +`ansible_connection` | Has to be `network_cli` +`ansible_network_os` | Has to be `cnos` +`ansible_ssh_user` | Specifies the username used to log into the switch +`ansible_ssh_pass` | Specifies the password used to log into the switch +`enablePassword` | Configures the password used to enter Global Configuration command mode on the switch (this is an optional parameter) +`hostname` | Searches the hosts file at */etc/ansible/hosts* and identifies the IP address of the switch on which the role is going to be applied +`deviceType` | Specifies the type of device from where the configuration will be backed up (**g8272_cnos** - G8272, **g8296_cnos** - G8296, **g8332_cnos** - G8332, **NE10032** - NE10032, **NE1072T** - NE1072T, **NE1032** - NE1032, **NE1032T** - NE1032T, **NE2572** - NE2572, **NE0152T** - NE0152T) +`condition` | If `condition=false` is specified in the inventory file against any device, the command execution is skipped for that device (**true**, **false**) + +The values of the variables used need to be modified to fit the specific scenario in which you are deploying the solution. To change the values of the variables, you need to visits the *vars* directory of each role and edit the *main.yml* file located there. The values stored in this file will be used by Ansible when the template is executed. + +The syntax of *main.yml* file for variables is the following: + +``` +<template variable>:<value> +``` + +You will need to replace the `<value>` field with the value that suits your topology. The `<template variable>` fields are taken from the template and it is recommended that you leave them unchanged. + +Variable | Description +--- | --- +`flag` | If a task needs to be executed, the flag needs to be set the same as it is specified in the inventory for that device +`clicommand` | Specifies the CLI command as an attribute to this method + + + +## Dependencies +--- +<add dependencies information below> + +- username.iptables - Configures the firewall and blocks all ports except those needed for web server and SSH access. +- username.common - Performs common server configuration. +- cnos_conditional_command.py - This modules needs to be present in the *library* directory of the role. +- cnos.py - This module needs to be present in the PYTHONPATH environment variable set in the Ansible system. +- /etc/ansible/hosts - You must edit the */etc/ansible/hosts* file with the device information of the switches designated as leaf switches. You may refer to *cnos_conditional_command_sample_hosts* for a sample configuration. + +Ansible keeps track of all network elements that it manages through a hosts file. Before the execution of a playbook, the hosts file must be set up. + +Open the */etc/ansible/hosts* file with root privileges. Most of the file is commented out by using **#**. You can also comment out the entries you will be adding by using **#**. You need to copy the content of the hosts file for the role into the */etc/ansible/hosts* file. The sample hosts file for the role is located in the main directory. + +``` +[cnos_conditional_command_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos condition=pass +10.241.107.40 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos +``` + +**Note:** You need to change the IP addresses to fit your specific topology. You also need to change the `<username>` and `<password>` to the appropriate values used to log into the specific Lenovo network devices. + + +## Example Playbook +--- +<add playbook samples below> + +To execute an Ansible playbook, use the following command: + +``` +ansible-playbook cnos_conditional_command_sample.yml -vvv +``` + +`-vvv` is an optional verbose command that helps identify what is happening during playbook execution. The playbook for each role is located in the main directory of the solution. + +``` + - name: Module to do some configurations + hosts: cnos_conditional_command_sample + gather_facts: no + connection: local + roles: + - cnos_conditional_command_sample +``` + + +## License +--- +<add license information below> +Copyright (C) 2017 Lenovo, Inc. + +This file is part of Ansible + +Ansible is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +Ansible is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with Ansible. If not, see <http://www.gnu.org/licenses/>. diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_conditional_command/aliases b/ansible_collections/community/network/tests/integration/targets/cnos_conditional_command/aliases new file mode 100644 index 000000000..be010d923 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_conditional_command/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_conditional_command/cnos_conditional_command_sample_hosts b/ansible_collections/community/network/tests/integration/targets/cnos_conditional_command/cnos_conditional_command_sample_hosts new file mode 100644 index 000000000..81da313f0 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_conditional_command/cnos_conditional_command_sample_hosts @@ -0,0 +1,14 @@ +# You have to paste this dummy information in /etc/ansible/hosts +# Notes: +# - Comments begin with the '#' character +# - Blank lines are ignored +# - Groups of hosts are delimited by [header] elements +# - You can enter hostnames or ip Addresses +# - A hostname/ip can be a member of multiple groups +# +# In the /etc/ansible/hosts file u have to enter [cnos_conditional_command_sample] tag +# Following you should specify IP Addresses details +# Please change <username> and <password> with appropriate value for your switch. + +[cnos_conditional_command_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_conditional_command/tasks/main.yml b/ansible_collections/community/network/tests/integration/targets/cnos_conditional_command/tasks/main.yml new file mode 100644 index 000000000..17837c277 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_conditional_command/tasks/main.yml @@ -0,0 +1,12 @@ +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +# This contain sample command execution tasks +--- + +- name: Run a command + cnos_conditional_command: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} condition={{ hostvars[inventory_hostname]['condition'] }} flag='{{item.flag}}' clicommand='{{item.clicommand}}' outputfile=./results/cnos_conditional_command_{{ inventory_hostname }}_output.txt + with_items: "{{conditional_command_data1}}" +# Completed file diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_conditional_command/vars/main.yml b/ansible_collections/community/network/tests/integration/targets/cnos_conditional_command/vars/main.yml new file mode 100644 index 000000000..588ae0117 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_conditional_command/vars/main.yml @@ -0,0 +1,3 @@ +--- +conditional_command_data1: + - {flag: "pass", clicommand: "display users"} diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_conditional_template/README.md b/ansible_collections/community/network/tests/integration/targets/cnos_conditional_template/README.md new file mode 100644 index 000000000..51dabf861 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_conditional_template/README.md @@ -0,0 +1,120 @@ +# Ansible Role: cnos_conditional_template_sample - Manages switch configuration using templates with respect to conditions specified in the inventory +--- +<add role description below> + +This role is an example of using the *cnos_conditional_template.py* Lenovo module in the context of CNOS switch configuration. This module allows you to work with the running configuration of a switch. It provides a way to execute a set of CNOS commands on a switch by evaluating the current running configuration and executing the commands only if the specific settings have not been already configured. + +The configuration source can be a set of commands or a template written in the Jinja2 templating language. + +This module functions the same as the *cnos_template.py* module. The only exception is that the following inventory variable can be specified: condition = <flag string> + +When this inventory variable is specified as the variable of a task, the template is executed for the network element that matches the flag string. + +Usually, templates are used when commands are the same across a group of network devices. When there is a requirement to skip the execution of the template on one or more devices, it is recommended to use this module. + +The results of the operation can be viewed in *results* directory. + +For more details, see [Lenovo modules for Ansible: cnos_conditional_template](http://systemx.lenovofiles.com/help/index.jsp?topic=%2Fcom.lenovo.switchmgt.ansible.doc%2Fcnos_conditional_template.html&cp=0_3_1_0_4_11). + + +## Requirements +--- +<add role requirements information below> + +- Ansible version 2.2 or later ([Ansible installation documentation](http://docs.ansible.com/ansible/intro_installation.html)) +- Lenovo switches running CNOS version 10.2.1.0 or later +- an SSH connection to the Lenovo switch (SSH must be enabled on the network device) + + +## Role Variables +--- +<add role variables information below> + +Available variables are listed below, along with description. + +The following are mandatory inventory variables: + +Variable | Description +--- | --- +`ansible_connection` | Has to be `network_cli` +`ansible_network_os` | Has to be `cnos` +`ansible_ssh_user` | Specifies the username used to log into the switch +`ansible_ssh_pass` | Specifies the password used to log into the switch +`enablePassword` | Configures the password used to enter Global Configuration command mode on the switch (this is an optional parameter) +`hostname` | Searches the hosts file at */etc/ansible/hosts* and identifies the IP address of the switch on which the role is going to be applied +`deviceType` | Specifies the type of device from where the configuration will be backed up (**g8272_cnos** - G8272, **g8296_cnos** - G8296, **g8332_cnos** - G8332, **NE10032** - NE10032, **NE1072T** - NE1072T, **NE1032** - NE1032, **NE1032T** - NE1032T, **NE2572** - NE2572, **NE0152T** - NE0152T) +`condition` | If `condition=<flag string>` is specified in the inventory file against any device, the template execution is done for that device in case it matches the flag setting for that task + +The values of the variables used need to be modified to fit the specific scenario in which you are deploying the solution. To change the values of the variables, you need to visits the *vars* directory of each role and edit the *main.yml* file located there. The values stored in this file will be used by Ansible when the template is executed. + +The syntax of *main.yml* file for variables is the following: + +``` +<template variable>:<value> +``` + +You will need to replace the `<value>` field with the value that suits your topology. The `<template variable>` fields are taken from the template and it is recommended that you leave them unchanged. + +Variable | Description +--- | --- +`flag` | If a task needs to be executed, you have to set the flag the same as it is specified in the inventory for that device +`commandfile` | Specifies the path to the CNOS command file which needs to be applied + + +## Dependencies +--- +<add dependencies information below> + +- username.iptables - Configures the firewall and blocks all ports except those needed for web server and SSH access. +- username.common - Performs common server configuration. +- cnos_conditional_template.py - This modules needs to be present in the *library* directory of the role. +- cnos.py - This module needs to be present in the PYTHONPATH environment variable set in the Ansible system. +- /etc/ansible/hosts - You must edit the */etc/ansible/hosts* file with the device information of the switches designated as leaf switches. You may refer to *cnos_conditional_template_sample_hosts* for a sample configuration. + +Ansible keeps track of all network elements that it manages through a hosts file. Before the execution of a playbook, the hosts file must be set up. + +Open the */etc/ansible/hosts* file with root privileges. Most of the file is commented out by using **#**. You can also comment out the entries you will be adding by using **#**. You need to copy the content of the hosts file for the role into the */etc/ansible/hosts* file. The sample hosts file for the role is located in the main directory. + +``` +[cnos_conditional_template_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos condition=pass +10.241.107.40 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos +``` + +**Note:** You need to change the IP addresses to fit your specific topology. You also need to change the `<username>` and `<password>` to the appropriate values used to log into the specific Lenovo network devices. + + +## Example Playbook +--- +<add playbook samples below> + +To execute an Ansible playbook, use the following command: + +``` +ansible-playbook cnos_conditional_template_sample.yml -vvv +``` + +`-vvv` is an optional verbose command that helps identify what is happening during playbook execution. The playbook for each role is located in the main directory of the solution. + +``` + - name: Module to do some template configurations + hosts: cnos_conditional_template_sample + gather_facts: no + connection: local + roles: + - cnos_conditional_template_sample +``` + + +## License +--- +<add license information below> +Copyright (C) 2017 Lenovo, Inc. + +This file is part of Ansible + +Ansible is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +Ansible is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with Ansible. If not, see <http://www.gnu.org/licenses/>. diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_conditional_template/aliases b/ansible_collections/community/network/tests/integration/targets/cnos_conditional_template/aliases new file mode 100644 index 000000000..be010d923 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_conditional_template/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_conditional_template/cnos_conditional_template_sample_hosts b/ansible_collections/community/network/tests/integration/targets/cnos_conditional_template/cnos_conditional_template_sample_hosts new file mode 100644 index 000000000..006237892 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_conditional_template/cnos_conditional_template_sample_hosts @@ -0,0 +1,14 @@ +# You have to paste this dummy information in /etc/ansible/hosts +# Notes: +# - Comments begin with the '#' character +# - Blank lines are ignored +# - Groups of hosts are delimited by [header] elements +# - You can enter hostnames or ip Addresses +# - A hostname/ip can be a member of multiple groups +# +# In the /etc/ansible/hosts file u have to enter [cnos_conditional_template_sample] tag +# Following you should specify IP Addresses details +# Please change <username> and <password> with appropriate value for your switch. + +[cnos_conditional_template_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_conditional_template/tasks/main.yml b/ansible_collections/community/network/tests/integration/targets/cnos_conditional_template/tasks/main.yml new file mode 100644 index 000000000..0aff639d7 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_conditional_template/tasks/main.yml @@ -0,0 +1,16 @@ +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +# This contain sample conditional template execution tasks +--- +- name: Replace Config CLI command template with values + template: src=demo_template.j2 dest=./commands/cnos_conditional_template_{{ inventory_hostname }}_command.txt + with_items: "{{conditional_template_data1}}" + +- name: Applying CLI commands on Switches + cnos_conditional_template: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} + condition={{ hostvars[inventory_hostname]['condition'] }} flag='{{item.flag}}' commandfile=./commands/cnos_conditional_template_{{ inventory_hostname }}_command.txt outputfile=./results/cnos_conditional_template_{{ inventory_hostname }}_output.txt + with_items: "{{conditional_template_data1}}" +# Completed file diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_conditional_template/templates/demo_template.j2 b/ansible_collections/community/network/tests/integration/targets/cnos_conditional_template/templates/demo_template.j2 new file mode 100644 index 000000000..63a47a641 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_conditional_template/templates/demo_template.j2 @@ -0,0 +1,13 @@ +#Demo Template +vlan {{item.vlanid1}} +name anil +exit +interface ethernet {{item.slot_chassis_number1}} +description anil +mtu 600 +exit +interface port-channel {{item.portchannel_interface_number1}} +shut +lacp suspend-individual +no shut +exit diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_conditional_template/vars/main.yml b/ansible_collections/community/network/tests/integration/targets/cnos_conditional_template/vars/main.yml new file mode 100644 index 000000000..b2795dc79 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_conditional_template/vars/main.yml @@ -0,0 +1,3 @@ +--- +conditional_template_data1: + - {flag: "pass", vlanid1: 13, slot_chassis_number1: "1/2", portchannel_interface_number1: 100, portchannel_mode1: "active"} diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_config/README.md b/ansible_collections/community/network/tests/integration/targets/cnos_config/README.md new file mode 100644 index 000000000..2c971737d --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_config/README.md @@ -0,0 +1,110 @@ +# Ansible Role: cnos_config - Executes any Configuration command on switch and results are displayed. +--- +<add role description below> + + Lenovo CNOS configurations use a simple block indent file syntax + for segmenting configuration into sections. This module provides + an implementation for working with CNOS configuration sections in + a deterministic way. + +## Requirements +--- +<add role requirements information below> + +- Ansible version 2.6 or later ([Ansible installation documentation](http://docs.ansible.com/ansible/intro_installation.html)) +- Lenovo switches running CNOS version 10.2.1.0 or later +- an SSH connection to the Lenovo switch (SSH must be enabled on the network device) + + +## Role Variables +--- +<add role variables information below> +Available variables are listed below, along with description. + +The following are mandatory inventory variables: + +Variable | Description +--- | --- +`ansible_connection` | Has to be `network_cli` +`ansible_network_os` | Has to be `cnos` +`ansible_ssh_user` | Specifies the username used to log into the switch +`ansible_ssh_pass` | Specifies the password used to log into the switch + +These are the various options the customer have in executing the cnos_config modules: + +Variable | Description +--- | --- +`lines` | The ordered set of commands that should be configured in the section. The commands must be the exact same commands as found in the device running-config. Be sure to note the configuration command syntax as some commands are automatically modified by the device config parser. +`parents` | The ordered set of parents that uniquely identify the section the commands should be checked against. If the parents argument is omitted, the commands are checked against the set of top level or global commands. +`src` | Specifies the source path to the file that contains the configuration or configuration template to load. The path to the source file can either be the full path on the Ansible control host or a relative path from the playbook or role root directory. This argument is mutually exclusive with I(lines), I(parents). +`before` | The ordered set of commands to push on to the command stack if a change needs to be made. This allows the playbook designer the opportunity to perform configuration commands prior to pushing any changes without affecting how the set of commands are matched against the system. +`after` | The ordered set of commands to append to the end of the command stack if a change needs to be made. Just like with I(before) this allows the playbook designer to append a set of commands to be executed after the command set. +`replace` | Instructs the module on the way to perform the configuration on the device. If the replace argument is set to I(line) then the modified lines are pushed to the device in configuration mode. If the replace argument is set to I(block) then the entire command block is pushed to the device in configuration mode if any line is not correct. +`config` | The module, by default, will connect to the remote device and retrieve the current running-config to use as a base for comparing against the contents of source. There are times when it is not desirable to have the task get the current running-config for every task in a playbook. The I(config) argument allows the implementer to pass in the configuration to use as the base config for comparison. +`backup` | This argument will cause the module to create a full backup of the current C(running-config) from the remote device before any changes are made. The backup file is written to the C(backup) folder in the playbook root directory. If the directory does not exist, it is created. +`match` |Instructs the module on the way to perform the matching of the set of commands against the current device config. If match is set to I(line), commands are matched line by line. If match is set to I(strict), command lines are matched with respect to position. If match is set to I(exact), command lines must be an equal match. Finally, if match is set to I(none), the module will not attempt to compare the source configuration with the running configuration on the remote device. +`comment` | Allows a commit description to be specified to be included when the configuration is committed. If the configuration is not changed or committed, this argument is ignored. +`admin` | Enters into administration configuration mode for making config changes to the device. + + +## Dependencies +--- +<add dependencies information below> + +- username.iptables - Configures the firewall and blocks all ports except those needed for web server and SSH access. +- username.common - Performs common server configuration. +- cnos_config.py - This module file will be located at lib/ansible/modules/network/cnos/ of Ansible installation. +- cnos.py - This module util file will be located at lib/ansible/module_utils/network/cnos of Ansible installation. +- cnos.py - This module plugin file will be located at lib/ansible/plugins/action of Ansible installation. +- cnos_config.py - This module plugin file will be located at lib/ansible/plugins/action of Ansible installation. +- cnos.py - This module plugin file will be located at lib/ansible/plugins/cliconf of Ansible installation. +- cnos.py - This module plugin file will be located at lib/ansible/plugins/cliconf of Ansible installation. +- /etc/ansible/hosts - You must edit the */etc/ansible/hosts* file with the device information of the switches designated as leaf switches. You may refer to *cnos_command_sample_hosts* for a sample configuration. + +Ansible keeps track of all network elements that it manages through a hosts file. Before the execution of a playbook, the hosts file must be set up. + +Open the */etc/ansible/hosts* file with root privileges. Most of the file is commented out by using **#**. You can also comment out the entries you will be adding by using **#**. You need to copy the content of the hosts file for the role into the */etc/ansible/hosts* file. The sample hosts file for the role is located in the main directory. + +``` +[cnos_config] +10.241.105.24 ansible_connection=network_cli ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> +``` + +**Note:** You need to change the IP addresses to fit your specific topology. You also need to change the `<username>` and `<password>` to the appropriate values used to log into the specific Lenovo network devices. + + +## Example Playbook +--- +<add playbook samples below> + +To execute an Ansible playbook, use the following command: + +``` +ansible-playbook cnos_config_sample.yml -vvv +``` + +`-vvv` is an optional verbose command that helps identify what is happening during playbook execution. The playbook for each role is located in the main directory of the solution. + +``` + - name: Module to do some CLI Command configurations + hosts: cnos_config + gather_facts: no + connection: network_cli + roles: + - cnos_config +``` + +## License +--- +<add license information below> +Copyright (C) 2017 Lenovo, Inc. + +This file is part of Ansible + +Ansible is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, eithe +r version 3 of the License, or (at your option) any later version. + +Ansible is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PU +RPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with Ansible. If not, see <http://www.gnu.org/licenses/>. diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_config/aliases b/ansible_collections/community/network/tests/integration/targets/cnos_config/aliases new file mode 100644 index 000000000..be010d923 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_config/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_config/cnos_config_sample_hosts b/ansible_collections/community/network/tests/integration/targets/cnos_config/cnos_config_sample_hosts new file mode 100644 index 000000000..aa860b3cf --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_config/cnos_config_sample_hosts @@ -0,0 +1,14 @@ +# You have to paste this dummy information in /etc/ansible/hosts +# Notes: +# - Comments begin with the '#' character +# - Blank lines are ignored +# - Groups of hosts are delimited by [header] elements +# - You can enter hostnames or ip Addresses +# - A hostname/ip can be a member of multiple groups +# +# In the /etc/ansible/hosts file u have to enter [cnos_config_sample] tag +# Following you should specify IP Addresses details +# Please change <username> and <password> with appropriate value for your switch. + +[cnos_config_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_config/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_config/defaults/main.yaml new file mode 100644 index 000000000..9ef5ba516 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_config/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_config/tasks/cli.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_config/tasks/cli.yaml new file mode 100644 index 000000000..d675462dd --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_config/tasks/cli.yaml @@ -0,0 +1,15 @@ +--- +- name: collect all cli test cases + find: + paths: "{{ role_path }}/tests/cli" + patterns: "{{ testcase }}.yaml" + register: test_cases + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test case + include: "{{ test_case_to_run }}" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_config/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_config/tasks/main.yaml new file mode 100644 index 000000000..fa3dd7fb2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_config/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: cli.yaml, tags: ['cli'] } diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_config/templates/basic/config.j2 b/ansible_collections/community/network/tests/integration/targets/cnos_config/templates/basic/config.j2 new file mode 100644 index 000000000..13ae81001 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_config/templates/basic/config.j2 @@ -0,0 +1,4 @@ +vlan 13 + name anil + flood ipv4 + state active diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_config/templates/basic/config1.j2 b/ansible_collections/community/network/tests/integration/targets/cnos_config/templates/basic/config1.j2 new file mode 100644 index 000000000..e6c4c4fe6 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_config/templates/basic/config1.j2 @@ -0,0 +1,4 @@ +vlan 33 + name sunil + flood ipv4 + state active diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_config/templates/defaults/config.j2 b/ansible_collections/community/network/tests/integration/targets/cnos_config/templates/defaults/config.j2 new file mode 100644 index 000000000..d4c04bb3e --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_config/templates/defaults/config.j2 @@ -0,0 +1,2 @@ +vlan 13 + name anil diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_config/tests/cli/backup.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_config/tests/cli/backup.yaml new file mode 100644 index 000000000..2f1673b69 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_config/tests/cli/backup.yaml @@ -0,0 +1,49 @@ +--- +- debug: msg="START cli/backup.yaml" + +- name: setup + cnos_config: + commands: + - no vlan 13 + ignore_errors: yes + +- name: collect any backup files + find: + paths: "{{ role_path }}/backup" + pattern: "{{ inventory_hostname_short }}_config*" + register: backup_files + delegate_to: localhost + +- name: delete backup files + file: + path: "{{ item.path }}" + state: absent + with_items: "{{backup_files.files|default([])}}" + +- name: configure device with config + cnos_config: + src: roles/cnos_config/templates/basic/config.j2 + backup: yes + register: result + +- assert: + that: + - "result.changed == true" + +- name: collect any backup files + find: + paths: "{{ role_path }}/backup" + pattern: "{{ inventory_hostname_short }}_config*" + register: backup_files + delegate_to: localhost + +- assert: + that: + - "backup_files.files is defined" + +- name: teardown + cnos_config: + commands: + - no vlan 13 + +- debug: msg="END cli/backup.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_config/tests/cli/basic.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_config/tests/cli/basic.yaml new file mode 100644 index 000000000..21a4d2c35 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_config/tests/cli/basic.yaml @@ -0,0 +1,35 @@ +--- +- debug: msg="START cli/basic.yaml" + +- name: setup + cnos_config: + commands: + - no vlan 13\n + ignore_errors: yes + +- name: configure device with config + cnos_config: + src: roles/cnos_config/templates/basic/config.j2 + register: result + +- assert: + that: + - "result.changed == true" + - "result.updates is not defined" + +- name: check device with config + cnos_config: + src: roles/cnos_config/templates/basic/config.j2 + register: result + +- assert: + that: + - "result.changed == true" + - "result.updates is not defined" + +- name: teardown + cnos_config: + commands: + - no vlan 13\n + +- debug: msg="END cli/basic.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_config/tests/cli/defaults.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_config/tests/cli/defaults.yaml new file mode 100644 index 000000000..7660d53e5 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_config/tests/cli/defaults.yaml @@ -0,0 +1,36 @@ +- debug: msg="START cli/defaults.yaml" +- name: setup + cnos_config: + commands: + - no vlan 13\n + ignore_errors: true + become: true + become_method: ansible.netcommon.enable +- name: configure device with defaults included + cnos_config: + src: roles/cnos_config/templates/defaults/config.j2 + register: result + become: true + become_method: ansible.netcommon.enable +- debug: var=result +- assert: + that: + - result.changed == false + - result.updates is not defined +- name: check device with defaults included Hell + cnos_config: + src: roles/cnos_config/templates/defaults/config.j2 + register: result +- debug: var=result +- assert: + that: + - result.changed == false + - result.updates is not defined +- name: teardown + cnos_config: + commands: + - no vlan 13\n + become: true + become_method: ansible.netcommon.enable + ignore_errors: true +- debug: msg="END cli/defaults.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_facts/README.md b/ansible_collections/community/network/tests/integration/targets/cnos_facts/README.md new file mode 100644 index 000000000..3f8f51688 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_facts/README.md @@ -0,0 +1,112 @@ +# Ansible Role: cnos_facts - Displays switch information +--- +<add role description below> + + Collects a base set of device facts from a remote Lenovo device + running on CNOS. This module prepends all of the + base network fact keys with C(ansible_net_<fact>). The facts + module will always collect a base set of facts from the device + and can enable or disable collection of additional facts. + +## Requirements +--- +<add role requirements information below> + +- Ansible version 2.6 or later ([Ansible installation documentation](http://docs.ansible.com/ansible/intro_installation.html)) +- Lenovo switches running CNOS version 10.2.1.0 or later +- an SSH connection to the Lenovo switch (SSH must be enabled on the network device) + + +## Role Variables +--- +<add role variables information below> +Available variables are listed below, along with description. + +The following are mandatory inventory variables: + +Variable | Description +--- | --- +`ansible_connection` | Has to be `network_cli` +`ansible_network_os` | Has to be `cnos` +`ansible_ssh_user` | Specifies the username used to log into the switch +`ansible_ssh_pass` | Specifies the password used to log into the switch + +To gather subsets you will specify the following variables to get appropriate +data retrieved from the devices + +Variable | Description +--- | --- +`gather_subset` | When supplied, this argument will restrict the facts collected to a given subset. Possible values for this argument include all, hardware, config, and interfaces. Can specify a list of values to include a larger subset. Values can also be used with an initial C(M(!)) to specify that a specific subset should not be collected. + +Need to specify these variables in vars/main.yml under variable `cli` + +Variable | Description +--- | --- +`host` | Has to be "{{ inventory_hostname }}" +`port` | Has to be`22` +`username` | User Name of switch +`password` | Password of switch +`timeout` | time out value for CLI +`authorize` | Whether u have to enter enable mode for data collection. +`auth_pass`| Enable Password if required + + + +## Dependencies +--- +<add dependencies information below> + +- username.iptables - Configures the firewall and blocks all ports except those needed for web server and SSH access. +- username.common - Performs common server configuration. +- cnos_facts.py - This module file will be located at lib/ansible/modules/network/cnos/ of Ansible installation. +- cnos.py - This module util file will be located at lib/ansible/module_utils/network/cnos of Ansible installation. +- cnos.py - This module plugin file will be located at lib/ansible/plugins/action of Ansible installation. +- cnos.py - This module plugin file will be located at lib/ansible/plugins/cliconf of Ansible installation. +- cnos.py - This module plugin file will be located at lib/ansible/plugins/cliconf of Ansible installation. +- /etc/ansible/hosts - You must edit the */etc/ansible/hosts* file with the device information of the switches designated as leaf switches. You may refer to *cnos_command_sample_hosts* for a sample configuration. + +Ansible keeps track of all network elements that it manages through a hosts file. Before the execution of a playbook, the hosts file must be set up. + +Open the */etc/ansible/hosts* file with root privileges. Most of the file is commented out by using **#**. You can also comment out the entries you will be adding by using **#**. You need to copy the content of the hosts file for the role into the */etc/ansible/hosts* file. The sample hosts file for the role is located in the main directory. + +``` +[cnos_facts] +10.241.105.24 ansible_connection=network_cli ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> +``` + +**Note:** You need to change the IP addresses to fit your specific topology. You also need to change the `<username>` and `<password>` to the appropriate values used to log into the specific Lenovo network devices. + + +## Example Playbook +--- +<add playbook samples below> + +To execute an Ansible playbook, use the following command: + +``` +ansible-playbook cnos_facts_sample.yml -vvv +``` + +`-vvv` is an optional verbose command that helps identify what is happening during playbook execution. The playbook for each role is located in the main directory of the solution. + +``` + - name: Module to do some CLI Command configurations + hosts: cnos_facts + gather_facts: no + connection: network_cli + roles: + - cnos_facts +``` + +## License +--- +<add license information below> +Copyright (C) 2017 Lenovo, Inc. + +This file is part of Ansible + +Ansible is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +Ansible is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with Ansible. If not, see <http://www.gnu.org/licenses/>. diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_facts/aliases b/ansible_collections/community/network/tests/integration/targets/cnos_facts/aliases new file mode 100644 index 000000000..be010d923 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_facts/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_facts/cnos_facts_sample_hosts b/ansible_collections/community/network/tests/integration/targets/cnos_facts/cnos_facts_sample_hosts new file mode 100644 index 000000000..a1356ed7c --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_facts/cnos_facts_sample_hosts @@ -0,0 +1,14 @@ +# You have to paste this dummy information in /etc/ansible/hosts +# Notes: +# - Comments begin with the '#' character +# - Blank lines are ignored +# - Groups of hosts are delimited by [header] elements +# - You can enter hostnames or ip Addresses +# - A hostname/ip can be a member of multiple groups +# +# In the /etc/ansible/hosts file u have to enter [cnos_facts_sample] tag +# Following you should specify IP Addresses details +# Please change <username> and <password> with appropriate value for your switch. + +[cnos_facts_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_facts/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_facts/defaults/main.yaml new file mode 100644 index 000000000..9ef5ba516 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_facts/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_facts/tasks/cli.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_facts/tasks/cli.yaml new file mode 100644 index 000000000..d675462dd --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_facts/tasks/cli.yaml @@ -0,0 +1,15 @@ +--- +- name: collect all cli test cases + find: + paths: "{{ role_path }}/tests/cli" + patterns: "{{ testcase }}.yaml" + register: test_cases + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test case + include: "{{ test_case_to_run }}" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_facts/tasks/main.yml b/ansible_collections/community/network/tests/integration/targets/cnos_facts/tasks/main.yml new file mode 100644 index 000000000..fa3dd7fb2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_facts/tasks/main.yml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: cli.yaml, tags: ['cli'] } diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_facts/tests/cli/all_facts.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_facts/tests/cli/all_facts.yaml new file mode 100644 index 000000000..4deed11fe --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_facts/tests/cli/all_facts.yaml @@ -0,0 +1,27 @@ +--- +- debug: msg="START cli/all_facts.yaml" + +- name: test getting all facts + cnos_facts: + gather_subset: + - all + register: result + +- assert: + that: + # _facts modules should never report a change + - "result.changed == false" + + # Correct subsets are present + - "'config' in result.ansible_facts.ansible_net_gather_subset" + - "'hardware' in result.ansible_facts.ansible_net_gather_subset" + - "'default' in result.ansible_facts.ansible_net_gather_subset" + - "'interfaces' in result.ansible_facts.ansible_net_gather_subset" + + # Items from those subsets are present + #- "result.ansible_facts.ansible_net_filesystems is defined" + # Check that these facts not only are present, but are valid (positive integers) + - "result.ansible_facts.ansible_net_memfree_mb > 1" + - "result.ansible_facts.ansible_net_memtotal_mb > 1" + +- debug: msg="END cli/all_facts.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_facts/tests/cli/default_facts.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_facts/tests/cli/default_facts.yaml new file mode 100644 index 000000000..2b050f1b9 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_facts/tests/cli/default_facts.yaml @@ -0,0 +1,25 @@ +--- +- debug: msg="START cli/default_facts.yaml" + + +- name: test getting default facts + cnos_facts: + register: result + +- assert: + that: + # _facts modules should never report a change + - "result.changed == false" + + # Correct subsets are present + - "'hardware' in result.ansible_facts.ansible_net_gather_subset" + - "'default' in result.ansible_facts.ansible_net_gather_subset" + - "'interfaces' in result.ansible_facts.ansible_net_gather_subset" + - "'config' not in result.ansible_facts.ansible_net_gather_subset" + + # Items from those subsets are present + - "result.ansible_facts.ansible_net_memtotal_mb > 10" #hw + - "result.ansible_facts.ansible_net_interfaces | length > 1" # more than one interface returned + - "result.ansible_facts.ansible_net_config is not defined" # config + +- debug: msg="END cli/default.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_facts/tests/cli/invalid_subset.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_facts/tests/cli/invalid_subset.yaml new file mode 100644 index 000000000..c583f84b5 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_facts/tests/cli/invalid_subset.yaml @@ -0,0 +1,39 @@ +--- +- debug: msg="START cli/invalid_subset.yaml" + +- name: test invalid subset (foobar) + cnos_facts: + gather_subset: + - "foobar" + register: result + ignore_errors: true + +- assert: + that: + # Failures shouldn't return changes + - "result.changed == false" + # It's a failure + - "result.failed == true" + # Sensible Failure message + - "result.msg == 'Bad subset'" + +- name: test subset specified multiple times + cnos_facts: + gather_subset: + - "!hardware" + - "hardware" + authorize: yes + register: result + ignore_errors: true + +- assert: + that: + # Failures shouldn't return changes + - "result.changed == false" + # It's a failure + - "result.failed == true" + # Sensible Failure message + - "result.msg == 'Bad subset'" + ignore_errors: true + +- debug: msg="END cli/invalid_subset.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_facts/tests/cli/not_hardware.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_facts/tests/cli/not_hardware.yaml new file mode 100644 index 000000000..4f019e40d --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_facts/tests/cli/not_hardware.yaml @@ -0,0 +1,28 @@ +--- +- debug: msg="START cli/not_hardware_facts.yaml" + +- name: test not hardware + cnos_facts: + gather_subset: + - "!hardware" + register: result + +- assert: + that: + # _facts modules should never report a change + - "result.changed == false" + + # Correct subsets are present + - "'config' in result.ansible_facts.ansible_net_gather_subset" + + - "'default' in result.ansible_facts.ansible_net_gather_subset" + - "'interfaces' in result.ansible_facts.ansible_net_gather_subset" + # ... and not present + - "'hardware' not in result.ansible_facts.ansible_net_gather_subset" + + # Items from those subsets are present + - "result.ansible_facts.ansible_net_interfaces | length > 1" # more than one interface returned + # ... and not present + - "result.ansible_facts.ansible_net_filesystems is not defined" + +- debug: msg="END cli/not_hardware_facts.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_image/README.md b/ansible_collections/community/network/tests/integration/targets/cnos_image/README.md new file mode 100644 index 000000000..7a9ec1d9c --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_image/README.md @@ -0,0 +1,119 @@ +# Ansible Role: cnos_image_sample - Switch firmware download from a remote server +--- +<add role description below> + +This role is an example of using the *cnos_image.py* Lenovo module in the context of CNOS switch configuration. This module allows you to work with switch firmware images. It provides a way to download a firmware image to a network device from a remote server using FTP, SFTP, TFTP, or SCP. + +The first step is to create a directory from where the remote server can be reached. The next step is to provide the full file path of the image location. Authentication details required by the remote server must be provided as well. + +By default, this method makes the newly downloaded firmware image the active image, which will be used by the switch during the next restart. + +The results of the operation can be viewed in *results* directory. + +For more details, see [Lenovo modules for Ansible: cnos_image](http://systemx.lenovofiles.com/help/index.jsp?topic=%2Fcom.lenovo.switchmgt.ansible.doc%2Fcnos_image.html&cp=0_3_1_0_4_2). + + +## Requirements +--- +<add role requirements information below> + +- Ansible version 2.2 or later ([Ansible installation documentation](http://docs.ansible.com/ansible/intro_installation.html)) +- Lenovo switches running CNOS version 10.2.1.0 or later +- an SSH connection to the Lenovo switch (SSH must be enabled on the network device) + + +## Role Variables +--- +<add role variables information below> + +Available variables are listed below, along with description. + +The following are mandatory inventory variables: + +Variable | Description +--- | --- +`ansible_connection` | Has to be `network_cli` +`ansible_network_os` | Has to be `cnos` +`ansible_ssh_user` | Specifies the username used to log into the switch +`ansible_ssh_pass` | Specifies the password used to log into the switch +`enablePassword` | Configures the password used to enter Global Configuration command mode on the switch (this is an optional parameter) +`hostname` | Searches the hosts file at */etc/ansible/hosts* and identifies the IP address of the switch on which the role is going to be applied +`deviceType` | Specifies the type of device from where the configuration will be backed up (**g8272_cnos** - G8272, **g8296_cnos** - G8296, **g8332_cnos** - G8332, **NE10032** - NE10032, **NE1072T** - NE1072T, **NE1032** - NE1032, **NE1032T** - NE1032T, **NE2572** - NE2572, **NE0152T** - NE0152T) + +The values of the variables used need to be modified to fit the specific scenario in which you are deploying the solution. To change the values of the variables, you need to visits the *vars* directory of each role and edit the *main.yml* file located there. The values stored in this file will be used by Ansible when the template is executed. + +The syntax of *main.yml* file for variables is the following: + +``` +<template variable>:<value> +``` + +You will need to replace the `<value>` field with the value that suits your topology. The `<template variable>` fields are taken from the template and it is recommended that you leave them unchanged. + +Variable | Description +--- | --- +`imgType` | Specifies the firmware image type to be downloaded (**all** - both Uboot and OS images, **boot** - only the Uboot image, **os** - only the OS image, **onie** - ONIE image) +`protocol` | Specifies the protocol used by the network device to interact with the remote server from where to download the firmware image (**ftp** - FTP, **sftp** - SFTP, **tftp** - TFTP, **scp** - SCP) +`serverip` | Specifies the IP Address of the remote server from where the software image will be downloaded +`imgpath` | Specifies the full file path of the image located on the remote server (in case the relative path is used as the variable value, the root folder for the user of the server needs to be specified) +`serverusername` | Configures the username for the server relating to the protocol used +`serverpassword` | Configures the password for the server relating to the protocol used + + +## Dependencies +--- +<add dependencies information below> + +- username.iptables - Configures the firewall and blocks all ports except those needed for web server and SSH access. +- username.common - Performs common server configuration. +- cnos_image.py - This modules needs to be present in the *library* directory of the role. +- cnos.py - This module needs to be present in the PYTHONPATH environment variable set in the Ansible system. +- /etc/ansible/hosts - You must edit the */etc/ansible/hosts* file with the device information of the switches designated as leaf switches. You may refer to *cnos_image_sample_hosts* for a sample configuration. + +Ansible keeps track of all network elements that it manages through a hosts file. Before the execution of a playbook, the hosts file must be set up. + +Open the */etc/ansible/hosts* file with root privileges. Most of the file is commented out by using **#**. You can also comment out the entries you will be adding by using **#**. You need to copy the content of the hosts file for the role into the */etc/ansible/hosts* file. The sample hosts file for the role is located in the main directory. + +``` +[cnos_image_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos +10.241.107.40 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos +``` + +**Note:** You need to change the IP addresses to fit your specific topology. You also need to change the `<username>` and `<password>` to the appropriate values used to log into the specific Lenovo network devices. + + +## Example Playbook +--- +<add playbook samples below> + +To execute an Ansible playbook, use the following command: + +``` +ansible-playbook cnos_image_sample.yml -vvv +``` + +`-vvv` is an optional verbose command that helps identify what is happening during playbook execution. The playbook for each role is located in the main directory of the solution. + +``` + - name: Module to do image download + hosts: cnos_image_sample + gather_facts: no + connection: local + roles: + - cnos_image_sample +``` + + +## License +--- +<add license information below> +Copyright (C) 2017 Lenovo, Inc. + +This file is part of Ansible + +Ansible is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +Ansible is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with Ansible. If not, see <http://www.gnu.org/licenses/>.
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_image/aliases b/ansible_collections/community/network/tests/integration/targets/cnos_image/aliases new file mode 100644 index 000000000..be010d923 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_image/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_image/cnos_image_sample_hosts b/ansible_collections/community/network/tests/integration/targets/cnos_image/cnos_image_sample_hosts new file mode 100644 index 000000000..a36bb74c6 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_image/cnos_image_sample_hosts @@ -0,0 +1,17 @@ +# You have to paste this dummy information in /etc/ansible/hosts +# Notes: +# - Comments begin with the '#' character +# - Blank lines are ignored +# - Groups of hosts are delimited by [header] elements +# - You can enter hostnames or ip Addresses +# - A hostname/ip can be a member of multiple groups +# +# In the /etc/ansible/hosts file u have to enter [cnos_image_sample] tag +# Following you should specify IP Addresses details +# Please change <username> and <password> with appropriate value for your switch. + +[cnos_image_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos imgpath=/root/cnos_images/G8272-10.1.0.112.img + +#Use this in case its TFTP as tftpboot is the starting point for tftp +#10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos imgpath="/anil/G8272-10.2.0.34.img diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_image/tasks/main.yml b/ansible_collections/community/network/tests/integration/targets/cnos_image/tasks/main.yml new file mode 100644 index 000000000..7b9eafc53 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_image/tasks/main.yml @@ -0,0 +1,21 @@ +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +# This contain sample Image download tasks +--- + +- name: Test Image transfer + cnos_image: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_image_{{ inventory_hostname }}_output.txt protocol='{{item.protocol}}' serverip='{{item.serverip}}' imgpath={{ hostvars[inventory_hostname]['imgpath']}} imgtype='{{item.imgtype}}' serverusername='{{item.serverusername}}' serverpassword='{{item.serverpassword}}' + with_items: "{{test_image_data1}}" + +#Root folder will be different for SFTP/SCP and TFTP +#The following task is commented. +#Before trying this, please change in /etc/ansible/hosts file +#and place an image with reference to your tftp-root folder +#- name: Test Image tftp +# cnos_image: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_image_{{ inventory_hostname }}_output.txt protocol='{{item.protocol}}' serverip='{{item.serverip}}' imgpath={{ hostvars[inventory_hostname]['imgpath']}} imgtype='{{item.imgtype}}' +# with_items: "{{test_image_data2}}" + +# Completed file diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_image/vars/main.yml b/ansible_collections/community/network/tests/integration/targets/cnos_image/vars/main.yml new file mode 100644 index 000000000..1b77668dd --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_image/vars/main.yml @@ -0,0 +1,6 @@ +--- +test_image_data1: + - {protocol: "sftp", serverip: "10.241.106.118", imgtype: "os", serverusername: "root", serverpassword: "root123"} + +test_image_data2: + - {protocol: "tftp", serverip: "10.241.106.118", imgtype: "os"} diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_interface/aliases b/ansible_collections/community/network/tests/integration/targets/cnos_interface/aliases new file mode 100644 index 000000000..be010d923 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_interface/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_interface/cnos_interface_sample_hosts b/ansible_collections/community/network/tests/integration/targets/cnos_interface/cnos_interface_sample_hosts new file mode 100644 index 000000000..21878e2cb --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_interface/cnos_interface_sample_hosts @@ -0,0 +1,14 @@ +# You have to paste this dummy information in /etc/ansible/hosts +# Notes: +# - Comments begin with the '#' character +# - Blank lines are ignored +# - Groups of hosts are delimited by [header] elements +# - You can enter hostnames or ip Addresses +# - A hostname/ip can be a member of multiple groups +# +# In the /etc/ansible/hosts file u have to enter [cnos_interface_sample] tag +# Following you should specify IP Addresses details +# Please change <username> and <password> with appropriate value for your switch. + +[cnos_interface_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> test_interface=ethernet1/33 test_interface2=ethernet1/44 diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_interface/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_interface/defaults/main.yaml new file mode 100644 index 000000000..5f709c5aa --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_interface/defaults/main.yaml @@ -0,0 +1,2 @@ +--- +testcase: "*" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_interface/tasks/cli.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_interface/tasks/cli.yaml new file mode 100644 index 000000000..303af4076 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_interface/tasks/cli.yaml @@ -0,0 +1,22 @@ +--- +- name: collect all cli test cases + find: + paths: "{{ role_path }}/tests/cli" + patterns: "{{ testcase }}.yaml" + register: test_cases + delegate_to: localhost + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test cases (connection=network_cli) + include: "{{ test_case_to_run }}" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run + +- name: run test case (connection=local) + include: "{{ test_case_to_run }} ansible_connection=local" + with_first_found: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_interface/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_interface/tasks/main.yaml new file mode 100644 index 000000000..fa3dd7fb2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_interface/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: cli.yaml, tags: ['cli'] } diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_interface/tests/cli/basic.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_interface/tests/cli/basic.yaml new file mode 100644 index 000000000..9525b6b57 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_interface/tests/cli/basic.yaml @@ -0,0 +1,228 @@ +--- +- debug: msg="START cnos_interface cli/basic.yaml on connection={{ ansible_connection }}" + +- name: Configure interface (setup) + cnos_interface: + name: "{{ test_interface }}" + description: test-interface-1 + speed: 1000 + mtu: 1800 + state: present + provider: "{{ cli }}" + register: result + +- name: Configure interface + cnos_interface: + name: "{{ test_interface }}" + description: test-interface-initial + state: present + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == true' + - '"interface {{ test_interface }}" in result.commands' + - '"description test-interface-initial" in result.commands' + +- name: Confgure interface (idempotent) + cnos_interface: + name: "{{ test_interface }}" + description: test-interface-initial + state: present + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == true' + +- name: Confgure interface parameters + cnos_interface: + name: "{{ test_interface }}" + description: test-interface + mtu: 2000 + state: present + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == true' + - '"interface {{ test_interface }}" in result.commands' + - '"description test-interface" in result.commands' + - '"mtu 2000" in result.commands' + +- name: Change interface parameters + cnos_interface: + name: "{{ test_interface }}" + description: test-interface-1 + mtu: 1800 + state: present + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == true' + - '"interface {{ test_interface }}" in result.commands' + - '"description test-interface-1" in result.commands' + - '"mtu 1800" in result.commands' + +- name: Disable interface + cnos_interface: + name: "{{ test_interface }}" + enabled: False + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == true' + #- '"interface {{ test_interface }}" in result.commands' + #- '"shutdown" in result.commands' + +- name: Enable interface + cnos_interface: + name: "{{ test_interface }}" + enabled: True + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == true' + - '"interface {{ test_interface }}" in result.commands' + #- '"no shutdown" in result.commands' + +- name: Confgure second interface (setup) + cnos_interface: + name: "{{ test_interface2 }}" + description: test-interface-initial + speed: 1000 + mtu: 1800 + state: present + provider: "{{ cli }}" + register: result + +- name: Add interface aggregate + cnos_interface: + aggregate: + - { name: "{{ test_interface }}", mtu: 2000, description: test-interface-1 } + - { name: "{{ test_interface2 }}", mtu: 2000, description: test-interface-2 } + speed: 1000 + state: present + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == true' + - '"interface {{ test_interface }}" in result.commands' + - '"mtu 2000" in result.commands' + - '"interface {{ test_interface2 }}" in result.commands' + - '"description test-interface-2" in result.commands' + - '"mtu 2000" in result.commands' + +- name: Add interface aggregate (idempotent) + cnos_interface: + aggregate: + - { name: "{{ test_interface }}", mtu: 2000, description: test-interface-1 } + - { name: "{{ test_interface2 }}", mtu: 2000, description: test-interface-2 } + speed: 1000 + state: present + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == true' + +- name: Disable interface aggregate + cnos_interface: + aggregate: + - { name: "{{ test_interface }}" } + - { name: "{{ test_interface2 }}" } + enabled: False + state: present + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == true' +# - '"interface {{ test_interface }}" in result.commands' +# - '"shutdown" in result.commands' +# - '"interface {{ test_interface2 }}" in result.commands' +# - '"shutdown" in result.commands' + +- name: Enable interface aggregate + cnos_interface: + aggregate: + - { name: "{{ test_interface }}" } + - { name: "{{ test_interface2 }}" } + enabled: True + state: present + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == true' + - '"interface {{ test_interface }}" in result.commands' + #- '"no shutdown" in result.commands' + - '"interface {{ test_interface2 }}" in result.commands' + #- '"no shutdown" in result.commands' + +- name: loopback interface setup + cnos_interface: + aggregate: + - name: loopback3 + - name: loopback6 + state: absent + provider: "{{ cli }}" + +- name: Create loopback interface aggregate + cnos_interface: + aggregate: + - name: loopback3 + - name: loopback6 + state: present + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == true' + #- '"interface loopback3" in result.commands' + #- '"interface loopback6" in result.commands' + +- name: Delete loopback interface aggregate + cnos_interface: + aggregate: + - name: loopback3 + - name: loopback6 + state: absent + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == true' + - '"no interface loopback3" in result.commands' + - '"no interface loopback6" in result.commands' + +- name: Delete loopback interface aggregate (idempotent) + cnos_interface: + aggregate: + - name: loopback3 + - name: loopback6 + state: absent + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == false' + +- debug: msg="END cnos_interface cli/basic.yaml on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_interface/tests/cli/intent.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_interface/tests/cli/intent.yaml new file mode 100644 index 000000000..c4d7534ef --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_interface/tests/cli/intent.yaml @@ -0,0 +1,140 @@ +--- +- debug: msg="START cnos_interface cli/intent.yaml on connection={{ ansible_connection }}" + +- name: Check intent arguments + cnos_interface: + name: "{{ test_interface }}" + state: down + provider: "{{ cli }}" + register: result + +- assert: + that: + - "result.failed == false" + +- name: Check intent arguments (failed condition) + cnos_interface: + name: "{{ test_interface }}" + state: up + provider: "{{ cli }}" + ignore_errors: yes + register: result + +- assert: + that: + - "result.failed == true" + - "'state eq(up)' in result.failed_conditions" + +- name: Config + intent + cnos_interface: + name: "{{ test_interface }}" + enabled: False + state: down + provider: "{{ cli }}" + register: result + +- assert: + that: + - "result.failed == false" + +- name: Config + intent (fail) + cnos_interface: + name: "{{ test_interface }}" + enabled: False + provider: "{{ cli }}" + state: up + ignore_errors: yes + register: result + +- assert: + that: + - "result.failed == true" + - "'state eq(up)' in result.failed_conditions" + +- name: Register show neighbors detail + cnos_command: + commands: + - show lldp neighbors + provider: "{{ cli }}" + register: show_lldp_neighbors_result + +- block: + - name: Check neighbors intent arguments + cnos_interface: + name: Ethernet1/7 + neighbors: + - port: Ethernet1/19 + host: NE1032 + provider: "{{ cli }}" + register: result + + - assert: + that: + - "result.failed == false" + + - name: Check neighbors intent arguments (failed condition) + cnos_interface: + name: Ethernet1/7 + neighbors: + - port: dummy_port + host: dummy_host + provider: "{{ cli }}" + ignore_errors: yes + register: result + + - assert: + that: + - "result.failed == true" + - "'host dummy_host' in result.failed_conditions" + - "'port dummy_port' in result.failed_conditions" + when: '"netdev" in show_lldp_neighbors_result.stdout[0]' + +- name: Aggregate config + intent (pass) + cnos_interface: + aggregate: + - name: "{{ test_interface }}" + enabled: True + state: down + provider: "{{ cli }}" + ignore_errors: yes + register: result + +- assert: + that: + - "result.failed == false" + +- block: + - name: Aggregate neighbors intent (pass) + cnos_interface: + aggregate: + - name: Ethernet1/7 + neighbors: + - port: Ethernet1/19 + host: NE1032 + provider: "{{ cli }}" + ignore_errors: yes + register: result + + - assert: + that: + - "result.failed == false" + + - name: Aggregate neighbors intent (fail) + cnos_interface: + aggregate: + - name: Ethernet1/7 + neighbors: + - port: Ethernet1/19 + host: NE1032 + - port: dummy_port + host: dummy_host + provider: "{{ cli }}" + ignore_errors: yes + register: result + + - assert: + that: + - "result.failed == true" + - "'host dummy_host' in result.failed_conditions" + - "'port dummy_port' in result.failed_conditions" + when: "'netdev' in show_lldp_neighbors_result.stdout[0]" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_interface/vars/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_interface/vars/main.yaml new file mode 100644 index 000000000..aa25153ec --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_interface/vars/main.yaml @@ -0,0 +1,9 @@ +--- +cli: + host: "{{ inventory_hostname }}" + port: 22 + username: admin + password: admin + timeout: 30 + authorize: True + auth_pass: diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_l2_interface/aliases b/ansible_collections/community/network/tests/integration/targets/cnos_l2_interface/aliases new file mode 100644 index 000000000..cdb503335 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_l2_interface/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_l2_interface/cnos_l2_interface_sample_hosts b/ansible_collections/community/network/tests/integration/targets/cnos_l2_interface/cnos_l2_interface_sample_hosts new file mode 100644 index 000000000..f5443b281 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_l2_interface/cnos_l2_interface_sample_hosts @@ -0,0 +1,14 @@ +# You have to paste this dummy information in /etc/ansible/hosts +# Notes: +# - Comments begin with the '#' character +# - Blank lines are ignored +# - Groups of hosts are delimited by [header] elements +# - You can enter hostnames or ip Addresses +# - A hostname/ip can be a member of multiple groups +# +# In the /etc/ansible/hosts file u have to enter [cnos_l2_interface_sample] tag +# Following you should specify IP Addresses details +# Please change <username> and <password> with appropriate value for your switch. + +[cnos_l2_interface_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=admin ansible_ssh_pass=admin deviceType=g8272_cnos test_interface=ethernet1/33 test_interface2=ethernet1/44 diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_l2_interface/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_l2_interface/defaults/main.yaml new file mode 100644 index 000000000..5f709c5aa --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_l2_interface/defaults/main.yaml @@ -0,0 +1,2 @@ +--- +testcase: "*" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_l2_interface/tasks/cli.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_l2_interface/tasks/cli.yaml new file mode 100644 index 000000000..6d2dbcbd6 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_l2_interface/tasks/cli.yaml @@ -0,0 +1,24 @@ +--- +- name: collect all cli test cases + find: + paths: "{{ role_path }}/tests/cli" + patterns: "{{ testcase }}.yaml" + register: test_cases + delegate_to: localhost + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test cases (connection=network_cli) + include: "{{ test_case_to_run }}" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run + +- name: run test case (connection=local) + include: "{{ test_case_to_run }} ansible_connection=local" + with_first_found: + - files: "{{ test_items|default([]) }}" + skip: true + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_l2_interface/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_l2_interface/tasks/main.yaml new file mode 100644 index 000000000..fd5054e95 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_l2_interface/tasks/main.yaml @@ -0,0 +1,10 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: cli.yaml, tags: ['cli'] } +#- block: +# - { include: cli.yaml, tags: ['cli'] } +# when: 'switch_type == "L2"' diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_l2_interface/tests/cli/agg.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_l2_interface/tests/cli/agg.yaml new file mode 100644 index 000000000..ff15cee1a --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_l2_interface/tests/cli/agg.yaml @@ -0,0 +1,81 @@ +--- +- debug: msg="START connection={{ ansible_connection }} cnos_l2_interface aggregate test" + +- name: Setup - Ensure interfaces are switchport + cnos_config: + lines: + - switchport + parents: + - "interface {{ item }}" + loop: + - "{{ test_interface }}" + - "{{ test_interface2 }}" + +- name: "Setup vlans" + cnos_vlan: + aggregate: + - vlan_id: 6 + - vlan_id: 15 + provider: "{{ cli }}" + +- name: Setup - Remove interface aggregate before testing + cnos_l2_interface: + aggregate: + - { name: "{{ test_interface }}", mode: access, access_vlan: 6 } + - { name: "{{ test_interface2 }}", mode: access, access_vlan: 15 } + state: absent + provider: "{{ cli }}" + +- block: + - name: Configure interface for access_vlan aggregate + cnos_l2_interface: &conf_agg + aggregate: + - { name: "{{ test_interface }}", mode: access, access_vlan: 6 } + - { name: "{{ test_interface2 }}", mode: access, access_vlan: 15 } + provider: "{{ cli }}" + register: result + + - assert: + that: + - "result.changed == true" + + - name: Configure interface for access_vlan aggregate(Idempotence) + cnos_l2_interface: *conf_agg + register: result + + - assert: + that: + - "result.changed == false" + + - name: Remove interface aggregate + cnos_l2_interface: &rm_agg + aggregate: + - { name: "{{ test_interface }}", mode: access, access_vlan: 6 } + - { name: "{{ test_interface2 }}", mode: access, access_vlan: 15 } + provider: "{{ cli }}" + state: absent + register: result + + - assert: + that: + - "result.changed == true" + + - name: Remove interface aggregate(Idempotence) + cnos_l2_interface: *rm_agg + register: result + + - assert: + that: + - "result.changed == false" + + always: + - name: "remove vlans" + cnos_vlan: + aggregate: + - vlan_id: 6 + - vlan_id: 15 + state: absent + provider: "{{ cli }}" + ignore_errors: yes + +- debug: msg="END connection={{ ansible_connection }} cnos_l2_interface aggregate test" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_l2_interface/tests/cli/sanity.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_l2_interface/tests/cli/sanity.yaml new file mode 100644 index 000000000..d76d536be --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_l2_interface/tests/cli/sanity.yaml @@ -0,0 +1,168 @@ +--- +- debug: msg="START connection={{ ansible_connection }} cnos_l2_interface sanity test" + +- name: "Setup interface" + cnos_config: &default + lines: + - "interface {{ test_interface }}" + provider: "{{ cli }}" + +#- name: set trunk encapsulation type +# cnos_config: +# lines: +# - switchport trunk encapsulation dot1q +# parents: +# - "interface {{ test_interface }}" +# provider: "{{ cli }}" + +- name: "Setup vlans" + cnos_vlan: + aggregate: + - vlan_id: 5 + - vlan_id: 6 + - vlan_id: 7 + - vlan_id: 8 + - vlan_id: 9 + - vlan_id: 10 + - vlan_id: 20 + provider: "{{ cli }}" + +- block: + - name: Ensure interface is in its default switchport state + cnos_l2_interface: &def_swi + name: "{{ test_interface }}" + state: unconfigured + provider: "{{ cli }}" + + - name: Ensure interface is configured for access vlan 20 + cnos_l2_interface: &acc_vl + name: "{{ test_interface }}" + mode: access + access_vlan: 20 + provider: "{{ cli }}" + register: result + + - assert: &true + that: + - "result.changed == true" + + - name: "access vlan Idempotence" + cnos_l2_interface: *acc_vl + register: result + + - assert: &false + that: + - "result.changed == false" + + - name: Ensure interface only has vlans 5-10 as trunk vlans + cnos_l2_interface: &tr_vl + name: "{{ test_interface }}" + mode: trunk + native_vlan: 10 + trunk_allowed_vlans: 5-10 + provider: "{{ cli }}" + register: result + + - assert: *true + + - name: "trunk vlan Idempotence" + cnos_l2_interface: *tr_vl + register: result + + - assert: *false + + - name: Ensure interface is a trunk port and ensure 2-50 are being tagged (doesn't mean others aren't also being tagged) + cnos_l2_interface: &tag + name: "{{ test_interface }}" + mode: trunk + native_vlan: 10 + trunk_vlans: 2-50 + provider: "{{ cli }}" + register: result + + - assert: *true + + - name: "tag vlan Idempotence" + cnos_l2_interface: *tag + register: result + + - assert: *true + + - name: Remove full trunk vlan range 2-50 + cnos_l2_interface: &no_tag + name: "{{ test_interface }}" + mode: trunk + trunk_vlans: 2-50 + state: absent + provider: "{{ cli }}" + register: result + + - assert: *true + + - name: Check Idempotence Remove full trunk vlan range 2-50 + cnos_l2_interface: *no_tag + register: result + + - assert: *false + + - name: Reconfigure interface trunk port and ensure 2-50 are being tagged + cnos_l2_interface: *tag + register: result + + - assert: *true + + - name: Check Idempotence Reconfigure interface trunk port and ensure 2-50 are being tagged + cnos_l2_interface: *tag + register: result + + - assert: *true + + - name: Remove partial trunk vlan range 30-4094 are removed + cnos_l2_interface: &partial + name: "{{ test_interface }}" + mode: trunk + trunk_vlans: 30-4094 + state: absent + provider: "{{ cli }}" + register: result + + - assert: *false + + - name: Check Idempotence Remove partial trunk vlan range 30-4094 are removed + cnos_l2_interface: *partial + register: result + + - assert: *false + + - name: put interface default state + cnos_l2_interface: *def_swi + register: result + + - assert: *true + + - name: "default state idempotence" + cnos_l2_interface: *def_swi + register: result + + - assert: *true + + always: + - name: "remove vlans" + cnos_vlan: + aggregate: + - vlan_id: 5 + - vlan_id: 6 + - vlan_id: 7 + - vlan_id: 8 + - vlan_id: 9 + - vlan_id: 10 + - vlan_id: 20 + state: absent + provider: "{{ cli }}" + ignore_errors: yes + + - name: "default interface" + cnos_config: *default + ignore_errors: yes + +- debug: msg="END connection={{ ansible_connection }} cnos_l2_interface sanity test" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_l2_interface/vars/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_l2_interface/vars/main.yaml new file mode 100644 index 000000000..aa25153ec --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_l2_interface/vars/main.yaml @@ -0,0 +1,9 @@ +--- +cli: + host: "{{ inventory_hostname }}" + port: 22 + username: admin + password: admin + timeout: 30 + authorize: True + auth_pass: diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_l3_interface/aliases b/ansible_collections/community/network/tests/integration/targets/cnos_l3_interface/aliases new file mode 100644 index 000000000..cdb503335 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_l3_interface/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_l3_interface/cnos_l3_interface_sample_hosts b/ansible_collections/community/network/tests/integration/targets/cnos_l3_interface/cnos_l3_interface_sample_hosts new file mode 100644 index 000000000..d77dc686a --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_l3_interface/cnos_l3_interface_sample_hosts @@ -0,0 +1,14 @@ +# You have to paste this dummy information in /etc/ansible/hosts +# Notes: +# - Comments begin with the '#' character +# - Blank lines are ignored +# - Groups of hosts are delimited by [header] elements +# - You can enter hostnames or ip Addresses +# - A hostname/ip can be a member of multiple groups +# +# In the /etc/ansible/hosts file u have to enter [cnos_l3_interface_sample] tag +# Following you should specify IP Addresses details +# Please change <username> and <password> with appropriate value for your switch. + +[cnos_l3_interface_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=admin ansible_ssh_pass=admin deviceType=g8272_cnos test_interface=ethernet1/33 test_interface2=ethernet1/44 diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_l3_interface/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_l3_interface/defaults/main.yaml new file mode 100644 index 000000000..5f709c5aa --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_l3_interface/defaults/main.yaml @@ -0,0 +1,2 @@ +--- +testcase: "*" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_l3_interface/tasks/cli.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_l3_interface/tasks/cli.yaml new file mode 100644 index 000000000..303af4076 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_l3_interface/tasks/cli.yaml @@ -0,0 +1,22 @@ +--- +- name: collect all cli test cases + find: + paths: "{{ role_path }}/tests/cli" + patterns: "{{ testcase }}.yaml" + register: test_cases + delegate_to: localhost + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test cases (connection=network_cli) + include: "{{ test_case_to_run }}" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run + +- name: run test case (connection=local) + include: "{{ test_case_to_run }} ansible_connection=local" + with_first_found: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_l3_interface/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_l3_interface/tasks/main.yaml new file mode 100644 index 000000000..fa3dd7fb2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_l3_interface/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: cli.yaml, tags: ['cli'] } diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_l3_interface/tests/cli/basic.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_l3_interface/tests/cli/basic.yaml new file mode 100644 index 000000000..7035c65d5 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_l3_interface/tests/cli/basic.yaml @@ -0,0 +1,279 @@ +--- +- debug: msg="START cnos_l3_interface cli/basic.yaml on connection={{ ansible_connection }}" + +- name: Delete interface ipv4 and ipv6 address(setup) + cnos_l3_interface: + name: "{{ test_interface }}" + state: absent + provider: "{{ cli }}" + register: result + +- name: Delete interface ipv4 and ipv6 address 2 (setup) + cnos_l3_interface: + name: "{{ test_interface2 }}" + state: absent + provider: "{{ cli }}" + register: result + +- name: Setup - Ensure interfaces are switchport + cnos_config: + lines: + - no shutdown + - no switchport + - no logging monitor + parents: + - "interface {{ item }}" + provider: "{{ cli }}" + loop: + - "{{ test_interface }}" + - "{{ test_interface2 }}" + +- name: Configure interface ipv4 address + cnos_l3_interface: + name: "{{ test_interface }}" + ipv4: 10.241.113.1/24 + state: present + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == true' + - '"interface {{ test_interface }}" in result.commands' + - '"ip address 10.241.113.1 255.255.255.0" in result.commands' + +- name: Configure interface ipv4 address (idempotent) + cnos_l3_interface: + name: "{{ test_interface }}" + ipv4: 10.241.113.1/24 + state: present + provider: "{{ cli }}" + register: result + +- assert: &unchanged + that: + - 'result.changed == false' + +- name: Assign same ipv4 address to other interface (fail) + cnos_l3_interface: + name: "{{ test_interface2 }}" + ipv4: 10.241.113.1/24 + state: present + provider: "{{ cli }}" + ignore_errors: yes + register: result + +- assert: + that: + - "result.failed == true" + - "result.msg is defined" + +- name: Change interface ipv4 address + cnos_l3_interface: + name: "{{ test_interface }}" + ipv4: dhcp + state: present + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == true' + - '"interface {{ test_interface }}" in result.commands' + - '"ip address dhcp" in result.commands' + +- name: Configure interface ipv6 address + cnos_l3_interface: &ipv6-1 + name: "{{ test_interface }}" + ipv6: fd5d:12c9:2201:1::1/64 + state: present + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == true' + - '"interface {{ test_interface }}" in result.commands' + - '"ipv6 address fd5d:12c9:2201:1::1/64" in result.commands' + +- name: Configure interface ipv6 address (idempotent) + cnos_l3_interface: *ipv6-1 + register: result + +- assert: + that: + - 'result.changed == false' + +- name: Configure second ipv6 address on interface + cnos_l3_interface: &ipv6-2 + name: "{{ test_interface }}" + ipv6: fd5d:12c9:2291:1::1/64 + state: present + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == true' + - '"interface {{ test_interface }}" in result.commands' + - '"ipv6 address fd5d:12c9:2291:1::1/64" in result.commands' + +- name: Ensure first ipv6 address still associated with interface + cnos_l3_interface: *ipv6-1 + register: result + +- assert: + that: + - 'result.changed == true' + +- name: Ensure second ipv6 address still associated with interface + cnos_l3_interface: *ipv6-2 + register: result + +- assert: + that: + - 'result.changed == true' + +- name: Assign same ipv6 address to other interface (fail) + cnos_l3_interface: + name: "{{ test_interface2 }}" + ipv6: fd5d:12c9:2201:1::1/64 + state: present + provider: "{{ cli }}" + ignore_errors: yes + register: result + +- assert: + that: + - 'result.changed == true' + - '"interface {{ test_interface2 }}" in result.commands' + - '"ipv6 address fd5d:12c9:2201:1::1/64" in result.commands' + +- name: Change interface ipv6 address + cnos_l3_interface: + name: "{{ test_interface }}" + ipv6: dhcp + state: present + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == true' + - '"interface {{ test_interface }}" in result.commands' + - '"ipv6 address dhcp" in result.commands' + +- name: Delete interface ipv4 and ipv6 address + cnos_l3_interface: + name: "{{ test_interface }}" + state: absent + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == true' + - '"interface {{ test_interface }}" in result.commands' + - '"no ip address" in result.commands' + - '"no ipv6 address" in result.commands' + +- name: Delete interface ipv4 and ipv6 address (idempotent) + cnos_l3_interface: + name: "{{ test_interface }}" + state: absent + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == false' + +- name: Delete second interface ipv4 and ipv6 address (setup) + cnos_l3_interface: + name: "{{ test_interface2 }}" + state: absent + provider: "{{ cli }}" + register: result + +- name: Configure ipv4 and ipv6 address using aggregate + cnos_l3_interface: + aggregate: + - { name: "{{ test_interface }}", ipv4: 10.241.113.1/24, ipv6: "fd5d:12c9:2201:2::2/64" } + - { name: "{{ test_interface2 }}", ipv4: 10.141.233.2/16, ipv6: "fd5e:12c9:2201:3::3/32" } + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == true' + - '"interface {{ test_interface }}" in result.commands' + - '"ip address 10.241.113.1 255.255.255.0" in result.commands' + - '"ipv6 address fd5d:12c9:2201:2::2/64" in result.commands' + - '"interface {{ test_interface2 }}" in result.commands' + - '"ip address 10.141.233.2 255.255.0.0" in result.commands' + - '"ipv6 address fd5e:12c9:2201:3::3/32" in result.commands' + +- name: Configure ipv4 and ipv6 address using aggregate (idempotent) + cnos_l3_interface: + aggregate: + - { name: "{{ test_interface }}", ipv4: 10.241.113.1/24, ipv6: "fd5d:12c9:2201:2::2/64" } + - { name: "{{ test_interface2 }}", ipv4: 10.141.233.2/16, ipv6: "fd5e:12c9:2201:3::3/32" } + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == false' + +- name: Change ipv4 and ipv6 address using aggregate + cnos_l3_interface: + aggregate: + - { name: "{{ test_interface }}", ipv4: 10.241.113.1/16, ipv6: "fd5a:12c9:2201:4::4/32" } + - { name: "{{ test_interface2 }}", ipv4: 10.141.233.2/24, ipv6: "fd5b:12c9:2201:5::5/90" } + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == true' + - '"interface {{ test_interface }}" in result.commands' + - '"ip address 10.241.113.1 255.255.0.0" in result.commands' + - '"ipv6 address fd5a:12c9:2201:4::4/32" in result.commands' + - '"interface {{ test_interface2 }}" in result.commands' + - '"ip address 10.141.233.2 255.255.255.0" in result.commands' + - '"ipv6 address fd5b:12c9:2201:5::5/90" in result.commands' + + +- name: Delete ipv4 and ipv6 address using aggregate + cnos_l3_interface: + aggregate: + - { name: "{{ test_interface }}" } + - { name: "{{ test_interface2 }}" } + state: absent + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == true' + - '"interface {{ test_interface }}" in result.commands' + - '"no ip address" in result.commands' + - '"no ipv6 address" in result.commands' + - '"interface {{ test_interface2 }}" in result.commands' + - '"no ip address" in result.commands' + - '"no ipv6 address" in result.commands' + +- name: Delete ipv4 and ipv6 address using aggregate (idempotent) + cnos_l3_interface: + aggregate: + - { name: "{{ test_interface }}" } + - { name: "{{ test_interface2 }}" } + state: absent + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == false' + +- debug: msg="END cnos_l3_interface cli/basic.yaml on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_l3_interface/vars/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_l3_interface/vars/main.yaml new file mode 100644 index 000000000..aa25153ec --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_l3_interface/vars/main.yaml @@ -0,0 +1,9 @@ +--- +cli: + host: "{{ inventory_hostname }}" + port: 22 + username: admin + password: admin + timeout: 30 + authorize: True + auth_pass: diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_linkagg/aliases b/ansible_collections/community/network/tests/integration/targets/cnos_linkagg/aliases new file mode 100644 index 000000000..be010d923 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_linkagg/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_linkagg/cnos_linkagg_sample_hosts b/ansible_collections/community/network/tests/integration/targets/cnos_linkagg/cnos_linkagg_sample_hosts new file mode 100644 index 000000000..8c816da7e --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_linkagg/cnos_linkagg_sample_hosts @@ -0,0 +1,14 @@ +# You have to paste this dummy information in /etc/ansible/hosts +# Notes: +# - Comments begin with the '#' character +# - Blank lines are ignored +# - Groups of hosts are delimited by [header] elements +# - You can enter hostnames or ip Addresses +# - A hostname/ip can be a member of multiple groups +# +# In the /etc/ansible/hosts file u have to enter [cnos_linkagg_sample] tag +# Following you should specify IP Addresses details +# Please change <username> and <password> with appropriate value for your switch. + +[cnos_linkagg_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_linkagg/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_linkagg/defaults/main.yaml new file mode 100644 index 000000000..9ef5ba516 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_linkagg/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_linkagg/tasks/cli.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_linkagg/tasks/cli.yaml new file mode 100644 index 000000000..303af4076 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_linkagg/tasks/cli.yaml @@ -0,0 +1,22 @@ +--- +- name: collect all cli test cases + find: + paths: "{{ role_path }}/tests/cli" + patterns: "{{ testcase }}.yaml" + register: test_cases + delegate_to: localhost + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test cases (connection=network_cli) + include: "{{ test_case_to_run }}" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run + +- name: run test case (connection=local) + include: "{{ test_case_to_run }} ansible_connection=local" + with_first_found: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_linkagg/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_linkagg/tasks/main.yaml new file mode 100644 index 000000000..fa3dd7fb2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_linkagg/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: cli.yaml, tags: ['cli'] } diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_linkagg/tests/cli/basic.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_linkagg/tests/cli/basic.yaml new file mode 100644 index 000000000..e801c7cbc --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_linkagg/tests/cli/basic.yaml @@ -0,0 +1,169 @@ +--- +- debug: msg="START cli/basic.yaml on connection={{ ansible_connection }}" + + +- block: + + - name: setup - remove config used in test(part1) + cnos_config: + lines: + - no interface port-channel 20 + provider: "{{ cli }}" + ignore_errors: yes + + - name: setup - remove config used in test(part2) + cnos_config: + lines: + - no interface port-channel 5 + provider: "{{ cli }}" + ignore_errors: yes + + - name: setup - remove config used in test(part3) + cnos_config: + lines: + - no channel-group + provider: "{{ cli }}" + parents: "{{ item }}" + loop: + - interface Ethernet1/33 + - interface Ethernet1/44 + + - name: create linkagg + cnos_linkagg: &create + group: 20 + state: present + provider: "{{ cli }}" + register: result + + - assert: + that: + - "result.changed == true" + - "'interface port-channel 20' in result.commands" + + - name: create linkagg(Idempotence) + cnos_linkagg: *create + register: result + + - assert: + that: + - "result.changed == false" + + - name: set link aggregation group to members + cnos_linkagg: &configure_member + group: 20 + mode: active + members: + - Ethernet1/33 + - Ethernet1/44 + provider: "{{ cli }}" + register: result + + - assert: + that: + - "result.changed == true" + - "'interface Ethernet1/33' in result.commands" + - "'channel-group 20 mode active' in result.commands" + - "'interface Ethernet1/44' in result.commands" + - "'channel-group 20 mode active' in result.commands" + + - name: set link aggregation group to members(Idempotence) + cnos_linkagg: *configure_member + register: result + + - assert: + that: + - "result.changed == false" + + - name: remove link aggregation group from member + cnos_linkagg: &remove_member + group: 20 + mode: active + members: + - Ethernet1/33 + provider: "{{ cli }}" + register: result + + - assert: + that: + - "result.changed == true" + - "'interface Ethernet1/44' in result.commands" + - "'no channel-group' in result.commands" + + - name: remove link aggregation group from member(Idempotence) + cnos_linkagg: *remove_member + register: result + + - assert: + that: + - "result.changed == false" + + - name: remove linkagg + cnos_linkagg: &remove + group: 20 + state: absent + provider: "{{ cli }}" + register: result + + - assert: + that: + - "result.changed == true" + - "'no interface port-channel 20' in result.commands" + + - name: remove linkagg(Idempotence) + cnos_linkagg: *remove + register: result + + - assert: + that: + - "result.changed == false" + + - name: create aggregate of linkagg definitions + cnos_linkagg: &create_agg + aggregate: + - { group: 5 } + - { group: 20, mode: active, members: ['Ethernet1/33'] } + provider: "{{ cli }}" + register: result + + - assert: + that: + - "result.changed == true" + - "'interface port-channel 5' in result.commands" + - "'interface port-channel 20' in result.commands" + - "'interface Ethernet1/33' in result.commands" + - "'channel-group 20 mode active' in result.commands" + + - name: create aggregate of linkagg definitions(Idempotence) + cnos_linkagg: *create_agg + register: result + + - assert: + that: + - "result.changed == false" + + - name: teardown(part1) + cnos_config: + lines: + - no interface port-channel 20 + provider: "{{ cli }}" + ignore_errors: yes + + - name: teardown(part2) + cnos_config: + lines: + - no interface port-channel 5 + provider: "{{ cli }}" + ignore_errors: yes + + - name: teardown(part3) + cnos_config: + lines: + - no channel-group + provider: "{{ cli }}" + parents: "{{ item }}" + loop: + - interface Ethernet1/33 + - interface Ethernet1/44 + + +- debug: msg="END cli/basic.yaml on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_linkagg/vars/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_linkagg/vars/main.yaml new file mode 100644 index 000000000..aa25153ec --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_linkagg/vars/main.yaml @@ -0,0 +1,9 @@ +--- +cli: + host: "{{ inventory_hostname }}" + port: 22 + username: admin + password: admin + timeout: 30 + authorize: True + auth_pass: diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_lldp/aliases b/ansible_collections/community/network/tests/integration/targets/cnos_lldp/aliases new file mode 100644 index 000000000..be010d923 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_lldp/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_lldp/cnos_lldp_sample_hosts b/ansible_collections/community/network/tests/integration/targets/cnos_lldp/cnos_lldp_sample_hosts new file mode 100644 index 000000000..5ce923791 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_lldp/cnos_lldp_sample_hosts @@ -0,0 +1,14 @@ +# You have to paste this dummy information in /etc/ansible/hosts +# Notes: +# - Comments begin with the '#' character +# - Blank lines are ignored +# - Groups of hosts are delimited by [header] elements +# - You can enter hostnames or ip Addresses +# - A hostname/ip can be a member of multiple groups +# +# In the /etc/ansible/hosts file u have to enter [cnos_lldp_sample] tag +# Following you should specify IP Addresses details +# Please change <username> and <password> with appropriate value for your switch. + +[cnos_lldp_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_lldp/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_lldp/defaults/main.yaml new file mode 100644 index 000000000..5f709c5aa --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_lldp/defaults/main.yaml @@ -0,0 +1,2 @@ +--- +testcase: "*" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_lldp/tasks/cli.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_lldp/tasks/cli.yaml new file mode 100644 index 000000000..303af4076 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_lldp/tasks/cli.yaml @@ -0,0 +1,22 @@ +--- +- name: collect all cli test cases + find: + paths: "{{ role_path }}/tests/cli" + patterns: "{{ testcase }}.yaml" + register: test_cases + delegate_to: localhost + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test cases (connection=network_cli) + include: "{{ test_case_to_run }}" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run + +- name: run test case (connection=local) + include: "{{ test_case_to_run }} ansible_connection=local" + with_first_found: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_lldp/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_lldp/tasks/main.yaml new file mode 100644 index 000000000..fa3dd7fb2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_lldp/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: cli.yaml, tags: ['cli'] } diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_lldp/tests/cli/basic.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_lldp/tests/cli/basic.yaml new file mode 100644 index 000000000..f499ff43a --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_lldp/tests/cli/basic.yaml @@ -0,0 +1,44 @@ +--- +- debug: msg="START cnos_lldp cli/basic.yaml on connection={{ ansible_connection }}" + +- name: Enable LLDP service + cnos_lldp: + state: present + register: result + +- assert: + that: + - 'result.changed == true' + - '"lldp receive" in result.commands' + - '"lldp transmit" in result.commands' + +- name: Enable LLDP service again (idempotent) + cnos_lldp: + state: present + register: result + +- assert: + that: + - 'result.changed == true' + +- name: Disable LLDP service + cnos_lldp: + state: absent + register: result + +- assert: + that: + - 'result.changed == true' + - '"no lldp receive" in result.commands' + - '"no lldp transmit" in result.commands' + +- name: Disable LLDP service (idempotent) + cnos_lldp: + state: absent + register: result + +- assert: + that: + - 'result.changed == true' + +- debug: msg="END cnos_lldp cli/basic.yaml on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_logging/aliases b/ansible_collections/community/network/tests/integration/targets/cnos_logging/aliases new file mode 100644 index 000000000..be010d923 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_logging/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_logging/cnos_logging_sample_hosts b/ansible_collections/community/network/tests/integration/targets/cnos_logging/cnos_logging_sample_hosts new file mode 100644 index 000000000..e966047ae --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_logging/cnos_logging_sample_hosts @@ -0,0 +1,14 @@ +# You have to paste this dummy information in /etc/ansible/hosts +# Notes: +# - Comments begin with the '#' character +# - Blank lines are ignored +# - Groups of hosts are delimited by [header] elements +# - You can enter hostnames or ip Addresses +# - A hostname/ip can be a member of multiple groups +# +# In the /etc/ansible/hosts file u have to enter [cnos_logging_sample] tag +# Following you should specify IP Addresses details +# Please change <username> and <password> with appropriate value for your switch. + +[cnos_logging_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_logging/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_logging/defaults/main.yaml new file mode 100644 index 000000000..5f709c5aa --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_logging/defaults/main.yaml @@ -0,0 +1,2 @@ +--- +testcase: "*" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_logging/tasks/cli.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_logging/tasks/cli.yaml new file mode 100644 index 000000000..1216a3d0b --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_logging/tasks/cli.yaml @@ -0,0 +1,22 @@ +--- +- name: collect all cli test cases + find: + paths: "{{ role_path }}/tests/cli" + patterns: "{{ testcase }}.yaml" + register: test_cases + delegate_to: localhost + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test cases (connection=network_cli) + include: "{{ test_case_to_run }}" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run + +#- name: run test case (connection=local) +# include: "{{ test_case_to_run }} ansible_connection=local" +# with_first_found: "{{ test_items }}" +# loop_control: +# loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_logging/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_logging/tasks/main.yaml new file mode 100644 index 000000000..fa3dd7fb2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_logging/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: cli.yaml, tags: ['cli'] } diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_logging/tests/cli/basic.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_logging/tests/cli/basic.yaml new file mode 100644 index 000000000..b82b2ac36 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_logging/tests/cli/basic.yaml @@ -0,0 +1,136 @@ +--- +# ensure logging configs are empty +- name: Remove server logging + cnos_logging: &remove_server + dest: server + name: 10.241.107.224 + state: absent + +- name: Remove console + cnos_logging: + dest: console + level: 4 + state: absent + +- name: Remove buffer + cnos_logging: + dest: logfile + size: 8000 + state: absent + +# start tests +- name: Set up server logging + cnos_logging: + dest: server + name: 10.241.107.224 + facility: local7 + state: present + register: result + +- assert: + that: + - 'result.changed == true' + - '"logging server 10.241.107.224" in result.commands' + +- name: Set up server logging again (idempotent) + cnos_logging: + dest: server + name: 10.241.107.224 + state: present + register: result + +- assert: &unchanged + that: + - 'result.changed == true' + +- name: Delete/disable server logging + cnos_logging: *remove_server + register: result + +- assert: + that: + - 'result.changed == true' + - '"no logging server 10.241.107.224" in result.commands' + +- name: Delete/disable server logging (idempotent) + cnos_logging: *remove_server + register: result + +- assert: + that: + - 'result.changed == true' + +- name: Console logging with level errors + cnos_logging: + dest: console + level: 3 + state: present + register: result + +- assert: + that: + - 'result.changed == true' + - '"logging console 3" in result.commands' + +- name: Configure Buffer size + cnos_logging: + dest: logfile + name: testfile + level: 6 + size: 8000 + register: result + +- assert: + that: + - 'result.changed == true' + - '"logging logfile testfile 6 size 8000" in result.commands' + + +- name: Change logging parameters using aggregate + cnos_logging: + aggregate: + - { dest: console, level: 5 } + - { dest: logfile, name: anil, level: 3, size: 9000 } + register: result + +- assert: + that: + - 'result.changed == true' + - '"logging logfile anil 3 size 9000" in result.commands' + - '"logging console 5" in result.commands' + +- name: Set both logging destination and facility + cnos_logging: &set_both + dest: logfile + name: mylog + level: 1 + size: 4096 + state: present + register: result + +- assert: + that: + - 'result.changed == true' + - '"logging logfile mylog 1 size 4096" in result.commands' + +- name: Set both logging destination and facility (idempotent) + cnos_logging: *set_both + register: result + +- assert: + that: + - 'result.changed == false' + +- name: remove logging as collection tearDown + cnos_logging: + aggregate: + - { dest: console, level: 6 } + - { dest: logfile, name: mylog, size: 4096, level: 1 } + state: absent + register: result + +- assert: + that: + - 'result.changed == true' + - '"no logging console" in result.commands' + - '"no logging logfile" in result.commands' diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_rollback/README.md b/ansible_collections/community/network/tests/integration/targets/cnos_rollback/README.md new file mode 100644 index 000000000..4e6764f91 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_rollback/README.md @@ -0,0 +1,119 @@ +# Ansible Role: cnos_rollback_sample - Rolls back the configuration of a switch from a remote server +--- +<add role description below> + +This role is an example of using the *cnos_rollback.py* Lenovo module in the context of CNOS switch configuration.This module allows you to work with switch configurations. It provides a way to roll back configurations of a switch from a remote server. This is achieved by using startup or running configurations of the target device that were previously backed up to a remote server using FTP, SFTP, TFTP, or SCP. + +The first step is to create a directory from where the remote server can be reached. The next step is to provide the full file path of the backup configurations location. Authentication details required by the remote server must be provided as well. + +By default, this method overwrites the switch's configuration file with the newly downloaded file. + +The results of the operation can be viewed in *results* directory. + +For more details, see [Lenovo modules for Ansible: cnos_rollback](http://systemx.lenovofiles.com/help/index.jsp?topic=%2Fcom.lenovo.switchmgt.ansible.doc%2Fcnos_rollback.html&cp=0_3_1_0_4_5). + + +## Requirements +--- +<add role requirements information below> + +- Ansible version 2.2 or later ([Ansible installation documentation](http://docs.ansible.com/ansible/intro_installation.html)) +- Lenovo switches running CNOS version 10.2.1.0 or later +- an SSH connection to the Lenovo switch (SSH must be enabled on the network device) + + +## Role Variables +--- +<add role variables information below> + +Available variables are listed below, along with description. + +The following are mandatory inventory variables: + +Variable | Description +--- | --- +`ansible_connection` | Has to be `network_cli` +`ansible_network_os` | Has to be `cnos` +`ansible_ssh_user` | Specifies the username used to log into the switch +`ansible_ssh_pass` | Specifies the password used to log into the switch +`enablePassword` | Configures the password used to enter Global Configuration command mode on the switch (this is an optional parameter) +`hostname` | Searches the hosts file at */etc/ansible/hosts* and identifies the IP address of the switch on which the role is going to be applied +`deviceType` | Specifies the type of device from where the configuration will be backed up (**g8272_cnos** - G8272, **g8296_cnos** - G8296, **g8332_cnos** - G8332, **NE10032** - NE10032, **NE1072T** - NE1072T, **NE1032** - NE1032, **NE1032T** - NE1032T, **NE2572** - NE2572, **NE0152T** - NE0152T) + +The values of the variables used need to be modified to fit the specific scenario in which you are deploying the solution. To change the values of the variables, you need to visits the *vars* directory of each role and edit the *main.yml* file located there. The values stored in this file will be used by Ansible when the template is executed. + +The syntax of *main.yml* file for variables is the following: + +``` +<template variable>:<value> +``` + +You will need to replace the `<value>` field with the value that suits your topology. The `<template variable>` fields are taken from the template and it is recommended that you leave them unchanged. + +Variable | Description +--- | --- +`configType` | Specifies the type of configuration which will be used for the rolling back process (**running-config** - running configuration, **startup-config** - startup configuration) +`protocol` | Specifies the protocol used by the network device to interact with the remote server from where to download the backup configuration (**ftp** - FTP, **sftp** - SFTP, **tftp** - TFTP, **scp** - SCP) +`serverip` | Specifies the IP Address of the remote server from where the backup configuration will be downloaded +`rcpath` | Specifies the full file path where the configuration file located on the remote server (in case the relative path is used as the variable value, the root folder for the user of the server needs to be specified) +`serverusername` | Configures the username for the server relating to the protocol used +`serverpassword` | Configures the password for the server relating to the protocol used + + +## Dependencies +--- +<add dependencies information below> + +- username.iptables - Configures the firewall and blocks all ports except those needed for web server and SSH access. +- username.common - Performs common server configuration. +- cnos_rollback.py - This modules needs to be present in the *library* directory of the role. +- cnos.py - This module needs to be present in the PYTHONPATH environment variable set in the Ansible system. +- /etc/ansible/hosts - You must edit the */etc/ansible/hosts* file with the device information of the switches designated as leaf switches. You may refer to *cnos_rollback_sample_hosts* for a sample configuration. + +Ansible keeps track of all network elements that it manages through a hosts file. Before the execution of a playbook, the hosts file must be set up. + +Open the */etc/ansible/hosts* file with root privileges. Most of the file is commented out by using **#**. You can also comment out the entries you will be adding by using **#**. You need to copy the content of the hosts file for the role into the */etc/ansible/hosts* file. The sample hosts file for the role is located in the main directory. + +``` +[cnos_rollback_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos +10.241.107.40 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos +``` + +**Note:** You need to change the IP addresses to fit your specific topology. You also need to change the `<username>` and `<password>` to the appropriate values used to log into the specific Lenovo network devices. + + +## Example Playbook +--- +<add playbook samples below> + +To execute an Ansible playbook, use the following command: + +``` +ansible-playbook cnos_rollback_sample.yml -vvv +``` + +`-vvv` is an optional verbose command that helps identify what is happening during playbook execution. The playbook for each role is located in the main directory of the solution. + +``` + - name: Module to do rollback of configurations + hosts: cnos_rollback_sample + gather_facts: no + connection: local + roles: + - cnos_rollback_sample +``` + + +## License +--- +<add license information below> +Copyright (C) 2017 Lenovo, Inc. + +This file is part of Ansible + +Ansible is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +Ansible is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with Ansible. If not, see <http://www.gnu.org/licenses/>.
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_rollback/aliases b/ansible_collections/community/network/tests/integration/targets/cnos_rollback/aliases new file mode 100644 index 000000000..be010d923 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_rollback/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_rollback/cnos_rollback_sample_hosts b/ansible_collections/community/network/tests/integration/targets/cnos_rollback/cnos_rollback_sample_hosts new file mode 100644 index 000000000..7865285c7 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_rollback/cnos_rollback_sample_hosts @@ -0,0 +1,17 @@ +# You have to paste this dummy information in /etc/ansible/hosts +# Notes: +# - Comments begin with the '#' character +# - Blank lines are ignored +# - Groups of hosts are delimited by [header] elements +# - You can enter hostnames or ip Addresses +# - A hostname/ip can be a member of multiple groups +# +# In the /etc/ansible/hosts file u have to enter [cnos_rollback_sample] tag +# Following you should specify IP Addresses details +# Please change <username> and <password> with appropriate value for your switch. + +[cnos_rollback_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos rcpath=/root/cnos_config/G8272-running-config.txt + +#Use this in case its TFTP as tftpboot folder is the starting point for tftp +#10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos rcpath=/anil/G8272-running-config.txt diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_rollback/tasks/main.yml b/ansible_collections/community/network/tests/integration/targets/cnos_rollback/tasks/main.yml new file mode 100644 index 000000000..d7fc59996 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_rollback/tasks/main.yml @@ -0,0 +1,30 @@ +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +# This contain sample config Roll Back execution tasks +--- + +- name: Test Rollback of config - Running config + cnos_rollback: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_rollback_{{ inventory_hostname }}_output.txt configType='{{item.configType}}' protocol='{{item.protocol}}' serverip='{{item.serverip}}' rcpath='{{item.rcpath}}' serverusername='{{item.serverusername}}' serverpassword='{{item.serverpassword}}' + with_items: "{{test_rollback_data1}}" + +- name: Test Rollback of config - Startup config + cnos_rollback: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_rollback_{{ inventory_hostname }}_output.txt configType='{{item.configType}}' protocol='{{item.protocol}}' serverip='{{item.serverip}}' rcpath='{{item.rcpath}}' serverusername='{{item.serverusername}}' serverpassword='{{item.serverpassword}}' + with_items: "{{test_rollback_data2}}" + +#Root folder will be different for SFTP/SCP and TFTP +#The following task is commented. +#Before trying this, please change in /etc/ansible/hosts file +#and place an config file with reference to your tftp-root folder + +#- name: Test Rollback of config - Running config - TFTP +# cnos_rollback: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_rollback_{{ inventory_hostname }}_output.txt configType='{{item.configType}}' protocol='{{item.protocol}}' serverip='{{item.serverip}}' rcpath={{ hostvars[inventory_hostname]['rcpath']}} +# with_items: "{{test_rollback_data3}}" + +#- name: Test Rollback of config - Startup config - TFTP +# cnos_rollback: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_rollback_{{ inventory_hostname }}_output.txt configType='{{item.configType}}' protocol='{{item.protocol}}' serverip='{{item.serverip}}' rcpath={{ hostvars[inventory_hostname]['rcpath']}} +# with_items: "{{test_rollback_data4}}" + +# Completed file diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_rollback/vars/main.yml b/ansible_collections/community/network/tests/integration/targets/cnos_rollback/vars/main.yml new file mode 100644 index 000000000..55ac70c14 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_rollback/vars/main.yml @@ -0,0 +1,12 @@ +--- +test_rollback_data1: + - {configType: running-config, protocol: "sftp", serverip: "10.241.106.118", rcpath: "/root/cnos_config/10.241.107.39_running-config.txt", serverusername: "root", serverpassword: "root123"} + +test_rollback_data2: + - {configType: startup-config, protocol: "sftp", serverip: "10.241.106.118", rcpath: "/root/cnos_config/10.241.107.39_startup-config.txt", serverusername: "root", serverpassword: "root123"} + +test_rollback_data3: + - {configType: running-config, protocol: "tftp", serverip: "10.241.106.118"} + +test_rollback_data4: + - {configType: startup-config, protocol: "tftp", serverip: "10.241.106.118"} diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_save/README.md b/ansible_collections/community/network/tests/integration/targets/cnos_save/README.md new file mode 100644 index 000000000..b8aa35623 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_save/README.md @@ -0,0 +1,96 @@ +# Ansible Role: cnos_save_sample - Saving the switch running configuration +--- +<add role description below> + +This role is an example of using the *cnos_save.py* Lenovo module in the context of CNOS switch configuration. This module allows you to copy the running configuration of a switch over its startup configuration. It is recommended to use this module shortly after any major configuration changes so they persist after a switch restart. + +The results of the operation can be viewed in *results* directory. + +For more details, see [Lenovo modules for Ansible: cnos_save](http://systemx.lenovofiles.com/help/index.jsp?topic=%2Fcom.lenovo.switchmgt.ansible.doc%2Fcnos_save.html&cp=0_3_1_0_4_3). + + +## Requirements +--- +<add role requirements information below> + +- Ansible version 2.2 or later ([Ansible installation documentation](http://docs.ansible.com/ansible/intro_installation.html)) +- Lenovo switches running CNOS version 10.2.1.0 or later +- an SSH connection to the Lenovo switch (SSH must be enabled on the network device) + + +## Role Variables +--- +<add role variables information below> + +Available variables are listed below, along with description. + +The following are mandatory inventory variables: + +Variable | Description +--- | --- +`ansible_connection` | Has to be `network_cli` +`ansible_network_os` | Has to be `cnos` +`ansible_ssh_user` | Specifies the username used to log into the switch +`ansible_ssh_pass` | Specifies the password used to log into the switch +`enablePassword` | Configures the password used to enter Global Configuration command mode on the switch (this is an optional parameter) +`hostname` | Searches the hosts file at */etc/ansible/hosts* and identifies the IP address of the switch on which the role is going to be applied +`deviceType` | Specifies the type of device from where the configuration will be backed up (**g8272_cnos** - G8272, **g8296_cnos** - G8296, **g8332_cnos** - G8332, **NE10032** - NE10032, **NE1072T** - NE1072T, **NE1032** - NE1032, **NE1032T** - NE1032T, **NE2572** - NE2572, **NE0152T** - NE0152T) + + +## Dependencies +--- +<add dependencies information below> + +- username.iptables - Configures the firewall and blocks all ports except those needed for web server and SSH access. +- username.common - Performs common server configuration. +- cnos_save.py - This modules needs to be present in the *library* directory of the role. +- cnos.py - This module needs to be present in the PYTHONPATH environment variable set in the Ansible system. +- /etc/ansible/hosts - You must edit the */etc/ansible/hosts* file with the device information of the switches designated as leaf switches. You may refer to *cnos_save_sample_hosts* for a sample configuration. + +Ansible keeps track of all network elements that it manages through a hosts file. Before the execution of a playbook, the hosts file must be set up. + +Open the */etc/ansible/hosts* file with root privileges. Most of the file is commented out by using **#**. You can also comment out the entries you will be adding by using **#**. You need to copy the content of the hosts file for the role into the */etc/ansible/hosts* file. The sample hosts file for the role is located in the main directory. + +``` +[cnos_save_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos +10.241.107.40 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos +``` + +**Note:** You need to change the IP addresses to fit your specific topology. You also need to change the `<username>` and `<password>` to the appropriate values used to log into the specific Lenovo network devices. + + +## Example Playbook +--- +<add playbook samples below> + +To execute an Ansible playbook, use the following command: + +``` +ansible-playbook cnos_save_sample.yml -vvv +``` + +`-vvv` is an optional verbose command that helps identify what is happening during playbook execution. The playbook for each role is located in the main directory of the solution. + +``` + - name: Module to do save configurations + hosts: cnos_save_sample + gather_facts: no + connection: local + roles: + - cnos_save_sample +``` + + +## License +--- +<add license information below> +Copyright (C) 2017 Lenovo, Inc. + +This file is part of Ansible + +Ansible is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +Ansible is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with Ansible. If not, see <http://www.gnu.org/licenses/>.
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_save/aliases b/ansible_collections/community/network/tests/integration/targets/cnos_save/aliases new file mode 100644 index 000000000..be010d923 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_save/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_save/cnos_save_sample_hosts b/ansible_collections/community/network/tests/integration/targets/cnos_save/cnos_save_sample_hosts new file mode 100644 index 000000000..3883f8c05 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_save/cnos_save_sample_hosts @@ -0,0 +1,14 @@ +# You have to paste this dummy information in /etc/ansible/hosts +# Notes: +# - Comments begin with the '#' character +# - Blank lines are ignored +# - Groups of hosts are delimited by [header] elements +# - You can enter hostnames or ip addresses +# - A hostname/ip can be a member of multiple groups +# +# In the /etc/ansible/hosts file u have to enter [cnos_save_sample] tag +# Following you should specify IP Adresses details +# Please change <username> and <password> with appropriate value for your switch. + +[cnos_save_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_save/tasks/main.yml b/ansible_collections/community/network/tests/integration/targets/cnos_save/tasks/main.yml new file mode 100644 index 000000000..5aa770cbf --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_save/tasks/main.yml @@ -0,0 +1,23 @@ +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +# This contain sample template execution tasks +--- +- name: Test Save + cnos_save: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_save_{{ inventory_hostname }}_output.txt + with_items: "{{cnos_save_data1}}" + +- name: Test Reset to factory + cnos_factory: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_save_{{ inventory_hostname }}_output.txt + with_items: "{{cnos_save_data2}}" + +- name: Test Again save + cnos_save: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_save_{{ inventory_hostname }}_output.txt + with_items: "{{cnos_save_data3}}" + +- name: Test Reload + cnos_reload: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_save_{{ inventory_hostname }}_output.txt + with_items: "{{cnos_save_data4}}" +# Completed file diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_save/vars/main.yml b/ansible_collections/community/network/tests/integration/targets/cnos_save/vars/main.yml new file mode 100644 index 000000000..e577a4475 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_save/vars/main.yml @@ -0,0 +1,9 @@ +--- +cnos_save_data1: + - {} +cnos_save_data2: + - {} +cnos_save_data3: + - {} +cnos_save_data4: + - {} diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_showrun/README.md b/ansible_collections/community/network/tests/integration/targets/cnos_showrun/README.md new file mode 100644 index 000000000..be09a8aeb --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_showrun/README.md @@ -0,0 +1,96 @@ +# Ansible Role: cnos_showrun_sample - Displays Running Configuration information +--- +<add role description below> + +This role is an example of using the *cnos_showrun.py* Lenovo module in the context of CNOS switch configuration. This module allows you to view the switch information. It executes the **display running-config** CLI command on a switch and returns a file containing all the system information of the target network device. + +The results of the operation can be viewed in results directory. + +For more details, see [Lenovo modules for Ansible: cnos_showrun](http://systemx.lenovofiles.com/help/index.jsp?topic=%2Fcom.lenovo.switchmgt.ansible.doc%2Fcnos_showrun.html&cp=0_3_1_0_4_0). + + +## Requirements +--- +<add role requirements information below> + +- Ansible version 2.2 or later ([Ansible installation documentation](http://docs.ansible.com/ansible/intro_installation.html)) +- Lenovo switches running CNOS version 10.2.1.0 or later +- an SSH connection to the Lenovo switch (SSH must be enabled on the network device) + + +## Role Variables +--- +<add role variables information below> + +Available variables are listed below, along with description. + +The following are mandatory inventory variables: + +Variable | Description +--- | --- +`ansible_connection` | Has to be `network_cli` +`ansible_network_os` | Has to be `cnos` +`ansible_ssh_user` | Specifies the username used to log into the switch +`ansible_ssh_pass` | Specifies the password used to log into the switch +`enablePassword` | Configures the password used to enter Global Configuration command mode on the switch (this is an optional parameter) +`hostname` | Searches the hosts file at */etc/ansible/hosts* and identifies the IP address of the switch on which the role is going to be applied +`deviceType` | Specifies the type of device from where the configuration will be backed up (**g8272_cnos** - G8272, **g8296_cnos** - G8296, **g8332_cnos** - G8332, **NE10032** - NE10032, **NE1072T** - NE1072T, **NE1032** - NE1032, **NE1032T** - NE1032T, **NE2572** - NE2572, **NE0152T** - NE0152T) + + +## Dependencies +--- +<add dependencies information below> + +- username.iptables - Configures the firewall and blocks all ports except those needed for web server and SSH access. +- username.common - Performs common server configuration. +- cnos_showrun.py - This modules needs to be present in the *library* directory of the role. +- cnos.py - This module needs to be present in the PYTHONPATH environment variable set in the Ansible system. +- /etc/ansible/hosts - You must edit the */etc/ansible/hosts* file with the device information of the switches designated as leaf switches. You may refer to *cnos_showrun_sample_hosts* for a sample configuration. + +Ansible keeps track of all network elements that it manages through a hosts file. Before the execution of a playbook, the hosts file must be set up. + +Open the */etc/ansible/hosts* file with root privileges. Most of the file is commented out by using **#**. You can also comment out the entries you will be adding by using **#**. You need to copy the content of the hosts file for the role into the */etc/ansible/hosts* file. The hosts file for the role is located in the main directory of the role. + +``` +[cnos_showrun_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos +10.241.107.40 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos +``` + +**Note:** You need to change the IP addresses to fit your specific topology. You also need to change the `<username>` and `<password>` to the appropriate values used to log into the specific Lenovo network devices. + + +## Example Playbook +--- +<add playbook samples below> + +To execute an Ansible playbook, use the following command: + +``` +ansible-playbook cnos_showrun_sample.yml -vvv +``` + +`-vvv` is an optional verbose command that helps identify what is happening during playbook execution. The playbook for each role is located in the main directory of the solution. + +``` + - name: Module to do Show Sys Info + hosts: cnos_showrun_sample + gather_facts: no + connection: local + roles: + - cnos_showrun_sample +``` + + +## License +--- +<add license information below> +Copyright (C) 2017 Lenovo, Inc. + +This file is part of Ansible + +Ansible is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +Ansible is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with Ansible. If not, see <http://www.gnu.org/licenses/>.
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_showrun/aliases b/ansible_collections/community/network/tests/integration/targets/cnos_showrun/aliases new file mode 100644 index 000000000..be010d923 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_showrun/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_showrun/cnos_showrun_sample_hosts b/ansible_collections/community/network/tests/integration/targets/cnos_showrun/cnos_showrun_sample_hosts new file mode 100644 index 000000000..8257765dc --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_showrun/cnos_showrun_sample_hosts @@ -0,0 +1,14 @@ +# You have to paste this dummy information in /etc/ansible/hosts +# Notes: +# - Comments begin with the '#' character +# - Blank lines are ignored +# - Groups of hosts are delimited by [header] elements +# - You can enter hostnames or ip Addresses +# - A hostname/ip can be a member of multiple groups +# +# In the /etc/ansible/hosts file u have to enter [cnos_showrun_sample] tag +# Following you should specify IP Addresses details +# Please change <username> and <password> with appropriate value for your switch. + +[cnos_showrun_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_showrun/tasks/main.yml b/ansible_collections/community/network/tests/integration/targets/cnos_showrun/tasks/main.yml new file mode 100644 index 000000000..ebc400286 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_showrun/tasks/main.yml @@ -0,0 +1,11 @@ +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +# This contain sample show rnunning config tasks +--- +- name: Test Running Configurations + cnos_showrun: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} enablePassword='{{item.enablePassword}}' outputfile=./results/cnos_showrun_{{ inventory_hostname }}_output.txt + with_items: "{{test_showrun_data}}" +# Completed file diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_showrun/vars/main.yml b/ansible_collections/community/network/tests/integration/targets/cnos_showrun/vars/main.yml new file mode 100644 index 000000000..892e75c5f --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_showrun/vars/main.yml @@ -0,0 +1,3 @@ +--- +test_showrun_data: + - {enablePassword: "anil"} diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_static_route/aliases b/ansible_collections/community/network/tests/integration/targets/cnos_static_route/aliases new file mode 100644 index 000000000..be010d923 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_static_route/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_static_route/cnos_static_route_sample_hosts b/ansible_collections/community/network/tests/integration/targets/cnos_static_route/cnos_static_route_sample_hosts new file mode 100644 index 000000000..b67ecd3bf --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_static_route/cnos_static_route_sample_hosts @@ -0,0 +1,14 @@ +# You have to paste this dummy information in /etc/ansible/hosts +# Notes: +# - Comments begin with the '#' character +# - Blank lines are ignored +# - Groups of hosts are delimited by [header] elements +# - You can enter hostnames or ip Addresses +# - A hostname/ip can be a member of multiple groups +# +# In the /etc/ansible/hosts file u have to enter [cnos_static_route_sample] tag +# Following you should specify IP Addresses details +# Please change <username> and <password> with appropriate value for your switch. + +[cnos_static_route_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_static_route/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_static_route/defaults/main.yaml new file mode 100644 index 000000000..5f709c5aa --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_static_route/defaults/main.yaml @@ -0,0 +1,2 @@ +--- +testcase: "*" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_static_route/tasks/cli.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_static_route/tasks/cli.yaml new file mode 100644 index 000000000..303af4076 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_static_route/tasks/cli.yaml @@ -0,0 +1,22 @@ +--- +- name: collect all cli test cases + find: + paths: "{{ role_path }}/tests/cli" + patterns: "{{ testcase }}.yaml" + register: test_cases + delegate_to: localhost + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test cases (connection=network_cli) + include: "{{ test_case_to_run }}" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run + +- name: run test case (connection=local) + include: "{{ test_case_to_run }} ansible_connection=local" + with_first_found: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_static_route/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_static_route/tasks/main.yaml new file mode 100644 index 000000000..fa3dd7fb2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_static_route/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: cli.yaml, tags: ['cli'] } diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_static_route/tests/cli/basic.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_static_route/tests/cli/basic.yaml new file mode 100644 index 000000000..3aa73c08e --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_static_route/tests/cli/basic.yaml @@ -0,0 +1,136 @@ +--- +#- debug: msg="START cnos cli/cnos_static_route.yaml on connection={{ ansible_connection }}" + +- name: Clear all static routes + cnos_static_route: &delete_all + aggregate: + - { prefix: 10.241.107.0 } + - { prefix: 10.241.106.0 } + - { prefix: 10.241.105.0 } + - { prefix: 10.241.108.0 } + mask: 255.255.255.0 + next_hop: 10.241.100.100 + state: absent + +- name: create static route + cnos_static_route: + prefix: 10.241.107.0 + mask: 255.255.255.0 + next_hop: 10.241.100.100 + state: present + register: result + +- assert: + that: + - 'result.changed == true' + - 'result.commands == ["ip route 10.241.107.0 255.255.255.0 10.241.100.100 1"]' + +- name: Verify idempotence with default admin_distance + cnos_static_route: + prefix: 10.241.107.0 + mask: 255.255.255.0 + next_hop: 10.241.100.100 + admin_distance: 1 + state: present + register: result + +- assert: + that: + - 'result.changed == true' + +- name: modify admin distance of static route + cnos_static_route: &admin2 + prefix: 10.241.107.0 + mask: 255.255.255.0 + next_hop: 10.241.100.100 + admin_distance: 2 + state: present + register: result + +- assert: + that: + - 'result.changed == true' + - 'result.commands == ["ip route 10.241.107.0 255.255.255.0 10.241.100.100 2"]' + +- name: modify admin distance of static route again (idempotent) + cnos_static_route: *admin2 + register: result + +- assert: + that: + - 'result.changed == true' + +- name: Verify idempotence with unspecified admin_distance + cnos_static_route: + prefix: 10.241.107.0 + mask: 255.255.255.0 + next_hop: 10.241.100.100 + state: present + register: result + +- assert: + that: + - 'result.changed == true' + +- name: delete static route + cnos_static_route: &delete + prefix: 10.241.107.0 + mask: 255.255.255.0 + next_hop: 10.241.100.100 + state: absent + register: result + +- assert: + that: + - 'result.changed == true' + - 'result.commands == ["no ip route 10.241.107.0 255.255.255.0 10.241.100.100 1"]' + +- name: delete static route again (idempotent) + cnos_static_route: *delete + register: result + +- assert: + that: + - 'result.changed == true' + +- name: Add static route aggregates + cnos_static_route: + aggregate: + - { prefix: 10.241.106.0 } + - { prefix: 10.241.105.0 } + mask: 255.255.255.0 + next_hop: 10.241.100.100 + state: present + register: result + +- assert: + that: + - 'result.changed == true' + - 'result.commands == ["ip route 10.241.106.0 255.255.255.0 10.241.100.100 1", "ip route 10.241.105.0 255.255.255.0 10.241.100.100 1"]' + +- name: Add and remove static route aggregates with overrides + cnos_static_route: + aggregate: + - { prefix: 10.241.106.0 } + - { prefix: 10.241.105.0, state: absent } + - { prefix: 10.241.108.0 } + mask: 255.255.255.0 + next_hop: 10.241.100.100 + state: present + register: result + +- assert: + that: + - 'result.changed == true' + - 'result.commands == ["ip route 10.241.106.0 255.255.255.0 10.241.100.100 1", "no ip route 10.241.105.0 255.255.255.0 10.241.100.100 1", "ip route 10.241.108.0 255.255.255.0 10.241.100.100 1"]' + +- name: Remove static route aggregates + cnos_static_route: *delete_all + register: result + +- assert: + that: + - 'result.changed == true' + - 'result.commands == ["no ip route 10.241.107.0 255.255.255.0 10.241.100.100 1","no ip route 10.241.106.0 255.255.255.0 10.241.100.100 1","no ip route 10.241.105.0 255.255.255.0 10.241.100.100 1" ,"no ip route 10.241.108.0 255.255.255.0 10.241.100.100 1"]' + +#- debug: msg="END cnos cli/cnos_static_route.yaml on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_system/aliases b/ansible_collections/community/network/tests/integration/targets/cnos_system/aliases new file mode 100644 index 000000000..cdb503335 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_system/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_system/cnos_system_sample_hosts b/ansible_collections/community/network/tests/integration/targets/cnos_system/cnos_system_sample_hosts new file mode 100644 index 000000000..a37a28701 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_system/cnos_system_sample_hosts @@ -0,0 +1,14 @@ +# You have to paste this dummy information in /etc/ansible/hosts +# Notes: +# - Comments begin with the '#' character +# - Blank lines are ignored +# - Groups of hosts are delimited by [header] elements +# - You can enter hostnames or ip Addresses +# - A hostname/ip can be a member of multiple groups +# +# In the /etc/ansible/hosts file u have to enter [cnos_system_sample] tag +# Following you should specify IP Addresses details +# Please change <username> and <password> with appropriate value for your switch. + +[cnos_system_sample] +<ip address> ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_system/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_system/defaults/main.yaml new file mode 100644 index 000000000..5f709c5aa --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_system/defaults/main.yaml @@ -0,0 +1,2 @@ +--- +testcase: "*" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_system/tasks/cli.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_system/tasks/cli.yaml new file mode 100644 index 000000000..d224109f5 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_system/tasks/cli.yaml @@ -0,0 +1,33 @@ +--- +- name: collect common test cases + find: + paths: "{{ role_path }}/tests/common" + patterns: "{{ testcase }}.yaml" + connection: local + register: test_cases + +- name: collect cli test cases + find: + paths: "{{ role_path }}/tests/cli" + patterns: "{{ testcase }}.yaml" + connection: local + register: cli_cases + +- set_fact: + test_cases: + files: "{{ test_cases.files + cli_cases.files }}" + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test cases (connection=network_cli) + include: "{{ test_case_to_run }} ansible_connection=network_cli connection={{ cli }}" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run + +- name: run test case (connection=local) + include: "{{ test_case_to_run }} ansible_connection=local" + with_first_found: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_system/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_system/tasks/main.yaml new file mode 100644 index 000000000..fa3dd7fb2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_system/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: cli.yaml, tags: ['cli'] } diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_system/tests/cli/net_system.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_system/tests/cli/net_system.yaml new file mode 100644 index 000000000..9b1db3e04 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_system/tests/cli/net_system.yaml @@ -0,0 +1,34 @@ +--- +- debug: msg="START cnos cli/net_system.yaml on connection={{ ansible_connection }}" + +# Add minimal testcase to check args are passed correctly to +# implementation module and module run is successful. + +- name: setup + cnos_config: + lines: + - no ip domain-list ansible.com vrf default + - no ip domain-list redhat.com vrf default + match: none + +- name: configure domain_list using platform agnostic module + net_system: + domain_search: + - ansible.com + - redhat.com + register: result + +- assert: + that: + - result.changed == true + - "'ip domain-list ansible.com vrf default' in result.commands" + - "'ip domain-list redhat.com vrf default' in result.commands" + +- name: setup + cnos_config: + lines: + - no ip domain-list ansible.com vrf default + - no ip domain-list redhat.com vrf default + match: none + +- debug: msg="END cnos cli/net_system.yaml on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_system/tests/cli/set_domain_list.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_system/tests/cli/set_domain_list.yaml new file mode 100644 index 000000000..b35ae6b4f --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_system/tests/cli/set_domain_list.yaml @@ -0,0 +1,111 @@ +--- +- debug: msg="START cli/set_domain_list.yaml" + +- name: setup + cnos_config: + lines: + - no ip domain-list ansible.com vrf default + - no ip domain-list redhat.com vrf default + match: none + +- name: configure domain_list + cnos_system: + domain_search: + - ansible.com + - redhat.com + register: result + +- assert: + that: + - result.changed == true + - "'ip domain-list ansible.com vrf default' in result.commands" + - "'ip domain-list redhat.com vrf default' in result.commands" + +- name: verify domain_list + cnos_system: + domain_search: + - ansible.com + - redhat.com + register: result + +- assert: + that: + - result.changed == true + +- name: remove one entry + cnos_system: + domain_search: + - ansible.com + register: result + +- assert: + that: + - result.changed == true + - "'no ip domain-list redhat.com vrf default' in result.commands" + +- name: verify remove one entry + cnos_system: + domain_search: + - ansible.com + register: result + +- assert: + that: + - result.changed == true + +- name: add one entry + cnos_system: + domain_search: + - ansible.com + - redhat.com + register: result + +- assert: + that: + - result.changed == true + - "'ip domain-list redhat.com vrf default' in result.commands" + +- name: verify add one entry + cnos_system: + domain_search: + - ansible.com + - redhat.com + register: result + +- assert: + that: + - result.changed == true + +- name: add and remove one entry + cnos_system: + domain_search: + - ansible.com + - eng.ansible.com + register: result + +- assert: + that: + - result.changed == true + - "'no ip domain-list redhat.com vrf default' in result.commands" + - "'ip domain-list eng.ansible.com vrf default' in result.commands" + +- name: verify add and remove one entry + cnos_system: + domain_search: + - ansible.com + - eng.ansible.com + register: result + +- assert: + that: + - result.changed == true + +- name: teardown + cnos_config: + lines: + - no ip domain-list ansible.com vrf default + - no ip domain-list redhat.com vrf default + - no ip domain-list eng.ansible.com vrf default + match: none + +- debug: msg="END cli/set_domain_search.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_system/tests/cli/set_domain_name.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_system/tests/cli/set_domain_name.yaml new file mode 100644 index 000000000..d64dca527 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_system/tests/cli/set_domain_name.yaml @@ -0,0 +1,32 @@ +--- +- debug: msg="START cli/set_domain_name.yaml" + +- name: setup + cnos_config: + lines: no ip domain-name eng.ansible.com vrf default + match: none + +- name: configure domain_name + cnos_system: + domain_name: eng.ansible.com + register: result + +- assert: + that: + - "result.changed == true" + +- name: verify domain_name + cnos_system: + domain_name: eng.ansible.com + register: result + +- assert: + that: + - "result.changed == true" + +- name: teardown + cnos_config: + lines: no ip domain-name eng.ansible.com vrf default + match: none + +- debug: msg="END cli/set_domain_name.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_system/tests/cli/set_name_servers.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_system/tests/cli/set_name_servers.yaml new file mode 100644 index 000000000..1f29a51a8 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_system/tests/cli/set_name_servers.yaml @@ -0,0 +1,73 @@ +--- +- debug: msg="START cli/set_name_servers.yaml" + +- name: setup + cnos_config: &reset + lines: + - no ip name-server 10.241.107.1 vrf default + - no ip name-server 10.241.107.2 vrf default + - no ip name-server 10.241.107.3 vrf default + match: none + +- name: configure name_servers + cnos_system: + name_servers: + - 10.241.107.1 + - 10.241.107.2 + - 10.241.107.3 + register: result + +- assert: + that: + - result.changed == true + - "'ip name-server 10.241.107.1 vrf default' in result.commands" + - "'ip name-server 10.241.107.2 vrf default' in result.commands" + - "'ip name-server 10.241.107.3 vrf default' in result.commands" + +- name: verify name_servers + cnos_system: + name_servers: + - 10.241.107.1 + - 10.241.107.2 + - 10.241.107.3 + register: result + +- assert: + that: + - result.changed == true + +- name: remove one + cnos_system: + name_servers: + - 10.241.107.1 + - 10.241.107.2 + register: result + +- assert: + that: + - result.changed == true +# - result.commands|length == 1 + - "'no ip name-server 10.241.107.3 vrf default' in result.commands" + +- name: default name server + cnos_system: &defns + name_servers: default + register: result + +- assert: + that: + - result.changed == true + +- name: Idempotent check + cnos_system: *defns + register: result + +- assert: + that: + - result.changed == false + +- name: teardown + cnos_config: *reset + ignore_errors: yes + +- debug: msg="END cli/set_name_servers.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_system/tests/common/sanity.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_system/tests/common/sanity.yaml new file mode 100644 index 000000000..a97fb8bc1 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_system/tests/common/sanity.yaml @@ -0,0 +1,122 @@ +--- +- debug: msg="START connection={{ ansible_connection }}/sanity.yaml" +- debug: msg="Using provider={{ connection.transport }}" + when: ansible_connection == "local" + +- block: + - name: remove configuration + cnos_system: &remove + state: absent + register: result + ignore_errors: yes + + - name: configure lookup_enabled + cnos_system: &dlo + lookup_enabled: true + state: present + register: result + + - name: configure hostname and domain-name + cnos_system: &hostname + hostname: switch + domain_name: test.example.com + register: result + + - assert: &true + that: + - "result.changed == true" + + - name: Idempotence check + cnos_system: *hostname + register: result + + - assert: &false + that: + - "result.changed == true" + + - name: configure name servers + cnos_system: &ns + name_servers: + - 8.8.8.8 + - 8.8.4.4 + register: result + + - assert: *true + + - name: Idempotence check + cnos_system: *ns + register: result + + - assert: *false + + - name: configure name servers with VRF support + cnos_system: &nsv + name_servers: + - { server: 8.8.8.8, vrf: management } + - { server: 8.8.4.4, vrf: management } + register: result + + - assert: *true + + - name: Idempotence check + cnos_system: *nsv + register: result + + - assert: + that: + - "result.changed == false" + + - name: configure lookup_enabled1 + cnos_system: &ndlo + lookup_enabled: false + register: result + + - assert: *true + + - name: Idempotence check + cnos_system: *ndlo + register: result + + - assert: + that: + - "result.changed == false" + + - name: configure lookup_enabled2 + cnos_system: *dlo + register: result + + - assert: *true + + - name: Idempotence check + cnos_system: *dlo + register: result + + - assert: + that: + - "result.changed == false" + + - name: default configuration + cnos_system: &default + hostname: default + domain_name: default + name_servers: default + register: result + + - assert: *true + + - name: Idempotence check + cnos_system: *default + register: result + + - assert: + that: + - "result.changed == false" + + always: + - name: remove configuration + cnos_system: *remove + + - name: Re-configure hostname + cnos_system: *hostname + +- debug: msg="END connection={{ ansible_connection }}/sanity.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_system/tests/common/set_hostname.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_system/tests/common/set_hostname.yaml new file mode 100644 index 000000000..67f52bf3a --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_system/tests/common/set_hostname.yaml @@ -0,0 +1,36 @@ +--- +- debug: msg="START connection={{ ansible_connection }}/set_hostname.yaml" +- debug: msg="Using provider={{ connection.transport }}" + when: ansible_connection == "local" + +- block: + - name: setup + cnos_config: + lines: "hostname switch" + match: none + + - name: configure hostname + cnos_system: + hostname: foo + register: result + + - assert: + that: + - "result.changed == true" + + - name: verify hostname + cnos_system: + hostname: foo + register: result + + - assert: + that: + - "result.changed == false" + + always: + - name: teardown + cnos_config: + lines: "hostname switch" + match: none + +- debug: msg="END connection={{ ansible_connection }}/set_hostname.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_template/README.md b/ansible_collections/community/network/tests/integration/targets/cnos_template/README.md new file mode 100644 index 000000000..4532d5cdc --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_template/README.md @@ -0,0 +1,112 @@ +# Ansible Role: cnos_template_sample - Manages switch configuration using templates +--- +<add role description below> + +This role is an example of using the *cnos_template.py* Lenovo module in the context of CNOS switch configuration. This module allows you to work with the running configuration of a switch. It provides a way to execute a set of CNOS commands on a switch by evaluating the current running configuration and executing the commands only if the specific settings have not been already configured. + +The configuration source can be a set of commands or a template written in the Jinja2 templating language.# + +The results of the operation can be viewed in *results* directory. + +For more details, see [Lenovo modules for Ansible: cnos_template](http://systemx.lenovofiles.com/help/index.jsp?topic=%2Fcom.lenovo.switchmgt.ansible.doc%2Fcnos_template.html&cp=0_3_1_0_4_10). + + +## Requirements +--- +<add role requirements information below> + +- Ansible version 2.2 or later ([Ansible installation documentation](http://docs.ansible.com/ansible/intro_installation.html)) +- Lenovo switches running CNOS version 10.2.1.0 or later +- an SSH connection to the Lenovo switch (SSH must be enabled on the network device) + + +## Role Variables +--- +<add role variables information below> + +Available variables are listed below, along with description. + +The following are mandatory inventory variables: + +Variable | Description +--- | --- +`ansible_connection` | Has to be `network_cli` +`ansible_network_os` | Has to be `cnos` +`ansible_ssh_user` | Specifies the username used to log into the switch +`ansible_ssh_pass` | Specifies the password used to log into the switch +`enablePassword` | Configures the password used to enter Global Configuration command mode on the switch (this is an optional parameter) +`hostname` | Searches the hosts file at */etc/ansible/hosts* and identifies the IP address of the switch on which the role is going to be applied +`deviceType` | Specifies the type of device from where the configuration will be backed up(**g8272_cnos** - G8272, **g8296_cnos** - G8296, **g8332_cnos** - G8332, **NE10032** - NE10032, **NE1072T** - NE1072T, **NE1032** - NE1032, **NE1032T** - NE1032T, **NE2572** - NE2572, **NE0152T** - NE0152T) + +The values of the variables used need to be modified to fit the specific scenario in which you are deploying the solution. To change the values of the variables, you need to visits the *vars* directory of each role and edit the *main.yml* file located there. The values stored in this file will be used by Ansible when the template is executed. + +The syntax of *main.yml* file for variables is the following: + +``` +<template variable>:<value> +``` + +You will need to replace the `<value>` field with the value that suits your topology. The `<template variable>` fields are taken from the template and it is recommended that you leave them unchanged. + +Variable | Description +--- | --- +`commandfile` | Specifies the path to the CNOS command file which needs to be applied + + +## Dependencies +--- +<add dependencies information below> + +- username.iptables - Configures the firewall and blocks all ports except those needed for web server and SSH access. +- username.common - Performs common server configuration. +- cnos_template.py - This modules needs to be present in the *library* directory of the role. +- cnos.py - This module needs to be present in the PYTHONPATH environment variable set in the Ansible system. +- /etc/ansible/hosts - You must edit the */etc/ansible/hosts* file with the device information of the switches designated as leaf switches. You may refer to *cnos_template_sample_hosts* for a sample configuration. + +Ansible keeps track of all network elements that it manages through a hosts file. Before the execution of a playbook, the hosts file must be set up. + +Open the */etc/ansible/hosts* file with root privileges. Most of the file is commented out by using **#**. You can also comment out the entries you will be adding by using **#**. You need to copy the content of the hosts file for the role into the */etc/ansible/hosts* file. The sample hosts file for the role is located in the main directory. + +``` +[cnos_template_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos +10.241.107.40 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos +``` + +**Note:** You need to change the IP addresses to fit your specific topology. You also need to change the `<username>` and `<password>` to the appropriate values used to log into the specific Lenovo network devices. + + +## Example Playbook +--- +<add playbook samples below> + +To execute an Ansible playbook, use the following command: + +``` +ansible-playbook cnos_template_sample.yml -vvv +``` + +`-vvv` is an optional verbose command that helps identify what is happening during playbook execution. The playbook for each role is located in the main directory of the solution. + +``` + - name: Module to do some template configurations + hosts: cnos_template_sample + gather_facts: no + connection: local + roles: + - cnos_template_sample +``` + + +## License +--- +<add license information below> +Copyright (C) 2017 Lenovo, Inc. + +This file is part of Ansible + +Ansible is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +Ansible is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with Ansible. If not, see <http://www.gnu.org/licenses/>.
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_template/aliases b/ansible_collections/community/network/tests/integration/targets/cnos_template/aliases new file mode 100644 index 000000000..be010d923 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_template/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_template/cnos_template_sample_hosts b/ansible_collections/community/network/tests/integration/targets/cnos_template/cnos_template_sample_hosts new file mode 100644 index 000000000..1e0296ec9 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_template/cnos_template_sample_hosts @@ -0,0 +1,14 @@ +# You have to paste this dummy information in /etc/ansible/hosts +# Notes: +# - Comments begin with the '#' character +# - Blank lines are ignored +# - Groups of hosts are delimited by [header] elements +# - You can enter hostnames or ip Addresses +# - A hostname/ip can be a member of multiple groups +# +# In the /etc/ansible/hosts file u have to enter [cnos_template_sample] tag +# Following you should specify IP Addresses details +# Please change <username> and <password> with appropriate value for your switch. + +[cnos_template_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_template/tasks/main.yml b/ansible_collections/community/network/tests/integration/targets/cnos_template/tasks/main.yml new file mode 100644 index 000000000..b26b89748 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_template/tasks/main.yml @@ -0,0 +1,18 @@ +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +# This contain sample template execution tasks +--- +- name: Creates directory + file: path=./commands state=directory + +- name: Replace Config CLI command template with values + template: src=demo_template.j2 dest=./commands/cnos_template_{{ inventory_hostname }}_commands.txt + with_items: "{{cnos_template_data}}" + +- name: Applying CLI commands on Switches + cnos_template: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} commandfile=./commands/cnos_template_{{ inventory_hostname }}_commands.txt outputfile=./results/cnos_template_{{ inventory_hostname }}_output.txt + with_items: "{{cnos_template_data}}" +# Completed file diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_template/templates/demo_template.j2 b/ansible_collections/community/network/tests/integration/targets/cnos_template/templates/demo_template.j2 new file mode 100644 index 000000000..63a47a641 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_template/templates/demo_template.j2 @@ -0,0 +1,13 @@ +#Demo Template +vlan {{item.vlanid1}} +name anil +exit +interface ethernet {{item.slot_chassis_number1}} +description anil +mtu 600 +exit +interface port-channel {{item.portchannel_interface_number1}} +shut +lacp suspend-individual +no shut +exit diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_template/vars/main.yml b/ansible_collections/community/network/tests/integration/targets/cnos_template/vars/main.yml new file mode 100644 index 000000000..51223679f --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_template/vars/main.yml @@ -0,0 +1,3 @@ +--- +cnos_template_data: + - {vlanid1: 13, slot_chassis_number1: "1/2", portchannel_interface_number1: 100, portchannel_mode1: "active"} diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_user/aliases b/ansible_collections/community/network/tests/integration/targets/cnos_user/aliases new file mode 100644 index 000000000..cdb503335 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_user/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_user/cnos_user_sample_hosts b/ansible_collections/community/network/tests/integration/targets/cnos_user/cnos_user_sample_hosts new file mode 100644 index 000000000..0d18ec306 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_user/cnos_user_sample_hosts @@ -0,0 +1,14 @@ +# You have to paste this dummy information in /etc/ansible/hosts +# Notes: +# - Comments begin with the '#' character +# - Blank lines are ignored +# - Groups of hosts are delimited by [header] elements +# - You can enter hostnames or ip Addresses +# - A hostname/ip can be a member of multiple groups +# +# In the /etc/ansible/hosts file u have to enter [cnos_user_sample] tag +# Following you should specify IP Addresses details +# Please change <username> and <password> with appropriate value for your switch. + +[cnos_user_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=admin ansible_ssh_pass=admin diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_user/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_user/defaults/main.yaml new file mode 100644 index 000000000..5f709c5aa --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_user/defaults/main.yaml @@ -0,0 +1,2 @@ +--- +testcase: "*" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_user/tasks/cli.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_user/tasks/cli.yaml new file mode 100644 index 000000000..86775e45b --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_user/tasks/cli.yaml @@ -0,0 +1,27 @@ +--- +- name: collect common test cases + find: + paths: "{{ role_path }}/tests/common" + patterns: "{{ testcase }}.yaml" + connection: local + register: test_cases + +- name: collect cli test cases + find: + paths: "{{ role_path }}/tests/cli" + patterns: "{{ testcase }}.yaml" + connection: local + register: cli_cases + +- set_fact: + test_cases: + files: "{{ test_cases.files + cli_cases.files }}" + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test cases (connection=network_cli) + include: "{{ test_case_to_run }} ansible_connection=network_cli connection={{ cli }}" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_user/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_user/tasks/main.yaml new file mode 100644 index 000000000..fa3dd7fb2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_user/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: cli.yaml, tags: ['cli'] } diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_user/tests/common/basic.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_user/tests/common/basic.yaml new file mode 100644 index 000000000..601e88814 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_user/tests/common/basic.yaml @@ -0,0 +1,58 @@ +--- +- debug: msg="START connection={{ ansible_connection }} cnos_user basic test" + +- name: Remove old entries of user + cnos_user: + aggregate: + - { name: ansibletest1 } + - { name: ansibletest2 } + - { name: ansibletest3 } +# provider: "{{ connection }}" + configured_password: admin + state: absent + +# Start tests +- name: Create user + cnos_user: + name: ansibletest1 + roles: network-operator +# provider: "{{ connection }}" + state: present + register: result + +- assert: + that: + - 'result.changed == true' + - '"username" in result.commands[0]' + - '"role network-operator" in result.commands[1]' + +- name: Collection of users + cnos_user: + aggregate: + - { name: ansibletest2 } + - { name: ansibletest3 } +# provider: "{{ connection }}" + state: present + roles: network-admin + register: result + +- assert: + that: + - 'result.changed == true' + +- name: tearDown + cnos_user: + aggregate: + - { name: ansibletest1 } + - { name: ansibletest2 } + - { name: ansibletest3 } +# provider: "{{ connection }}" + state: absent + register: result + +- assert: + that: + - 'result.changed == true' + - '"no username" in result.commands[0]' + +- debug: msg="END connection={{ ansible_connection }} cnos_user basic test" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_user/tests/common/sanity.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_user/tests/common/sanity.yaml new file mode 100644 index 000000000..7e86e4faa --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_user/tests/common/sanity.yaml @@ -0,0 +1,84 @@ +--- +- debug: msg="START connection={{ ansible_connection }} cnos_user parameter test" + + +- block: + - name: Create user + cnos_user: &configure + name: netend + configured_password: Hello!234 + update_password: on_create + roles: network-operator + state: present + register: result + + - assert: &true + that: + - 'result.changed == true' + + - block: + - name: conf idempotency + cnos_user: *configure + register: result + + - assert: &false + that: + - 'result.changed == false' + + - name: Remove user + cnos_user: &remove + name: netend + state: absent + register: result + + - assert: *true + + - name: remove idempotency + cnos_user: *remove + register: result + + - assert: *false + + - name: Collection of users + cnos_user: &coll + users: + - name: test1 + - name: test2 + configured_password: Hello!234 + update_password: on_create + state: present + roles: + - network-admin + - network-operator + register: result + + - assert: *true + + - block: + - name: users idempotency + cnos_user: *coll + register: result + + - assert: *true + + - name: tearDown + cnos_user: &tear + name: ansible + purge: yes + register: result + + - assert: *true + + - name: teardown idempotency + cnos_user: *tear + register: result + + - assert: *false + + always: + - name: tearDown + cnos_user: *tear + register: result + ignore_errors: yes + +- debug: msg="END connection={{ ansible_connection }} cnos_user parameter test" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_vlag/README.md b/ansible_collections/community/network/tests/integration/targets/cnos_vlag/README.md new file mode 100644 index 000000000..526d38fcb --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_vlag/README.md @@ -0,0 +1,115 @@ +# Ansible Role: cnos_vlag_sample - Switch vLAG configuration +--- +<add role description below> + +This role is an example of using the *cnos_vlag.py* Lenovo module in the context of CNOS switch configuration. This module allows you to work with virtual Link Aggregation Groups (vLAG) related configurations. The operators used are overloaded to ensure control over switch vLAG configurations. + +Apart from the regular device connection related attributes, there are four vLAG arguments which are overloaded variables that will perform further configurations. They are *vlagArg1*, *vlagArg2*, *vlagArg3*, and *vlagArg4*. + +The results of the operation can be viewed in *results* directory. + +For more details, see [Lenovo modules for Ansible: cnos_vlag](http://systemx.lenovofiles.com/help/index.jsp?topic=%2Fcom.lenovo.switchmgt.ansible.doc%2Fcnos_vlag.html&cp=0_3_1_0_4_15). + + +## Requirements +--- +<add role requirements information below> + +- Ansible version 2.2 or later ([Ansible installation documentation](http://docs.ansible.com/ansible/intro_installation.html)) +- Lenovo switches running CNOS version 10.2.1.0 or later +- an SSH connection to the Lenovo switch (SSH must be enabled on the network device) + + +## Role Variables +--- +<add role variables information below> + +Available variables are listed below, along with description. + +The following are mandatory inventory variables: + +Variable | Description +--- | --- +`ansible_connection` | Has to be `network_cli` +`ansible_network_os` | Has to be `cnos` +`ansible_ssh_user` | Specifies the username used to log into the switch +`ansible_ssh_pass` | Specifies the password used to log into the switch +`enablePassword` | Configures the password used to enter Global Configuration command mode on the switch (this is an optional parameter) +`hostname` | Searches the hosts file at */etc/ansible/hosts* and identifies the IP address of the switch on which the role is going to be applied +`deviceType` | Specifies the type of device from where the configuration will be backed up (**g8272_cnos** - G8272, **g8296_cnos** - G8296, **g8332_cnos** - G8332, **NE10032** - NE10032, **NE1072T** - NE1072T, **NE1032** - NE1032, **NE1032T** - NE1032T, **NE2572** - NE2572, **NE0152T** - NE0152T) + +The values of the variables used need to be modified to fit the specific scenario in which you are deploying the solution. To change the values of the variables, you need to visits the *vars* directory of each role and edit the *main.yml* file located there. The values stored in this file will be used by Ansible when the template is executed. + +The syntax of *main.yml* file for variables is the following: + +``` +<template variable>:<value> +``` + +You will need to replace the `<value>` field with the value that suits your topology. The `<template variable>` fields are taken from the template and it is recommended that you leave them unchanged. + +Variable | Description +--- | --- +`vlagArg1` | This is an overloaded BGP variable. Please refer to the [cnos_vlag module documentation](http://ralfss28.labs.lenovo.com:5555/help/topic/com.lenovo.switchmgt.ansible.doc/cnos_template.html?cp=0_3_1_0_2_10) for detailed information on usage. The values of these variables depend on the configuration context and the choices are the following: **enable**, **auto-recovery**, **config-consistency**, **isl**, **mac-address-table**, **peer-gateway**, **priority**, **startup-delay**, **tier-id**, **vrrp**, **instance**, **hlthchk**. +`vlagArg2` | This is an overloaded BGP variable. Please refer to the [cnos_vlag module documentation](http://ralfss28.labs.lenovo.com:5555/help/topic/com.lenovo.switchmgt.ansible.doc/cnos_template.html?cp=0_3_1_0_2_10) for detailed information on usage. The values of these variables depend on the configuration context and the choices are the following: auto-recovery interval, **disabled**, **strict**, port aggregation number, vLAG priority, delay time, vLAG tier ID value, vLAG instance number, **keepalive-attempts**, **keepalive-interval**, **retry-interval**, **peer-ip**. +`vlagArg3` | This is an overloaded BGP variable. Please refer to the [cnos_vlag module documentation](http://ralfss28.labs.lenovo.com:5555/help/topic/com.lenovo.switchmgt.ansible.doc/cnos_template.html?cp=0_3_1_0_2_10) for detailed information on usage. The values of these variables depend on the configuration context and the choices are the following: **enable**, **port-aggregation**, number of Keep Alive attempts, Keep Alive interval, retry interval, vLAG Health Check peer IP address. +`vlagArg4` | This is an overloaded BGP variable. Please refer to the [cnos_vlag module documentation](http://ralfss28.labs.lenovo.com:5555/help/topic/com.lenovo.switchmgt.ansible.doc/cnos_template.html?cp=0_3_1_0_2_10) for detailed information on usage. The values of these variables depend on the configuration context and the choices are the following: LAG Number, **default**, **management**. + + +## Dependencies +--- +<add dependencies information below> + +- username.iptables - Configures the firewall and blocks all ports except those needed for web server and SSH access. +- username.common - Performs common server configuration. +- cnos_vlag.py - This modules needs to be present in the *library* directory of the role. +- cnos.py - This module needs to be present in the PYTHONPATH environment variable set in the Ansible system. +- /etc/ansible/hosts - You must edit the */etc/ansible/hosts* file with the device information of the switches designated as leaf switches. You may refer to *cnos_vlag_sample_hosts* for a sample configuration. + +Ansible keeps track of all network elements that it manages through a hosts file. Before the execution of a playbook, the hosts file must be set up. + +Open the */etc/ansible/hosts* file with root privileges. Most of the file is commented out by using **#**. You can also comment out the entries you will be adding by using **#**. You need to copy the content of the hosts file for the role into the */etc/ansible/hosts* file. The sample hosts file for the role is located in the main directory. + +``` +[cnos_vlag_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos +10.241.107.40 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos +``` + +**Note:** You need to change the IP addresses to fit your specific topology. You also need to change the `<username>` and `<password>` to the appropriate values used to log into the specific Lenovo network devices. + + +## Example Playbook +--- +<add playbook samples below> + +To execute an Ansible playbook, use the following command: + +``` +ansible-playbook cnos_vlag_sample.yml -vvv +``` + +`-vvv` is an optional verbose command that helps identify what is happening during playbook execution. The playbook for each role is located in the main directory of the solution. + +``` + - name: Module to do VLAG configurations + hosts: cnos_vlag_sample + gather_facts: no + connection: local + roles: + - cnos_vlag_sample +``` + + +## License +--- +<add license information below> +Copyright (C) 2017 Lenovo, Inc. + +This file is part of Ansible + +Ansible is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +Ansible is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with Ansible. If not, see <http://www.gnu.org/licenses/>. diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_vlag/aliases b/ansible_collections/community/network/tests/integration/targets/cnos_vlag/aliases new file mode 100644 index 000000000..be010d923 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_vlag/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_vlag/cnos_vlag_sample_hosts b/ansible_collections/community/network/tests/integration/targets/cnos_vlag/cnos_vlag_sample_hosts new file mode 100644 index 000000000..73473d90e --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_vlag/cnos_vlag_sample_hosts @@ -0,0 +1,14 @@ +# You have to paste this dummy information in /etc/ansible/hosts +# Notes: +# - Comments begin with the '#' character +# - Blank lines are ignored +# - Groups of hosts are delimited by [header] elements +# - You can enter hostnames or ip Addresses +# - A hostname/ip can be a member of multiple groups +# +# In the /etc/ansible/hosts file u have to enter [cnos_vlag_sample] tag +# Following you should specify IP Addresses details +# Please change <username> and <password> with appropriate value for your switch. + +[cnos_vlag_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_vlag/tasks/main.yml b/ansible_collections/community/network/tests/integration/targets/cnos_vlag/tasks/main.yml new file mode 100644 index 000000000..cfb775e20 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_vlag/tasks/main.yml @@ -0,0 +1,56 @@ +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +# This contain sample template execution tasks +--- +- name: Test Vlag - enable + cnos_vlag: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_vlag_{{ inventory_hostname }}_output.txt vlagArg1='{{item.vlagArg1}}' + with_items: "{{test_vlag_data1}}" +- name: Test Vlag - autorecovery + cnos_vlag: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_vlag_{{ inventory_hostname }}_output.txt vlagArg1='{{item.vlagArg1}}' vlagArg2='{{item.vlagArg2}}' + with_items: "{{test_vlag_data2}}" +- name: Test Vlag - config-consistency + cnos_vlag: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_vlag_{{ inventory_hostname }}_output.txt vlagArg1='{{item.vlagArg1}}' vlagArg2='{{item.vlagArg2}}' + with_items: "{{test_vlag_data3}}" +- name: Test Vlag - isl + cnos_vlag: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_vlag_{{ inventory_hostname }}_output.txt vlagArg1='{{item.vlagArg1}}' vlagArg2='{{item.vlagArg2}}' + with_items: "{{test_vlag_data4}}" +- name: Test Vlag - mac-address-table + cnos_vlag: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_vlag_{{ inventory_hostname }}_output.txt vlagArg1='{{item.vlagArg1}}' + with_items: "{{test_vlag_data5}}" +- name: Test Vlag - peer-gateway + cnos_vlag: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_vlag_{{ inventory_hostname }}_output.txt vlagArg1='{{item.vlagArg1}}' + with_items: "{{test_vlag_data6}}" +- name: Test Vlag - priority + cnos_vlag: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_vlag_{{ inventory_hostname }}_output.txt vlagArg1='{{item.vlagArg1}}' vlagArg2='{{item.vlagArg2}}' + with_items: "{{test_vlag_data7}}" +- name: Test Vlag - startup-delay + cnos_vlag: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_vlag_{{ inventory_hostname }}_output.txt vlagArg1='{{item.vlagArg1}}' vlagArg2='{{item.vlagArg2}}' + with_items: "{{test_vlag_data8}}" +- name: Test Vlag - tier-id + cnos_vlag: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_vlag_{{ inventory_hostname }}_output.txt vlagArg1='{{item.vlagArg1}}' vlagArg2='{{item.vlagArg2}}' + with_items: "{{test_vlag_data9}}" +- name: Test Vlag - vrrp + cnos_vlag: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_vlag_{{ inventory_hostname }}_output.txt vlagArg1='{{item.vlagArg1}}' + with_items: "{{test_vlag_data10}}" +- name: Test Vlag - instance + cnos_vlag: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_vlag_{{ inventory_hostname }}_output.txt vlagArg1='{{item.vlagArg1}}' vlagArg2='{{item.vlagArg2}}' vlagArg3='{{item.vlagArg3}}' + with_items: "{{test_vlag_data11}}" +- name: Test Vlag - instance2 + cnos_vlag: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_vlag_{{ inventory_hostname }}_output.txt vlagArg1='{{item.vlagArg1}}' vlagArg2='{{item.vlagArg2}}' + with_items: "{{test_vlag_data12}}" +- name: Test Vlag - keepalive-attempts + cnos_vlag: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_vlag_{{ inventory_hostname }}_output.txt vlagArg1='{{item.vlagArg1}}' vlagArg2='{{item.vlagArg2}}' vlagArg3='{{item.vlagArg3}}' + with_items: "{{test_vlag_data13}}" +- name: Test Vlag - keepalive-interval + cnos_vlag: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_vlag_{{ inventory_hostname }}_output.txt vlagArg1='{{item.vlagArg1}}' vlagArg2='{{item.vlagArg2}}' vlagArg3='{{item.vlagArg3}}' + with_items: "{{test_vlag_data14}}" +- name: Test Vlag - retry-interval + cnos_vlag: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_vlag_{{ inventory_hostname }}_output.txt vlagArg1='{{item.vlagArg1}}' vlagArg2='{{item.vlagArg2}}' vlagArg3='{{item.vlagArg3}}' + with_items: "{{test_vlag_data15}}" +- name: Test Vlag - peer ip + cnos_vlag: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} deviceType={{ hostvars[inventory_hostname]['deviceType']}} outputfile=./results/cnos_vlag_{{ inventory_hostname }}_output.txt vlagArg1='{{item.vlagArg1}}' vlagArg2='{{item.vlagArg2}}' vlagArg3='{{item.vlagArg3}}' + with_items: "{{test_vlag_data16}}" +# Completed file
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_vlag/vars/main.yml b/ansible_collections/community/network/tests/integration/targets/cnos_vlag/vars/main.yml new file mode 100644 index 000000000..e44a6758b --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_vlag/vars/main.yml @@ -0,0 +1,33 @@ +--- +test_vlag_data1: + - {vlagArg1: "enable"} +test_vlag_data2: + - {vlagArg1: "auto-recovery", vlagArg2: 266} +test_vlag_data3: + - {vlagArg1: "config-consistency", vlagArg2: "strict"} +test_vlag_data4: + - {vlagArg1: "isl", vlagArg2: 33} +test_vlag_data5: + - {vlagArg1: "mac-address-table"} +test_vlag_data6: + - {vlagArg1: "peer-gateway"} +test_vlag_data7: + - {vlagArg1: "priority", vlagArg2: 1313} +test_vlag_data8: + - {vlagArg1: "startup-delay", vlagArg2: 323} +test_vlag_data9: + - {vlagArg1: "tier-id", vlagArg2: 313} +test_vlag_data10: + - {vlagArg1: "vrrp"} +test_vlag_data11: + - {vlagArg1: "instance", vlagArg2: 33, vlagArg3: 333} +test_vlag_data12: + - {vlagArg1: "instance", vlagArg2: "33"} +test_vlag_data13: + - {vlagArg1: "hlthchk", vlagArg2: "keepalive-attempts", vlagArg3: 13} +test_vlag_data14: + - {vlagArg1: "hlthchk", vlagArg2: "keepalive-interval", vlagArg3: 131} +test_vlag_data15: + - {vlagArg1: "hlthchk", vlagArg2: "retry-interval", vlagArg3: 133} +test_vlag_data16: + - {vlagArg1: "hlthchk", vlagArg2: "peer-ip", vlagArg3: "1.2.3.4"} diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_vlan/aliases b/ansible_collections/community/network/tests/integration/targets/cnos_vlan/aliases new file mode 100644 index 000000000..be010d923 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_vlan/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_vlan/cnos_vlan_sample_hosts b/ansible_collections/community/network/tests/integration/targets/cnos_vlan/cnos_vlan_sample_hosts new file mode 100644 index 000000000..be57bc951 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_vlan/cnos_vlan_sample_hosts @@ -0,0 +1,14 @@ +# You have to paste this dummy information in /etc/ansible/hosts +# Notes: +# - Comments begin with the '#' character +# - Blank lines are ignored +# - Groups of hosts are delimited by [header] elements +# - You can enter hostnames or ip Addresses +# - A hostname/ip can be a member of multiple groups +# +# In the /etc/ansible/hosts file u have to enter [cnos_vlan_sample] tag +# Following you should specify IP Addresses details +# Please change <username> and <password> with appropriate value for your switch. + +[cnos_vlan_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_vlan/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_vlan/defaults/main.yaml new file mode 100644 index 000000000..9ef5ba516 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_vlan/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_vlan/tasks/cli.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_vlan/tasks/cli.yaml new file mode 100644 index 000000000..303af4076 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_vlan/tasks/cli.yaml @@ -0,0 +1,22 @@ +--- +- name: collect all cli test cases + find: + paths: "{{ role_path }}/tests/cli" + patterns: "{{ testcase }}.yaml" + register: test_cases + delegate_to: localhost + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test cases (connection=network_cli) + include: "{{ test_case_to_run }}" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run + +- name: run test case (connection=local) + include: "{{ test_case_to_run }} ansible_connection=local" + with_first_found: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_vlan/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_vlan/tasks/main.yaml new file mode 100644 index 000000000..fa3dd7fb2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_vlan/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: cli.yaml, tags: ['cli'] } diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_vlan/tests/cli/basic.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_vlan/tests/cli/basic.yaml new file mode 100644 index 000000000..b5de97ecd --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_vlan/tests/cli/basic.yaml @@ -0,0 +1,213 @@ +--- +- debug: msg="START cli/basic.yaml on connection={{ ansible_connection }}" + +#- set_fact: switch_type="{{ switch_type }}" + +- block: + + - name: setup - remove vlan used in test + cnos_config: + lines: + - no vlan 100 + - no vlan 200 + - no vlan 300 + provider: "{{ cli }}" + + - name: setup - remove switchport settings on interfaces used in test + cnos_config: + lines: + - switchport mode access + - no switchport access vlan + provider: "{{ cli }}" + parents: "{{ item }}" + loop: + - interface ethernet1/33 + - interface ethernet1/44 + + - name: create vlan + cnos_vlan: &create + vlan_id: 100 + name: test-vlan + provider: "{{ cli }}" + register: result + + - assert: + that: + - "result.changed == true" + - "'vlan 100' in result.commands" + - "'name test-vlan' in result.commands" + + - name: create vlan(idempotence) + cnos_vlan: *create + register: result + + - assert: + that: + - "result.changed == false" + + - name: Add interfaces to vlan + cnos_vlan: &interfaces + vlan_id: 100 + interfaces: + - Ethernet1/33 + - Ethernet1/44 + provider: "{{ cli }}" + register: result + + - assert: + that: + - "result.changed == true" + - "'interface Ethernet1/33' in result.commands" + - "'switchport mode access' in result.commands" + - "'switchport access vlan 100' in result.commands" + - "'interface Ethernet1/44' in result.commands" + - "'switchport mode access' in result.commands" + - "'switchport access vlan 100' in result.commands" + + - name: Add interfaces to vlan(idempotence) + cnos_vlan: *interfaces + register: result + + - assert: + that: + - "result.changed == false" + + - name: Remove interface from vlan + cnos_vlan: &single_int + vlan_id: 100 + interfaces: + - Ethernet1/33 + provider: "{{ cli }}" + register: result + + - assert: + that: + - "result.changed == true" + - "'vlan 100' in result.commands" +# - "'interface Ethernet1/33' in result.commands" + - "'switchport mode access' in result.commands" + - "'no switchport access vlan' in result.commands" + + - name: Remove interface from vlan(idempotence) + cnos_vlan: *single_int + register: result + + - assert: + that: + - "result.changed == false" + + - name: Suspend vlan + cnos_vlan: + vlan_id: 100 + state: suspend + provider: "{{ cli }}" + register: result + + - assert: + that: + - "result.changed == true" + - "'vlan 100' in result.commands" + - "'state suspend' in result.commands" + + - name: Unsuspend vlan + cnos_vlan: + vlan_id: 100 + state: active + provider: "{{ cli }}" + register: result + + - assert: + that: + - "result.changed == true" + - "'vlan 100' in result.commands" + - "'state active' in result.commands" + + - name: delete vlan + cnos_vlan: &delete + vlan_id: 100 + provider: "{{ cli }}" + state: absent + register: result + + - assert: + that: + - "result.changed == true" + - "'no vlan 100' in result.commands" + + - name: delete vlan(idempotence) + cnos_vlan: *delete + register: result + + - assert: + that: + - "result.changed == false" + + - name: create vlans using aggregate + cnos_vlan: &create_aggregate + aggregate: + - { vlan_id: 200, name: vlan-200 } + - { vlan_id: 300, name: vlan-300 } + provider: "{{ cli }}" + register: result + + - assert: + that: + - "result.changed == true" + - "'vlan 200' in result.commands" + - "'name vlan-200' in result.commands" + - "'vlan 300' in result.commands" + - "'name vlan-300' in result.commands" + + - name: create vlans using aggregate(idempotence) + cnos_vlan: *create_aggregate + register: result + + - assert: + that: + - "result.changed == false" + + - name: delete vlans using aggregate + cnos_vlan: &delete_aggregate + aggregate: + - { vlan_id: 200, name: vlan-200 } + - { vlan_id: 300, name: vlan-300 } + state: absent + provider: "{{ cli }}" + register: result + + - assert: + that: + - "result.changed == true" + - "'no vlan 200' in result.commands" + - "'no vlan 300' in result.commands" + + - name: delete vlans using aggregate(idempotence) + cnos_vlan: *delete_aggregate + register: result + + - assert: + that: + - "result.changed == false" + + - name: teardown(part1) + cnos_config: + lines: + - no vlan 100 + - no vlan 200 + - no vlan 300 + provider: "{{ cli }}" + + - name: teardown(part2) + cnos_config: + lines: + - switchport mode access + - no switchport access vlan + provider: "{{ cli }}" + parents: "{{ item }}" + loop: + - interface Ethernet1/33 + - interface Ethernet1/44 + +# when: switch_type == 'L2' + +- debug: msg="END cli/basic.yaml on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_vlan/vars/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_vlan/vars/main.yaml new file mode 100644 index 000000000..aa25153ec --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_vlan/vars/main.yaml @@ -0,0 +1,9 @@ +--- +cli: + host: "{{ inventory_hostname }}" + port: 22 + username: admin + password: admin + timeout: 30 + authorize: True + auth_pass: diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_vrf/aliases b/ansible_collections/community/network/tests/integration/targets/cnos_vrf/aliases new file mode 100644 index 000000000..be010d923 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_vrf/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_vrf/cnos_vrf_sample_hosts b/ansible_collections/community/network/tests/integration/targets/cnos_vrf/cnos_vrf_sample_hosts new file mode 100644 index 000000000..696911dec --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_vrf/cnos_vrf_sample_hosts @@ -0,0 +1,14 @@ +# You have to paste this dummy information in /etc/ansible/hosts +# Notes: +# - Comments begin with the '#' character +# - Blank lines are ignored +# - Groups of hosts are delimited by [header] elements +# - You can enter hostnames or ip Addresses +# - A hostname/ip can be a member of multiple groups +# +# In the /etc/ansible/hosts file u have to enter [cnos_vrf_sample] tag +# Following you should specify IP Addresses details +# Please change <username> and <password> with appropriate value for your switch. + +[cnos_vrf_sample] +10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> test_interface=ethernet1/33 test_interface2=ethernet1/44 diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_vrf/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_vrf/defaults/main.yaml new file mode 100644 index 000000000..9ef5ba516 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_vrf/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_vrf/tasks/cli.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_vrf/tasks/cli.yaml new file mode 100644 index 000000000..87a42971b --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_vrf/tasks/cli.yaml @@ -0,0 +1,16 @@ +--- +- name: collect all cli test cases + find: + paths: "{{ role_path }}/tests/cli" + patterns: "{{ testcase }}.yaml" + register: test_cases + delegate_to: localhost + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test cases (connection=network_cli) + include: "{{ test_case_to_run }} ansible_connection=network_cli" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_vrf/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_vrf/tasks/main.yaml new file mode 100644 index 000000000..fa3dd7fb2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_vrf/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: cli.yaml, tags: ['cli'] } diff --git a/ansible_collections/community/network/tests/integration/targets/cnos_vrf/tests/cli/basic.yaml b/ansible_collections/community/network/tests/integration/targets/cnos_vrf/tests/cli/basic.yaml new file mode 100644 index 000000000..dbf964f09 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/cnos_vrf/tests/cli/basic.yaml @@ -0,0 +1,259 @@ +--- +- name: setup - remove vrf + cnos_vrf: + name: "{{ item }}" + state: absent + become: yes + with_items: + - test + - test1 + - test2 + - test3 + - test4 + - test5 + +- name: Setup - Ensure interfaces are not switchport + cnos_config: + lines: + - no shutdown + - no switchport + - no logging monitor + parents: + - "interface ethernet1/33" + +- name: Create vrf + cnos_vrf: + name: test + rd: 1:200 + state: present + become: yes + register: result + +- assert: + that: + - "result.changed == true" + - "'vrf context test' in result.commands" + - "'rd 1:200' in result.commands" + +- name: Create vrf again (idempotent) + cnos_vrf: + name: test + rd: 1:200 + state: present + become: yes + register: result + +- assert: + that: + - "result.changed == false" + - "result.commands | length == 0" + +- name: Modify rd + cnos_vrf: + name: test + rd: 1:201 + state: present + become: yes + register: result + +- assert: + that: + - "result.changed == true" + - "'vrf context test' in result.commands" + - "'rd 1:201' in result.commands" + +- name: Modify rd again (idempotent) + cnos_vrf: + name: test + rd: 1:201 + state: present + become: yes + register: result + +- assert: + that: + - "result.changed == false" + - "result.commands | length == 0" + +- name: Add Ethernet1/33 to vrf and check interface assigned state + cnos_vrf: + name: test + rd: 1:201 + state: present + interfaces: + - Ethernet1/33 + associated_interfaces: + - Ethernet1/33 + become: yes + register: result + +- assert: + that: + - "result.changed == true" + - "'interface ethernet1/33' in result.commands" + - "'vrf member test' in result.commands" + +- name: Add Ethernet1/33 to vrf again (idempotent) + cnos_vrf: + name: test + rd: 1:201 + state: present + interfaces: + - ethernet 1/33 # interface name modified to test case insensitive and space scenario + become: yes + register: result + +- assert: + that: + - "result.changed == false" + - "result.commands | length == 0" + +- name: Add multiple interfaces to vrf + cnos_vrf: + name: test1 + rd: 1:202 + state: present + interfaces: + - loopback 1 + - loopback 2 + - loopback 3 + - loopback 4 + - loopback 5 + - loopback 6 + become: yes + register: result + +- assert: + that: + - "result.changed == true" + - "'interface loopback1' in result.commands" + - "'vrf member test1' in result.commands" + - "'interface loopback2' in result.commands" + - "'vrf member test1' in result.commands" + - "'interface loopback3' in result.commands" + - "'vrf member test1' in result.commands" + - "'interface loopback4' in result.commands" + - "'vrf member test1' in result.commands" + - "'interface loopback5' in result.commands" + - "'vrf member test1' in result.commands" + - "'interface loopback6' in result.commands" + - "'vrf member test1' in result.commands" + +- name: Add multiple interfaces to vrf (idempotent) + cnos_vrf: + name: test1 + rd: 1:202 + state: present + interfaces: + - loopback 1 + - loopback 2 + - loopback 3 + - loopback 4 + - loopback 5 + - loopback 6 + become: yes + register: result + +- assert: + that: + - "result.changed == false" + - "result.commands | length == 0" + +- name: setup - remove vrf + cnos_vrf: + name: "{{ item }}" + state: absent + become: yes + with_items: + - test1 + - test2 + - test3 + +- name: Create aggregate of VRFs + cnos_vrf: + aggregate: + - { name: test2, rd: "1:202" } + - { name: test3, rd: "1:203" } + state: present + register: result + +- assert: + that: + - "result.changed == true" + - "'vrf context test2' in result.commands" + - "'rd 1:202' in result.commands" + - "'vrf context test3' in result.commands" + - "'rd 1:203' in result.commands" + +- name: Create aggregate of VRFs again (idempotent) + cnos_vrf: + aggregate: + - { name: test2, rd: "1:202" } + - { name: test3, rd: "1:203" } + state: present + become: yes + register: result + +- assert: + that: + - "result.changed == false" + - "result.commands | length == 0" + +- name: Create aggregate of VRFs with purge + cnos_vrf: + aggregate: + - { name: test4, rd: "1:204" } + - { name: test5, rd: "1:205" } + state: present + purge: yes + become: yes + register: result + +- assert: + that: + - "result.changed == true" + - "'vrf context test4' in result.commands" + - "'rd 1:204' in result.commands" + - "'vrf context test5' in result.commands" + - "'rd 1:205' in result.commands" + - "'no vrf context test' in result.commands" + - "'no vrf context test2' in result.commands" + - "'no vrf context test3' in result.commands" + +- name: Delete VRFs + cnos_vrf: + name: test + state: absent + become: yes + +- name: Delete VRFs again (idempotent) + cnos_vrf: + name: test + state: absent + become: yes + +- name: Delete aggregate of VRFs + cnos_vrf: + aggregate: + - { name: test1 } + - { name: test2 } + - { name: test3 } + - { name: test4 } + - { name: test5 } + state: absent + become: yes + +- name: Delete VRFs again (idempotent) + cnos_vrf: + aggregate: + - { name: test1 } + - { name: test2 } + - { name: test3 } + - { name: test4 } + - { name: test5 } + state: absent + become: yes + +- assert: + that: + - "result.changed == true" diff --git a/ansible_collections/community/network/tests/integration/targets/enos_command/README.md b/ansible_collections/community/network/tests/integration/targets/enos_command/README.md new file mode 100644 index 000000000..76542655a --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_command/README.md @@ -0,0 +1,115 @@ +# Ansible Role: enos_command - Executes any CLI command on switch and results are displayed. +--- +<add role description below> + + Sends arbitrary commands to an ENOS node and returns the results + read from the device. The C(enos_command) module includes an + argument that will cause the module to wait for a specific condition + before returning or timing out if the condition is not met. + +## Requirements +--- +<add role requirements information below> + +- Ansible version 2.4 or later ([Ansible installation documentation](http://docs.ansible.com/ansible/intro_installation.html)) +- Lenovo switches running ENOS version 8.4.1.0 or later +- an SSH connection to the Lenovo switch (SSH must be enabled on the network device) + + +## Role Variables +--- +<add role variables information below> +Available variables are listed below, along with description. + +The following are mandatory inventory variables: + +Variable | Description +--- | --- +`ansible_connection` | Has to be `network_cli` +`ansible_network_os` | Has to be `enos` +`ansible_ssh_user` | Specifies the username used to log into the switch +`ansible_ssh_pass` | Specifies the password used to log into the switch + +These are the various options the customer have in executing the enos_command modules: + +Variable | Description +--- | --- +`commands` | List of commands to send to the remote device over the configured provider. The resulting output from the command is returned. If the I(wait_for) argument is provided, the module is not returned until the condition is satisfied or the number of retires as expired. +`wait_for` | List of conditions to evaluate against the output of the command. The task will wait for each condition to be true before moving forward. If the conditional is not true within the configured number of retries, the task fails. See examples. +`match` | The I(match) argument is used in conjunction with the I(wait_for) argument to specify the match policy. Valid values are C(all) or C(any). If the value is set to C(all) then all conditionals in the wait_for must be satisfied. If the value is set to C(any) then only one of the values must be satisfied. +`retries` | Specifies the number of retries a command should by tried before it is considered failed. The command is run on the target device every retry and evaluated against the I(wait_for) conditions. +`interval` | Configures the interval in seconds to wait between retries of the command. If the command does not pass the specified conditions, the interval indicates how long to wait before trying the command again. + +Need to specify these variables in vars/main.yml under variable `cli` + +Variable | Description +--- | --- +`host` | Has to be "{{ inventory_hostname }}" +`port` | Has to be`22` +`username` | User Name of switch +`password` | Password of switch +`timeout` | time out value for CLI +`authorize` | Whether u have to enter enable mode for data collection. +`auth_pass`| Enable Password if required + + +## Dependencies +--- +<add dependencies information below> + +- username.iptables - Configures the firewall and blocks all ports except those needed for web server and SSH access. +- username.common - Performs common server configuration. +- enos_command.py - This module file will be located at lib/ansible/modules/network/enos/ of Ansible installation. +- enos.py - This module util file will be located at lib/ansible/module_utils/network/enos of Ansible installation. +- enos.py - This module plugin file will be located at lib/ansible/plugins/action of Ansible installation. +- enos.py - This module plugin file will be located at lib/ansible/plugins/cliconf of Ansible installation. +- enos.py - This module plugin file will be located at lib/ansible/plugins/cliconf of Ansible installation. +- /etc/ansible/hosts - You must edit the */etc/ansible/hosts* file with the device information of the switches designated as leaf switches. You may refer to *cnos_command_sample_hosts* for a sample configuration. + +Ansible keeps track of all network elements that it manages through a hosts file. Before the execution of a playbook, the hosts file must be set up. + +Open the */etc/ansible/hosts* file with root privileges. Most of the file is commented out by using **#**. You can also comment out the entries you will be adding by using **#**. You need to copy the content of the hosts file for the role into the */etc/ansible/hosts* file. The sample hosts file for the role is located in the main directory. + +``` +[enos_command] +10.241.105.24 ansible_connection=network_cli ansible_network_os=enos ansible_ssh_user=<username> ansible_ssh_pass=<password> +``` + +**Note:** You need to change the IP addresses to fit your specific topology. You also need to change the `<username>` and `<password>` to the appropriate values used to log into the specific Lenovo network devices. + + +## Example Playbook +--- +<add playbook samples below> + +To execute an Ansible playbook, use the following command: + +``` +ansible-playbook enos_command_sample.yml -vvv +``` + +`-vvv` is an optional verbose command that helps identify what is happening during playbook execution. The playbook for each role is located in the main directory of the solution. + +``` + - name: Module to do some CLI Command configurations + hosts: enos_command + gather_facts: no + connection: network_cli + roles: + - enos_command +``` + +## License +--- +<add license information below> +Copyright (C) 2017 Lenovo, Inc. + +This file is part of Ansible + +Ansible is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, eithe +r version 3 of the License, or (at your option) any later version. + +Ansible is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PU +RPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with Ansible. If not, see <http://www.gnu.org/licenses/>. diff --git a/ansible_collections/community/network/tests/integration/targets/enos_command/aliases b/ansible_collections/community/network/tests/integration/targets/enos_command/aliases new file mode 100644 index 000000000..be010d923 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_command/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/enos_command/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/enos_command/defaults/main.yaml new file mode 100644 index 000000000..9ef5ba516 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_command/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/enos_command/tasks/cli.yaml b/ansible_collections/community/network/tests/integration/targets/enos_command/tasks/cli.yaml new file mode 100644 index 000000000..d675462dd --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_command/tasks/cli.yaml @@ -0,0 +1,15 @@ +--- +- name: collect all cli test cases + find: + paths: "{{ role_path }}/tests/cli" + patterns: "{{ testcase }}.yaml" + register: test_cases + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test case + include: "{{ test_case_to_run }}" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/enos_command/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/enos_command/tasks/main.yaml new file mode 100644 index 000000000..fa3dd7fb2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_command/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: cli.yaml, tags: ['cli'] } diff --git a/ansible_collections/community/network/tests/integration/targets/enos_command/tests/cli/bad_operator.yaml b/ansible_collections/community/network/tests/integration/targets/enos_command/tests/cli/bad_operator.yaml new file mode 100644 index 000000000..e554b847d --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_command/tests/cli/bad_operator.yaml @@ -0,0 +1,20 @@ +--- +- debug: msg="START cli/bad_operator.yaml" + +- name: test bad operator + enos_command: + commands: + - show version + - show interface information + wait_for: + - result[0] contains 'Description: Foo' + provider: "{{ cli }}" + register: result + ignore_errors: yes + +- assert: + that: + - "result.failed == true" + - "result.msg is defined" + +- debug: msg="END cli/bad_operator.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/enos_command/tests/cli/contains.yaml b/ansible_collections/community/network/tests/integration/targets/enos_command/tests/cli/contains.yaml new file mode 100644 index 000000000..c9615d3cb --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_command/tests/cli/contains.yaml @@ -0,0 +1,20 @@ +--- +- debug: msg="START cli/contains.yaml" + +- name: test contains operator + enos_command: + commands: + - show version + - show system memory + wait_for: + - "result[0] contains 'Lenovo'" + - "result[1] contains 'MemFree'" + provider: "{{ cli }}" + register: result + +- assert: + that: + - "result.changed == false" + - "result.stdout is defined" + +- debug: msg="END cli/contains.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/enos_command/tests/cli/invalid.yaml b/ansible_collections/community/network/tests/integration/targets/enos_command/tests/cli/invalid.yaml new file mode 100644 index 000000000..1276c7c36 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_command/tests/cli/invalid.yaml @@ -0,0 +1,29 @@ +--- +- debug: msg="START cli/invalid.yaml" + +- name: run invalid command + enos_command: + commands: ['show foo'] + provider: "{{ cli }}" + register: result + ignore_errors: yes + +- assert: + that: + - "result.failed" + +- name: run commands that include invalid command + enos_command: + commands: + - show version + - show foo + provider: "{{ cli }}" + register: result + ignore_errors: yes + +- assert: + that: + - "result.failed" + ignore_errors: true + +- debug: msg="END cli/invalid.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/enos_command/tests/cli/output.yaml b/ansible_collections/community/network/tests/integration/targets/enos_command/tests/cli/output.yaml new file mode 100644 index 000000000..e3e3565cb --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_command/tests/cli/output.yaml @@ -0,0 +1,29 @@ +--- +- debug: msg="START cli/output.yaml" + +- name: get output for single command + enos_command: + commands: ['show version'] + provider: "{{ cli }}" + register: result + +- assert: + that: + - "result.changed == false" + - "result.stdout is defined" + +- name: get output for multiple commands + enos_command: + commands: + - show version + - show interface information + provider: "{{ cli }}" + register: result + +- assert: + that: + - "result.changed == false" + - "result.stdout is defined" + - "result.stdout | length == 2" + +- debug: msg="END cli/output.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/enos_command/tests/cli/timeout.yaml b/ansible_collections/community/network/tests/integration/targets/enos_command/tests/cli/timeout.yaml new file mode 100644 index 000000000..e60bd18d9 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_command/tests/cli/timeout.yaml @@ -0,0 +1,19 @@ +--- +- debug: msg="START cli/timeout.yaml" + +- name: test bad condition + enos_command: + commands: + - show version + wait_for: + - "result[0] contains bad_value_string" + provider: "{{ cli }}" + register: result + ignore_errors: yes + +- assert: + that: + - "result.failed == true" + - "result.msg is defined" + +- debug: msg="END cli/timeout.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/enos_command/vars/main.yaml b/ansible_collections/community/network/tests/integration/targets/enos_command/vars/main.yaml new file mode 100644 index 000000000..bdcdfd88e --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_command/vars/main.yaml @@ -0,0 +1,13 @@ +--- +cli: + host: "{{ inventory_hostname }}" + port: 22 + username: admin + password: admin +# transport: cli + timeout: 30 + authorize: True + auth_pass: + +enos_command_data: + - {} diff --git a/ansible_collections/community/network/tests/integration/targets/enos_config/README.md b/ansible_collections/community/network/tests/integration/targets/enos_config/README.md new file mode 100644 index 000000000..c5b628304 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_config/README.md @@ -0,0 +1,123 @@ +# Ansible Role: enos_config - Executes any Configuration command on switch and results are displayed. +--- +<add role description below> + + Lenovo ENOS configurations use a simple block indent file syntax + for segmenting configuration into sections. This module provides + an implementation for working with ENOS configuration sections in + a deterministic way. + +## Requirements +--- +<add role requirements information below> + +- Ansible version 2.4 or later ([Ansible installation documentation](http://docs.ansible.com/ansible/intro_installation.html)) +- Lenovo switches running ENOS version 8.4.1.0 or later +- an SSH connection to the Lenovo switch (SSH must be enabled on the network device) + + +## Role Variables +--- +<add role variables information below> +Available variables are listed below, along with description. + +The following are mandatory inventory variables: + +Variable | Description +--- | --- +`ansible_connection` | Has to be `network_cli` +`ansible_network_os` | Has to be `enos` +`ansible_ssh_user` | Specifies the username used to log into the switch +`ansible_ssh_pass` | Specifies the password used to log into the switch + +These are the various options the customer have in executing the enos_config modules: + +Variable | Description +--- | --- +`lines` | The ordered set of commands that should be configured in the section. The commands must be the exact same commands as found in the device running-config. Be sure to note the configuration command syntax as some commands are automatically modified by the device config parser. +`parents` | The ordered set of parents that uniquely identify the section the commands should be checked against. If the parents argument is omitted, the commands are checked against the set of top level or global commands. +`src` | Specifies the source path to the file that contains the configuration or configuration template to load. The path to the source file can either be the full path on the Ansible control host or a relative path from the playbook or role root directory. This argument is mutually exclusive with I(lines), I(parents). +`before` | The ordered set of commands to push on to the command stack if a change needs to be made. This allows the playbook designer the opportunity to perform configuration commands prior to pushing any changes without affecting how the set of commands are matched against the system. +`after` | The ordered set of commands to append to the end of the command stack if a change needs to be made. Just like with I(before) this allows the playbook designer to append a set of commands to be executed after the command set. +`replace` | Instructs the module on the way to perform the configuration on the device. If the replace argument is set to I(line) then the modified lines are pushed to the device in configuration mode. If the replace argument is set to I(block) then the entire command block is pushed to the device in configuration mode if any line is not correct. +`config` | The module, by default, will connect to the remote device and retrieve the current running-config to use as a base for comparing against the contents of source. There are times when it is not desirable to have the task get the current running-config for every task in a playbook. The I(config) argument allows the implementer to pass in the configuration to use as the base config for comparison. +`backup` | This argument will cause the module to create a full backup of the current C(running-config) from the remote device before any changes are made. The backup file is written to the C(backup) folder in the playbook root directory. If the directory does not exist, it is created. +`match` |Instructs the module on the way to perform the matching of the set of commands against the current device config. If match is set to I(line), commands are matched line by line. If match is set to I(strict), command lines are matched with respect to position. If match is set to I(exact), command lines must be an equal match. Finally, if match is set to I(none), the module will not attempt to compare the source configuration with the running configuration on the remote device. +`comment` | Allows a commit description to be specified to be included when the configuration is committed. If the configuration is not changed or committed, this argument is ignored. +`admin` | Enters into administration configuration mode for making config changes to the device. + + +Need to specify these variables in vars/main.yml under variable `cli` + +Variable | Description +--- | --- +`host` | Has to be "{{ inventory_hostname }}" +`port` | Has to be`22` +`username` | User Name of switch +`password` | Password of switch +`timeout` | time out value for CLI +`authorize` | Whether u have to enter enable mode for data collection. +`auth_pass`| Enable Password if required + + +## Dependencies +--- +<add dependencies information below> + +- username.iptables - Configures the firewall and blocks all ports except those needed for web server and SSH access. +- username.common - Performs common server configuration. +- enos_config.py - This module file will be located at lib/ansible/modules/network/enos/ of Ansible installation. +- enos.py - This module util file will be located at lib/ansible/module_utils/network/enos of Ansible installation. +- enos.py - This module plugin file will be located at lib/ansible/plugins/action of Ansible installation. +- enos_config.py - This module plugin file will be located at lib/ansible/plugins/action of Ansible installation. +- enos.py - This module plugin file will be located at lib/ansible/plugins/cliconf of Ansible installation. +- enos.py - This module plugin file will be located at lib/ansible/plugins/cliconf of Ansible installation. +- /etc/ansible/hosts - You must edit the */etc/ansible/hosts* file with the device information of the switches designated as leaf switches. You may refer to *cnos_command_sample_hosts* for a sample configuration. + +Ansible keeps track of all network elements that it manages through a hosts file. Before the execution of a playbook, the hosts file must be set up. + +Open the */etc/ansible/hosts* file with root privileges. Most of the file is commented out by using **#**. You can also comment out the entries you will be adding by using **#**. You need to copy the content of the hosts file for the role into the */etc/ansible/hosts* file. The sample hosts file for the role is located in the main directory. + +``` +[enos_config] +10.241.105.24 ansible_connection=network_cli ansible_network_os=enos ansible_ssh_user=<username> ansible_ssh_pass=<password> +``` + +**Note:** You need to change the IP addresses to fit your specific topology. You also need to change the `<username>` and `<password>` to the appropriate values used to log into the specific Lenovo network devices. + + +## Example Playbook +--- +<add playbook samples below> + +To execute an Ansible playbook, use the following command: + +``` +ansible-playbook enos_config_sample.yml -vvv +``` + +`-vvv` is an optional verbose command that helps identify what is happening during playbook execution. The playbook for each role is located in the main directory of the solution. + +``` + - name: Module to do some CLI Command configurations + hosts: enos_config + gather_facts: no + connection: network_cli + roles: + - enos_config +``` + +## License +--- +<add license information below> +Copyright (C) 2017 Lenovo, Inc. + +This file is part of Ansible + +Ansible is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, eithe +r version 3 of the License, or (at your option) any later version. + +Ansible is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PU +RPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with Ansible. If not, see <http://www.gnu.org/licenses/>. diff --git a/ansible_collections/community/network/tests/integration/targets/enos_config/aliases b/ansible_collections/community/network/tests/integration/targets/enos_config/aliases new file mode 100644 index 000000000..be010d923 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_config/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/enos_config/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/enos_config/defaults/main.yaml new file mode 100644 index 000000000..9ef5ba516 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_config/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/enos_config/tasks/cli.yaml b/ansible_collections/community/network/tests/integration/targets/enos_config/tasks/cli.yaml new file mode 100644 index 000000000..d675462dd --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_config/tasks/cli.yaml @@ -0,0 +1,15 @@ +--- +- name: collect all cli test cases + find: + paths: "{{ role_path }}/tests/cli" + patterns: "{{ testcase }}.yaml" + register: test_cases + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test case + include: "{{ test_case_to_run }}" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/enos_config/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/enos_config/tasks/main.yaml new file mode 100644 index 000000000..fa3dd7fb2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_config/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: cli.yaml, tags: ['cli'] } diff --git a/ansible_collections/community/network/tests/integration/targets/enos_config/templates/basic/config.j2 b/ansible_collections/community/network/tests/integration/targets/enos_config/templates/basic/config.j2 new file mode 100644 index 000000000..c837f60fa --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_config/templates/basic/config.j2 @@ -0,0 +1,4 @@ +vlan 13 + name anil + optflood + stg 13 diff --git a/ansible_collections/community/network/tests/integration/targets/enos_config/templates/defaults/config.j2 b/ansible_collections/community/network/tests/integration/targets/enos_config/templates/defaults/config.j2 new file mode 100644 index 000000000..d4c04bb3e --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_config/templates/defaults/config.j2 @@ -0,0 +1,2 @@ +vlan 13 + name anil diff --git a/ansible_collections/community/network/tests/integration/targets/enos_config/tests/cli/backup.yaml b/ansible_collections/community/network/tests/integration/targets/enos_config/tests/cli/backup.yaml new file mode 100644 index 000000000..09f7e7b11 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_config/tests/cli/backup.yaml @@ -0,0 +1,52 @@ +--- +- debug: msg="START cli/backup.yaml" + +- name: setup + enos_config: + commands: + - no vlan 13 + provider: "{{ cli }}" + ignore_errors: yes + +- name: collect any backup files + find: + paths: "{{ role_path }}/backup" + pattern: "{{ inventory_hostname_short }}_config*" + register: backup_files + delegate_to: localhost + +- name: delete backup files + file: + path: "{{ item.path }}" + state: absent + with_items: "{{backup_files.files|default([])}}" + +- name: configure device with config + enos_config: + src: roles/enos_config/templates/basic/config.j2 + backup: yes + provider: "{{ cli }}" + register: result + +- assert: + that: + - "result.changed == false" + +- name: collect any backup files + find: + paths: "{{ role_path }}/backup" + pattern: "{{ inventory_hostname_short }}_config*" + register: backup_files + delegate_to: localhost + +- assert: + that: + - "backup_files.files is defined" + +- name: teardown + enos_config: + commands: + - no vlan 13 + provider: "{{ cli }}" + +- debug: msg="END cli/backup.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/enos_config/tests/cli/basic.yaml b/ansible_collections/community/network/tests/integration/targets/enos_config/tests/cli/basic.yaml new file mode 100644 index 000000000..c0d5e1cc2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_config/tests/cli/basic.yaml @@ -0,0 +1,39 @@ +--- +- debug: msg="START cli/basic.yaml" + +- name: setup + enos_config: + commands: + - no vlan 13\n + provider: "{{ cli }}" + ignore_errors: yes + +- name: configure device with config + enos_config: + src: roles/enos_config/templates/basic/config.j2 + provider: "{{ cli }}" + register: result + +- assert: + that: + - "result.changed == false" + - "result.updates is not defined" + +- name: check device with config + enos_config: + src: roles/enos_config/templates/basic/config.j2 + provider: "{{ cli }}" + register: result + +- assert: + that: + - "result.changed == false" + - "result.updates is not defined" + +- name: teardown + enos_config: + commands: + - no vlan 13\n + provider: "{{ cli }}" + +- debug: msg="END cli/basic.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/enos_config/tests/cli/defaults.yaml b/ansible_collections/community/network/tests/integration/targets/enos_config/tests/cli/defaults.yaml new file mode 100644 index 000000000..a1768e0e0 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_config/tests/cli/defaults.yaml @@ -0,0 +1,40 @@ +- debug: msg="START cli/defaults.yaml" +- name: setup + enos_config: + commands: + - no vlan 13\n + provider: '{{ cli }}' + ignore_errors: true + become: true + become_method: ansible.netcommon.enable +- name: configure device with defaults included + enos_config: + src: roles/enos_config/templates/defaults/config.j2 + provider: '{{ cli }}' + register: result + become: true + become_method: ansible.netcommon.enable +- debug: var=result +- assert: + that: + - result.changed == false + - result.updates is not defined +- name: check device with defaults included Hell + enos_config: + src: roles/enos_config/templates/defaults/config.j2 + provider: '{{ cli }}' + register: result +- debug: var=result +- assert: + that: + - result.changed == false + - result.updates is not defined +- name: teardown + enos_config: + commands: + - no vlan 13\n + provider: '{{ cli }}' + become: true + become_method: ansible.netcommon.enable + ignore_errors: true +- debug: msg="END cli/defaults.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/enos_config/tests/cli/force.yaml b/ansible_collections/community/network/tests/integration/targets/enos_config/tests/cli/force.yaml new file mode 100644 index 000000000..db48a2380 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_config/tests/cli/force.yaml @@ -0,0 +1,41 @@ +--- +- debug: msg="START cli/force.yaml" + +- name: setup + enos_config: + commands: + - no vlan 13\n + provider: "{{ cli }}" + ignore_errors: yes + +- name: configure device with config + enos_config: + src: roles/enos_config/templates/basic/config.j2 + provider: "{{ cli }}" + match: none + register: result + +- assert: + that: + - "result.changed == true" + - "result.updates is defined" + +- name: check device with config + enos_config: + src: roles/enos_config/templates/basic/config.j2 + provider: "{{ cli }}" + match: none + register: result + +- assert: + that: + - "result.changed == true" + - "result.updates is defined" + +- name: teardown + enos_config: + commands: + - no vlan 13\n + provider: "{{ cli }}" + +- debug: msg="END cli/force.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/enos_config/vars/main.yml b/ansible_collections/community/network/tests/integration/targets/enos_config/vars/main.yml new file mode 100644 index 000000000..d0fcdabf5 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_config/vars/main.yml @@ -0,0 +1,9 @@ +--- +cli: + host: "{{ inventory_hostname }}" + port: 22 + username: admin + password: admin + timeout: 60 + context: ansible + auth_pass: diff --git a/ansible_collections/community/network/tests/integration/targets/enos_facts/README.md b/ansible_collections/community/network/tests/integration/targets/enos_facts/README.md new file mode 100644 index 000000000..12cbc7881 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_facts/README.md @@ -0,0 +1,111 @@ +# Ansible Role: enos_facts - Displays switch information +--- +<add role description below> + + Collects a base set of device facts from a remote Lenovo device + running on ENOS. This module prepends all of the + base network fact keys with C(ansible_net_<fact>). The facts + module will always collect a base set of facts from the device + and can enable or disable collection of additional facts. + +## Requirements +--- +<add role requirements information below> + +- Ansible version 2.4 or later ([Ansible installation documentation](http://docs.ansible.com/ansible/intro_installation.html)) +- Lenovo switches running ENOS version 8.4.1.0 or later +- an SSH connection to the Lenovo switch (SSH must be enabled on the network device) + + +## Role Variables +--- +<add role variables information below> +Available variables are listed below, along with description. + +The following are mandatory inventory variables: + +Variable | Description +--- | --- +`ansible_connection` | Has to be `network_cli` +`ansible_network_os` | Has to be `enos` +`ansible_ssh_user` | Specifies the username used to log into the switch +`ansible_ssh_pass` | Specifies the password used to log into the switch + +To gather subsets you will specify the following variables to get appropriate +data retrieved from the devices + +Variable | Description +--- | --- +`gather_subset` | When supplied, this argument will restrict the facts collected to a given subset. Possible values for this argument include all, hardware, config, and interfaces. Can specify a list of values to include a larger subset. Values can also be used with an initial C(M(!)) to specify that a specific subset should not be collected. + +Need to specify these variables in vars/main.yml under variable `cli` + +Variable | Description +--- | --- +`host` | Has to be "{{ inventory_hostname }}" +`port` | Has to be`22` +`username` | User Name of switch +`password` | Password of switch +`timeout` | time out value for CLI +`authorize` | Whether u have to enter enable mode for data collection. +`auth_pass`| Enable Password if required + + +## Dependencies +--- +<add dependencies information below> + +- username.iptables - Configures the firewall and blocks all ports except those needed for web server and SSH access. +- username.common - Performs common server configuration. +- enos_facts.py - This module file will be located at lib/ansible/modules/network/enos/ of Ansible installation. +- enos.py - This module util file will be located at lib/ansible/module_utils/network/enos of Ansible installation. +- enos.py - This module plugin file will be located at lib/ansible/plugins/action of Ansible installation. +- enos.py - This module plugin file will be located at lib/ansible/plugins/cliconf of Ansible installation. +- enos.py - This module plugin file will be located at lib/ansible/plugins/cliconf of Ansible installation. +- /etc/ansible/hosts - You must edit the */etc/ansible/hosts* file with the device information of the switches designated as leaf switches. You may refer to *enos_command_sample_hosts* for a sample configuration. + +Ansible keeps track of all network elements that it manages through a hosts file. Before the execution of a playbook, the hosts file must be set up. + +Open the */etc/ansible/hosts* file with root privileges. Most of the file is commented out by using **#**. You can also comment out the entries you will be adding by using **#**. You need to copy the content of the hosts file for the role into the */etc/ansible/hosts* file. The sample hosts file for the role is located in the main directory. + +``` +[enos_facts] +10.241.105.24 ansible_connection=network_cli ansible_network_os=enos ansible_ssh_user=<username> ansible_ssh_pass=<password> +``` + +**Note:** You need to change the IP addresses to fit your specific topology. You also need to change the `<username>` and `<password>` to the appropriate values used to log into the specific Lenovo network devices. + + +## Example Playbook +--- +<add playbook samples below> + +To execute an Ansible playbook, use the following command: + +``` +ansible-playbook enos_facts_sample.yml -vvv +``` + +`-vvv` is an optional verbose command that helps identify what is happening during playbook execution. The playbook for each role is located in the main directory of the solution. + +``` + - name: Module to do some CLI Command configurations + hosts: enos_facts + gather_facts: no + connection: network_cli + roles: + - enos_facts +``` + +## License +--- +<add license information below> +Copyright (C) 2017 Lenovo, Inc. + +This file is part of Ansible + +Ansible is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +Ansible is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with Ansible. If not, see <http://www.gnu.org/licenses/>. diff --git a/ansible_collections/community/network/tests/integration/targets/enos_facts/aliases b/ansible_collections/community/network/tests/integration/targets/enos_facts/aliases new file mode 100644 index 000000000..be010d923 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_facts/aliases @@ -0,0 +1,2 @@ +# No Lenovo Switch simulator yet, so not enabled +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/enos_facts/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/enos_facts/defaults/main.yaml new file mode 100644 index 000000000..9ef5ba516 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_facts/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/enos_facts/tasks/cli.yaml b/ansible_collections/community/network/tests/integration/targets/enos_facts/tasks/cli.yaml new file mode 100644 index 000000000..d675462dd --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_facts/tasks/cli.yaml @@ -0,0 +1,15 @@ +--- +- name: collect all cli test cases + find: + paths: "{{ role_path }}/tests/cli" + patterns: "{{ testcase }}.yaml" + register: test_cases + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test case + include: "{{ test_case_to_run }}" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/enos_facts/tasks/main.yml b/ansible_collections/community/network/tests/integration/targets/enos_facts/tasks/main.yml new file mode 100644 index 000000000..fa3dd7fb2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_facts/tasks/main.yml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: cli.yaml, tags: ['cli'] } diff --git a/ansible_collections/community/network/tests/integration/targets/enos_facts/tests/cli/all_facts.yaml b/ansible_collections/community/network/tests/integration/targets/enos_facts/tests/cli/all_facts.yaml new file mode 100644 index 000000000..836dad8bc --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_facts/tests/cli/all_facts.yaml @@ -0,0 +1,27 @@ +--- +- debug: msg="START cli/all_facts.yaml" + +- name: test getting all facts + enos_facts: + gather_subset: + - all + register: result + +- assert: + that: + # _facts modules should never report a change + - "result.changed == false" + + # Correct subsets are present + - "'config' in result.ansible_facts.ansible_net_gather_subset" + - "'hardware' in result.ansible_facts.ansible_net_gather_subset" + - "'default' in result.ansible_facts.ansible_net_gather_subset" + - "'interfaces' in result.ansible_facts.ansible_net_gather_subset" + + # Items from those subsets are present + #- "result.ansible_facts.ansible_net_filesystems is defined" + # Check that these facts not only are present, but are valid (positive integers) + - "result.ansible_facts.ansible_net_memfree_mb > 1" + - "result.ansible_facts.ansible_net_memtotal_mb > 1" + +- debug: msg="END cli/all_facts.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/enos_facts/tests/cli/default_facts.yaml b/ansible_collections/community/network/tests/integration/targets/enos_facts/tests/cli/default_facts.yaml new file mode 100644 index 000000000..61549dc95 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_facts/tests/cli/default_facts.yaml @@ -0,0 +1,29 @@ +--- +- debug: msg="START cli/default_facts.yaml" + +- name: test getting default facts + enos_facts: + register: result + +- assert: + that: + # _facts modules should never report a change + - "result.changed == false" + + # Correct subsets are present + - "'hardware' in result.ansible_facts.ansible_net_gather_subset" + - "'default' in result.ansible_facts.ansible_net_gather_subset" + - "'interfaces' in result.ansible_facts.ansible_net_gather_subset" + #- "result.ansible_facts.ansible_net_filesystems is defined" + # ... and not present + - "'config' not in result.ansible_facts.ansible_net_gather_subset" + + # Items from those subsets are present + #- "result.ansible_facts.ansible_net_filesystems is defined" #hw + - "result.ansible_facts.ansible_net_memtotal_mb > 10" #hw + - "result.ansible_facts.ansible_net_interfaces | length > 1" # more than one interface returned + + # ... and not present + - "result.ansible_facts.ansible_net_config is not defined" # config + +- debug: msg="END cli/default.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/enos_facts/tests/cli/invalid_subset.yaml b/ansible_collections/community/network/tests/integration/targets/enos_facts/tests/cli/invalid_subset.yaml new file mode 100644 index 000000000..0b12c6c85 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_facts/tests/cli/invalid_subset.yaml @@ -0,0 +1,43 @@ +--- +- debug: msg="START cli/invalid_subset.yaml" + +- name: test invalid subset (foobar) + enos_facts: + gather_subset: + - "foobar" + register: result + ignore_errors: true + +- assert: + that: + # Failures shouldn't return changes + - "result.changed == false" + # It's a failure + - "result.failed == true" + # Sensible Failure message + - "result.msg == 'Bad subset'" + +############### +# FIXME Future +# We may in the future want to add a test for + +- name: test subset specified multiple times + enos_facts: + gather_subset: + - "!hardware" + - "hardware" + authorize: yes + register: result + ignore_errors: true + +- assert: + that: + # Failures shouldn't return changes + - "result.changed == false" + # It's a failure + - "result.failed == true" + # Sensible Failure message + - "result.msg == 'Bad subset'" + ignore_errors: true + +- debug: msg="END cli/invalid_subset.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/enos_facts/tests/cli/not_hardware.yaml b/ansible_collections/community/network/tests/integration/targets/enos_facts/tests/cli/not_hardware.yaml new file mode 100644 index 000000000..a885c59b1 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_facts/tests/cli/not_hardware.yaml @@ -0,0 +1,28 @@ +--- +- debug: msg="START cli/not_hardware_facts.yaml" + +- name: test not hardware + enos_facts: + gather_subset: + - "!hardware" + register: result + +- assert: + that: + # _facts modules should never report a change + - "result.changed == false" + + # Correct subsets are present + - "'config' in result.ansible_facts.ansible_net_gather_subset" + + - "'default' in result.ansible_facts.ansible_net_gather_subset" + - "'interfaces' in result.ansible_facts.ansible_net_gather_subset" + # ... and not present + - "'hardware' not in result.ansible_facts.ansible_net_gather_subset" + + # Items from those subsets are present + - "result.ansible_facts.ansible_net_interfaces | length > 1" # more than one interface returned + # ... and not present + - "result.ansible_facts.ansible_net_filesystems is not defined" + +- debug: msg="END cli/not_hardware_facts.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/enos_facts/vars/main.yml b/ansible_collections/community/network/tests/integration/targets/enos_facts/vars/main.yml new file mode 100644 index 000000000..aa25153ec --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/enos_facts/vars/main.yml @@ -0,0 +1,9 @@ +--- +cli: + host: "{{ inventory_hostname }}" + port: 22 + username: admin + password: admin + timeout: 30 + authorize: True + auth_pass: diff --git a/ansible_collections/community/network/tests/integration/targets/exos_command/aliases b/ansible_collections/community/network/tests/integration/targets/exos_command/aliases new file mode 100644 index 000000000..ad7ccf7ad --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_command/aliases @@ -0,0 +1 @@ +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/exos_command/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/exos_command/defaults/main.yaml new file mode 100644 index 000000000..9ef5ba516 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_command/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/exos_command/tasks/cli.yaml b/ansible_collections/community/network/tests/integration/targets/exos_command/tasks/cli.yaml new file mode 100644 index 000000000..5068fbcf9 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_command/tasks/cli.yaml @@ -0,0 +1,16 @@ +--- +- name: collect all common test cases + find: + paths: "{{ role_path }}/tests/common" + patterns: "{{ testcase }}.yaml" + register: test_cases + delegate_to: localhost + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test cases (connection=network_cli) + include: "{{ test_case_to_run }} ansible_connection=network_cli" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/exos_command/tasks/httpapi.yaml b/ansible_collections/community/network/tests/integration/targets/exos_command/tasks/httpapi.yaml new file mode 100644 index 000000000..7435ff0f0 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_command/tasks/httpapi.yaml @@ -0,0 +1,16 @@ +--- +- name: collect all common test cases + find: + paths: "{{ role_path }}/tests/common" + patterns: "{{ testcase }}.yaml" + register: test_cases + delegate_to: localhost + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test cases (connection=network_cli) + include: "{{ test_case_to_run }} ansible_connection=httpapi" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/exos_command/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/exos_command/tasks/main.yaml new file mode 100644 index 000000000..f4d7beaab --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_command/tasks/main.yaml @@ -0,0 +1,8 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- {include: cli.yaml, tags: ['cli']} +- {include: httpapi.yaml, tags: ['httpapi']} diff --git a/ansible_collections/community/network/tests/integration/targets/exos_command/tests/common/multiple.yaml b/ansible_collections/community/network/tests/integration/targets/exos_command/tests/common/multiple.yaml new file mode 100644 index 000000000..ce763ddc4 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_command/tests/common/multiple.yaml @@ -0,0 +1,16 @@ +--- +- debug: msg="START common/multiple.yaml on connection={{ ansible_connection }}" + +- name: run multiple commands on remote nodes + exos_command: + commands: + - show version + - show ports no-refresh + register: result + +- assert: + that: + - "result.changed == false" + - "result.stdout is defined" + +- debug: msg="END common/multiple.yaml on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_command/tests/common/prompt.yaml b/ansible_collections/community/network/tests/integration/targets/exos_command/tests/common/prompt.yaml new file mode 100644 index 000000000..51fe17ced --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_command/tests/common/prompt.yaml @@ -0,0 +1,17 @@ +--- +- debug: msg="START common/prompt.yaml on connection={{ ansible_connection }}" + +- name: run command that requires answering a prompt + exos_command: + commands: + - command: 'clear license-info' + prompt: 'Are you sure.*' + answer: 'Yes' + register: result + +- assert: + that: + - "result.changed == false" + - "result.stdout is defined" + +- debug: msg="END common/prompt.yaml on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_command/tests/common/single.yaml b/ansible_collections/community/network/tests/integration/targets/exos_command/tests/common/single.yaml new file mode 100644 index 000000000..73976229a --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_command/tests/common/single.yaml @@ -0,0 +1,14 @@ +--- +- debug: msg="START common/single.yaml on connection={{ ansible_connection }}" + +- name: run show version on remote devices + exos_command: + commands: show version + register: result + +- assert: + that: + - "result.changed == false" + - "result.stdout is defined" + +- debug: msg="END common/single.yaml on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_command/tests/common/waitfor.yaml b/ansible_collections/community/network/tests/integration/targets/exos_command/tests/common/waitfor.yaml new file mode 100644 index 000000000..f1c390ae5 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_command/tests/common/waitfor.yaml @@ -0,0 +1,15 @@ +--- +- debug: msg="START common/waitfor.yaml on connection={{ ansible_connection }}" + +- name: run show version and check to see if output contains ExtremeXOS + exos_command: + commands: show version + wait_for: result[0] contains ExtremeXOS + register: result + +- assert: + that: + - "result.changed == false" + - "result.stdout is defined" + +- debug: msg="END common/waitfor.yaml on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_command/tests/common/waitfor_multiple.yaml b/ansible_collections/community/network/tests/integration/targets/exos_command/tests/common/waitfor_multiple.yaml new file mode 100644 index 000000000..575ca35fc --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_command/tests/common/waitfor_multiple.yaml @@ -0,0 +1,20 @@ +--- +- debug: msg="START common/waitfor_multiple.yaml on connection={{ ansible_connection }}" + +- name: run multiple commands and evaluate the output + exos_command: + commands: + - show version + - show ports no-refresh + wait_for: + - result[0] contains ExtremeXOS + - result[1] contains 20 + register: result + +- assert: + that: + - "result.changed == false" + - "result.stdout is defined" + + +- debug: msg="END common/waitfor_multiple.yaml on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_config/aliases b/ansible_collections/community/network/tests/integration/targets/exos_config/aliases new file mode 100644 index 000000000..ad7ccf7ad --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_config/aliases @@ -0,0 +1 @@ +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/exos_config/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/exos_config/defaults/main.yaml new file mode 100644 index 000000000..9ef5ba516 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_config/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/exos_config/tasks/cli.yaml b/ansible_collections/community/network/tests/integration/targets/exos_config/tasks/cli.yaml new file mode 100644 index 000000000..5068fbcf9 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_config/tasks/cli.yaml @@ -0,0 +1,16 @@ +--- +- name: collect all common test cases + find: + paths: "{{ role_path }}/tests/common" + patterns: "{{ testcase }}.yaml" + register: test_cases + delegate_to: localhost + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test cases (connection=network_cli) + include: "{{ test_case_to_run }} ansible_connection=network_cli" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/exos_config/tasks/httpapi.yaml b/ansible_collections/community/network/tests/integration/targets/exos_config/tasks/httpapi.yaml new file mode 100644 index 000000000..7ce2b1dad --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_config/tasks/httpapi.yaml @@ -0,0 +1,16 @@ +--- +- name: collect all common test cases + find: + paths: "{{ role_path }}/tests/common" + patterns: "{{ testcase }}.yaml" + register: test_cases + delegate_to: localhost + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test cases (connection=httpapi) + include: "{{ test_case_to_run }} ansible_connection=httpapi" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/exos_config/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/exos_config/tasks/main.yaml new file mode 100644 index 000000000..f4d7beaab --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_config/tasks/main.yaml @@ -0,0 +1,8 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- {include: cli.yaml, tags: ['cli']} +- {include: httpapi.yaml, tags: ['httpapi']} diff --git a/ansible_collections/community/network/tests/integration/targets/exos_config/templates/master.cfg b/ansible_collections/community/network/tests/integration/targets/exos_config/templates/master.cfg new file mode 100644 index 000000000..f11db04f7 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_config/templates/master.cfg @@ -0,0 +1,242 @@ +# +# Module devmgr configuration. +# +configure snmp sysName "Switch2" +configure snmp sysContact "support@extremenetworks.com, +1 888 257 3000" +configure sys-recovery-level switch reset + +# +# Module vlan configuration. +# +configure vlan default delete ports all +configure vr VR-Default delete ports 1-54 +configure vr VR-Default add ports 1-54 +configure vlan default delete ports 2,4-7,10-13 +create vlan "ansible_500" +configure vlan ansible_500 tag 500 +create vlan "ansible_600" +configure vlan ansible_600 tag 600 +create vlan "ansible_700" +configure vlan ansible_700 tag 700 +configure ports 2 description-string "MasterUplink" +configure ports 49 auto off speed 10000 duplex full +configure ports 50 auto off speed 10000 duplex full +configure ports 51 auto off speed 10000 duplex full +configure ports 52 auto off speed 10000 duplex full +configure vlan Default add ports 1,3,8-9,14-54 untagged + +# +# Module mcmgr configuration. +# + +# +# Module otm configuration. +# + +# +# Module fdb configuration. +# + +# +# Module rtmgr configuration. +# + +# +# Module policy configuration. +# + +# +# Module aaa configuration. +# + +# +# Module acl configuration. +# + + + +configure access-list zone SYSTEM application VlanManager application-priority 18 +configure access-list zone SYSTEM application SlppGuard application-priority 19 + +# +# Module bfd configuration. +# + +# +# Module bgp configuration. +# + +# +# Module cfgmgr configuration. +# +enable cli history expansion permanent + +# +# Module dosprotect configuration. +# + +# +# Module dot1ag configuration. +# + +# +# Module eaps configuration. +# + +# +# Module edp configuration. +# + +# +# Module elrp configuration. +# + +# +# Module ems configuration. +# + +# +# Module epm configuration. +# + +# +# Module erps configuration. +# + +# +# Module esrp configuration. +# + +# +# Module ethoam configuration. +# + +# +# Module etmon configuration. +# + +# +# Module exsshd configuration. +# +enable ssh2 + +# +# Module gptp configuration. +# + +# +# Module hal configuration. +# + +# +# Module idMgr configuration. +# + +# +# Module ipSecurity configuration. +# + +# +# Module ipfix configuration. +# + +# +# Module lldp configuration. +# + +# +# Module mrp configuration. +# + +# +# Module msdp configuration. +# + +# +# Module netLogin configuration. +# + +# +# Module netTools configuration. +# + +# +# Module nodealias configuration. +# + +# +# Module ntp configuration. +# + +# +# Module ospf configuration. +# + +# +# Module ospfv3 configuration. +# + +# +# Module pim configuration. +# + +# +# Module poe configuration. +# + +# +# Module rip configuration. +# + +# +# Module ripng configuration. +# + +# +# Module snmpMaster configuration. +# +configure snmpv3 engine-id 03:00:04:96:97:f4:fa + +# +# Module stp configuration. +# + +# +# Module synce configuration. +# + +# +# Module techSupport configuration. +# + +# +# Module telnetd configuration. +# + +# +# Module tftpd configuration. +# + +# +# Module thttpd configuration. +# + +# +# Module twamp configuration. +# + +# +# Module vmt configuration. +# + +# +# Module vrrp configuration. +# + +# +# Module vsm configuration. +# + +# +# Module vpex configuration. +# diff --git a/ansible_collections/community/network/tests/integration/targets/exos_config/tests/common/backup.yaml b/ansible_collections/community/network/tests/integration/targets/exos_config/tests/common/backup.yaml new file mode 100644 index 000000000..7a7623d35 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_config/tests/common/backup.yaml @@ -0,0 +1,35 @@ +--- +- debug: msg="START common/backup.yaml on connection={{ ansible_connection }}" + +- name: configure vlan + exos_config: + lines: + - create vlan 100 + backup: yes + backup_options: + filename: backup.cfg + dir_path: '{{ role_path }}' + register: result + +- set_fact: content="{{ lookup('file', '{{ role_path }}/backup.cfg') }}" + +- name: Assert local file creation + assert: + that: + - "content is search('Module devmgr')" + +- name: delete configurable backup file path + file: + path: "{{ role_path }}/backup.cfg" + state: absent + +- name: Restore original configuration + exos_config: + lines: + - delete vlan 100 + +- name: Save the configuration to startup + exos_config: + save_when: modified + +- debug: msg="END common/backup.yaml on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_config/tests/common/diff_against_file.yaml b/ansible_collections/community/network/tests/integration/targets/exos_config/tests/common/diff_against_file.yaml new file mode 100644 index 000000000..b09a70edb --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_config/tests/common/diff_against_file.yaml @@ -0,0 +1,32 @@ +--- +- debug: msg="START common/diff_against_file.yaml on connection={{ ansible_connection }}" + +- name: Setup a configuration + exos_config: + lines: + - "create vlan 100" +- debug: msg="{{ role_path }}" +- set_fact: master="{{ lookup('file', '{{ role_path }}/templates/master.cfg') }}" + +- name: check the running-config against master config + exos_config: + diff_against: intended + intended_config: "{{ master }}" + diff: yes + register: result +- assert: + that: + - "result.diff.before is defined" + - "result.diff.before is search('configure vlan VLAN_0100 tag 100')" + - "result.diff.after is defined" + +- name: Restore original configuration + exos_config: + lines: + - "delete vlan 100" + +- name: Save the configuration to startup + exos_config: + save_when: modified + +- debug: msg="END common/diff_against_file.yaml on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_config/tests/common/diff_against_startup.yaml b/ansible_collections/community/network/tests/integration/targets/exos_config/tests/common/diff_against_startup.yaml new file mode 100644 index 000000000..39bd288fe --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_config/tests/common/diff_against_startup.yaml @@ -0,0 +1,42 @@ +--- +- debug: msg="START cli/diff_against_startup.yaml on connection={{ ansible_connection }}" + +- name: Make a configuration and save it to startup + exos_config: + lines: + - "create vlan 100" + +- name: Save the configuration to startup + exos_config: + save_when: modified + +- name: Make a configuration change without saving into running config + exos_config: + lines: + - "create vlan 200" + +- name: check the startup-config against the running-config + exos_config: + diff_against: startup + diff_ignore_lines: + - ntp clock .* + diff: yes + register: result +- assert: + that: + - "result.diff.before is defined" + - "result.diff.after is defined" + - "result.diff.before is search('configure vlan VLAN_0100 tag 100')" + - "result.diff.after is search('configure vlan VLAN_0200 tag 200')" + +- name: Restore and save original config + exos_config: + lines: + - "delete vlan 100" + - "delete vlan 200" + +- name: Save the configuration to startup + exos_config: + save_when: modified + +- debug: msg="END cli/diff_against_startup.yaml on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_config/tests/common/save_config.yaml b/ansible_collections/community/network/tests/integration/targets/exos_config/tests/common/save_config.yaml new file mode 100644 index 000000000..a83646f9a --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_config/tests/common/save_config.yaml @@ -0,0 +1,51 @@ +--- +- debug: msg="START common/save_config.yaml on connection={{ ansible_connection }}" + +- name: Setup by creating VLAN + exos_config: + lines: + - create vlan 200 + +- name: Saving modified configuration in primary.cfg for the next startup + exos_config: + save_when: modified + register: result +- assert: + that: + - "result.changed == True" + +- name: Get the config file + exos_command: + commands: show switch + register: result + +- name: Get the startup config file + set_fact: config_selected='{{ result.stdout[0] | regex_search('(Config Selected:)\s+(\w+)', '\\2')}}' + +- name: Check if the primary config file has the changes + exos_command: + commands: "debug cfgmgr show configuration file {{ config_selected.0 }}" + register: result + +- assert: + that: + - "result.stdout[0] is search('configure vlan VLAN_0200 tag 200')" + +- name: Idempotent save configuration + exos_config: + save_when: modified + register: result + +- assert: + that: + - "result.changed == False" + +- name: Restore initial state by deleting vlan + exos_config: + lines: delete vlan 200 + +- name: Restore orignal primary cfg + exos_config: + save_when: modified + +- debug: msg="END common/save_config.yaml on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_config/tests/common/sysname.yaml b/ansible_collections/community/network/tests/integration/targets/exos_config/tests/common/sysname.yaml new file mode 100644 index 000000000..26ef19ee5 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_config/tests/common/sysname.yaml @@ -0,0 +1,35 @@ +--- +- debug: msg="START common/sysname.yaml" + +- name: Get intial SysName + exos_command: + commands: show switch | grep SysName + register: sysname_init + +- name: configure SNMP system name + exos_config: + lines: configure snmp sysName "{{ inventory_hostname }}" + register: result +- assert: + that: + - "result.commands[0] is search('configure')" + - "result.changed == True" + +- name: Idempotency of SNMP system name configuration + exos_config: + lines: configure snmp sysName "{{ inventory_hostname }}" + register: result +- assert: + that: + - "result.changed == False" +- set_fact: old_sysname='{{ sysname_init.stdout[0] | regex_search('([^\s]+$)') }}' + +- name: Restore inital sysName + exos_config: + lines: 'configure snmp sysName {{ old_sysname }}' + +- name: Save the configuration to startup + exos_config: + save_when: modified + +- debug: msg="END common/sysname.yaml" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_facts/aliases b/ansible_collections/community/network/tests/integration/targets/exos_facts/aliases new file mode 100644 index 000000000..ad7ccf7ad --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_facts/aliases @@ -0,0 +1 @@ +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/exos_facts/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/exos_facts/defaults/main.yaml new file mode 100644 index 000000000..9ef5ba516 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_facts/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/exos_facts/tasks/cli.yaml b/ansible_collections/community/network/tests/integration/targets/exos_facts/tasks/cli.yaml new file mode 100644 index 000000000..5068fbcf9 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_facts/tasks/cli.yaml @@ -0,0 +1,16 @@ +--- +- name: collect all common test cases + find: + paths: "{{ role_path }}/tests/common" + patterns: "{{ testcase }}.yaml" + register: test_cases + delegate_to: localhost + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test cases (connection=network_cli) + include: "{{ test_case_to_run }} ansible_connection=network_cli" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/exos_facts/tasks/httpapi.yaml b/ansible_collections/community/network/tests/integration/targets/exos_facts/tasks/httpapi.yaml new file mode 100644 index 000000000..7435ff0f0 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_facts/tasks/httpapi.yaml @@ -0,0 +1,16 @@ +--- +- name: collect all common test cases + find: + paths: "{{ role_path }}/tests/common" + patterns: "{{ testcase }}.yaml" + register: test_cases + delegate_to: localhost + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test cases (connection=network_cli) + include: "{{ test_case_to_run }} ansible_connection=httpapi" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/exos_facts/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/exos_facts/tasks/main.yaml new file mode 100644 index 000000000..f4d7beaab --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_facts/tasks/main.yaml @@ -0,0 +1,8 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- {include: cli.yaml, tags: ['cli']} +- {include: httpapi.yaml, tags: ['httpapi']} diff --git a/ansible_collections/community/network/tests/integration/targets/exos_facts/tests/common/basic.yaml b/ansible_collections/community/network/tests/integration/targets/exos_facts/tests/common/basic.yaml new file mode 100644 index 000000000..e888a7f6a --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_facts/tests/common/basic.yaml @@ -0,0 +1,27 @@ +--- +- debug: + msg: "START common/basic.yaml on connection={{ ansible_connection }}" +- name: Collect facts + exos_facts: + gather_subset: all + register: result + +- debug: "msg={{ result }}" + +- assert: + that: + # _facts modules should never report a change + - "result.changed == false" + + # Correct subsets are present + - "'config' in result.ansible_facts.ansible_net_gather_subset" + - "'hardware' in result.ansible_facts.ansible_net_gather_subset" + - "'default' in result.ansible_facts.ansible_net_gather_subset" + - "'interfaces' in result.ansible_facts.ansible_net_gather_subset" + + # Check that these facts not only are present, but are valid (positive integers) + - "result.ansible_facts.ansible_net_memfree_mb > 1" + - "result.ansible_facts.ansible_net_memtotal_mb > 1" + +- debug: + msg: "END common/basic.yaml on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_facts/tests/common/default_facts.yaml b/ansible_collections/community/network/tests/integration/targets/exos_facts/tests/common/default_facts.yaml new file mode 100644 index 000000000..3507407d9 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_facts/tests/common/default_facts.yaml @@ -0,0 +1,28 @@ +--- +- debug: msg="START common/default_facts.yaml on connection={{ ansible_connection }}" + + +- name: test getting default facts + exos_facts: + register: result + +- assert: + that: + # _facts modules should never report a change + - "result.changed == false" + + # Correct subsets are present + - "'hardware' in result.ansible_facts.ansible_net_gather_subset" + - "'default' in result.ansible_facts.ansible_net_gather_subset" + - "'interfaces' in result.ansible_facts.ansible_net_gather_subset" + # ... and not present + - "'config' not in result.ansible_facts.ansible_net_gather_subset" + + # Items from those subsets are present + - "result.ansible_facts.ansible_net_memtotal_mb > 10" #hw + - "result.ansible_facts.ansible_net_interfaces | length > 1" # more than one interface returned + + # ... and not present + - "result.ansible_facts.ansible_net_config is not defined" # config + +- debug: msg="END common/default_facts.yaml on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_facts/tests/common/invalid_subset.yaml b/ansible_collections/community/network/tests/integration/targets/exos_facts/tests/common/invalid_subset.yaml new file mode 100644 index 000000000..52dfe65d1 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_facts/tests/common/invalid_subset.yaml @@ -0,0 +1,40 @@ +--- +- debug: msg="START common/invalid_subset.yaml on connection={{ ansible_connection }}" + + +- name: test invalid subset (foobar) + exos_facts: + gather_subset: + - "foobar" + register: result + ignore_errors: true + + +- assert: + that: + # Failures shouldn't return changes + - "result.changed == false" + # It's a failure + - "result.failed == true" + # Sensible Failure message + - "result.msg == 'Subset must be one of [config, default, hardware, interfaces], got foobar'" + +- name: test subset specified multiple times + exos_facts: + gather_subset: + - "!hardware" + - "hardware" + register: result + ignore_errors: true + +- assert: + that: + # Failures shouldn't return changes + - "result.changed == false" + # It's a failure + - "result.failed == true" + # Sensible Failure message + - "result.msg == 'Bad subset'" + ignore_errors: true + +- debug: msg="END common/invalid_subset.yaml on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_facts/tests/common/not_hardware_facts.yaml b/ansible_collections/community/network/tests/integration/targets/exos_facts/tests/common/not_hardware_facts.yaml new file mode 100644 index 000000000..1f28c7833 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_facts/tests/common/not_hardware_facts.yaml @@ -0,0 +1,27 @@ +--- +- debug: msg="START common/not_hardware_facts.yaml on connection={{ ansible_connection }}" + + +- name: test not hardware + exos_facts: + gather_subset: + - "!hardware" + register: result + +- assert: + that: + # _facts modules should never report a change + - "result.changed == false" + + # Correct subsets are present + - "'config' in result.ansible_facts.ansible_net_gather_subset" + + - "'default' in result.ansible_facts.ansible_net_gather_subset" + - "'interfaces' in result.ansible_facts.ansible_net_gather_subset" + # ... and not present + - "'hardware' not in result.ansible_facts.ansible_net_gather_subset" + + # Items from those subsets are present + - "result.ansible_facts.ansible_net_interfaces | length > 1" # more than one interface returned + +- debug: msg="END common/not_hardware_facts.yaml on connection={{ ansible_connection }}" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/aliases b/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/aliases new file mode 100644 index 000000000..ad7ccf7ad --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/aliases @@ -0,0 +1 @@ +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/defaults/main.yaml new file mode 100644 index 000000000..164afead2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "[^_].*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/tasks/httpapi.yaml b/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/tasks/httpapi.yaml new file mode 100644 index 000000000..c7a1d48be --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/tasks/httpapi.yaml @@ -0,0 +1,16 @@ +- name: Collect all httpapi test cases + find: + paths: '{{ role_path }}/tests/httpapi' + patterns: '{{ testcase }}.yaml' + use_regex: true + register: test_cases + delegate_to: localhost +- name: Set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" +- name: Run test case (connection=httpapi) + include: '{{ test_case_to_run }}' + vars: + ansible_connection: ansible.netcommon.httpapi + with_items: '{{ test_items }}' + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/tasks/main.yaml new file mode 100644 index 000000000..e29a5d3b7 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: httpapi.yaml, tags: ['httpapi'] } diff --git a/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/tests/httpapi/_populate_config.yaml b/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/tests/httpapi/_populate_config.yaml new file mode 100644 index 000000000..a69a578a6 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/tests/httpapi/_populate_config.yaml @@ -0,0 +1,12 @@ +--- +- name: Populate config + exos_config: + lines: + - create vlan vlan_10 tag 10 + - create vlan vlan_20 tag 20 + - create vlan vlan_30 tag 30 + - create vlan vlan_40 tag 40 + - configure vlan 10 add ports 1 untagged + - configure vlan 20 add ports 2 tagged + - configure vlan 20 add ports 3 untagged + - configure vlan 30 add ports 3 tagged diff --git a/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/tests/httpapi/_reset_config.yaml b/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/tests/httpapi/_reset_config.yaml new file mode 100644 index 000000000..c3a3ecf94 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/tests/httpapi/_reset_config.yaml @@ -0,0 +1,7 @@ +--- +- name: Reset config + exos_config: + lines: + - configure vlan Default add ports all untagged + - configure vlan 2-4094 delete ports all + - delete vlan 2-4094 diff --git a/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/tests/httpapi/deleted.yaml b/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/tests/httpapi/deleted.yaml new file mode 100644 index 000000000..69af62872 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/tests/httpapi/deleted.yaml @@ -0,0 +1,96 @@ +--- +- debug: + msg: "Start exos_l2_interfaces deleted integration tests ansible_connection={{ ansible_connection }}" + +- include_tasks: _reset_config.yaml + ignore_errors: yes + +- include_tasks: _populate_config.yaml + +- set_fact: + config: + - access: + vlan: 1 + name: '2' + trunk: null + - access: + vlan: 1 + name: '3' + trunk: null + config_all: + - access: + vlan: 1 + name: '1' + trunk: null + +- exos_facts: + gather_network_resources: l2_interfaces + +- block: + - name: Delete L2 interface configuration + exos_l2_interfaces: &deleted + config: + - name: '2' + - name: '3' + state: deleted + register: result + + - name: Assert that correct set of results were generated + assert: + that: + - "deleted['requests_1']|symmetric_difference(result['requests']) == []" + - "ansible_facts.network_resources.l2_interfaces|symmetric_difference(result.before) == []" + + - exos_facts: + gather_network_resources: l2_interfaces + + - name: Assert that after dicts were correctly generated + assert: + that: + - "ansible_facts.network_resources.l2_interfaces|symmetric_difference(result.after) == []" + - "config|difference(ansible_facts.network_resources.l2_interfaces) == []" + + - name: Delete L2 interface configuration + exos_l2_interfaces: + config: + state: deleted + register: result + + - name: Assert that correct set of results were generated + assert: + that: + - "deleted['requests_2']|symmetric_difference(result['requests']) == []" + - "ansible_facts.network_resources.l2_interfaces|symmetric_difference(result.before) == []" + + - exos_facts: + gather_network_resources: l2_interfaces + + - name: Assert that after dicts were correctly generated + assert: + that: + - "ansible_facts.network_resources.l2_interfaces|symmetric_difference(result.after) == []" + - "config_all|difference(ansible_facts.network_resources.l2_interfaces) == []" + + - name: Delete attributes of all configured interfaces (IDEMPOTENT) + exos_l2_interfaces: *deleted + register: result + + - name: Assert that the previous task was idempotent + assert: + that: + - "result.changed == false" + + - exos_facts: + gather_network_resources: l2_interfaces + + - name: Assert that the before dicts were correctly generated + assert: + that: + - "ansible_facts.network_resources.l2_interfaces|symmetric_difference(result.before) == []" + + - set_fact: + expected_config: "{{ config + config_all }}" + + - assert: + that: + - "expected_config|difference(ansible_facts.network_resources.l2_interfaces) == []" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/tests/httpapi/merged.yaml b/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/tests/httpapi/merged.yaml new file mode 100644 index 000000000..ee2ceba3d --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/tests/httpapi/merged.yaml @@ -0,0 +1,85 @@ +--- +- debug: + msg: "START exos_l2_interfaces merged integration tests on connection={{ ansible_connection }}" + +- include_tasks: _reset_config.yaml + ignore_errors: yes + +- include_tasks: _populate_config.yaml + +- set_fact: + config: + - access: + vlan: 20 + name: '1' + trunk: null + - access: null + name: '2' + trunk: + native_vlan: 10 + trunk_allowed_vlans: + - 20 + - 30 + invalid_config: + - access: null + name: '3' + trunk: + trunk_allowed_vlans: + - 50 + +- exos_facts: + gather_network_resources: l2_interfaces + +- block: + - name: Merge the provided configuration with the existing running configuration + exos_l2_interfaces: &merged + config: "{{ config }}" + state: merged + register: result + + - name: Assert that correct set of results were generated + assert: + that: + - "merged['requests']|symmetric_difference(result['requests']) == []" + - "ansible_facts.network_resources.l2_interfaces|symmetric_difference(result.before) == []" + + - exos_facts: + gather_network_resources: l2_interfaces + + - name: Assert that after dicts were correctly generated + assert: + that: + - "ansible_facts.network_resources.l2_interfaces|symmetric_difference(result.after) == []" + - "config|difference(ansible_facts.network_resources.l2_interfaces) == []" + + - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) + exos_l2_interfaces: *merged + register: result + + - name: Assert that the previous task was idempotent + assert: + that: + - "result['changed'] == false" + + - exos_facts: + gather_network_resources: l2_interfaces + + - name: Assert that the before dicts were correctly generated + assert: + that: + - "ansible_facts.network_resources.l2_interfaces|symmetric_difference(result.before) == []" + - "config|difference(ansible_facts.network_resources.l2_interfaces) == []" + + - name: Merge provided configuration with existing configuration + exos_l2_interfaces: + config: "{{ invalid_config }}" + state: merged + register: result + ignore_errors: yes + + - name: Assert that the previous task failed + assert: + that: + - "result.changed == false" + - "result.failed == true" + - "result.msg == 'VLAN 50 does not exist'" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/tests/httpapi/overridden.yaml b/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/tests/httpapi/overridden.yaml new file mode 100644 index 000000000..b0bc0075c --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/tests/httpapi/overridden.yaml @@ -0,0 +1,76 @@ +--- +- debug: + msg: "Start exos_l2_interfaces overridden integration tests ansible_connection={{ ansible_connection }}" + +- include_tasks: _reset_config.yaml + ignore_errors: yes + +- include_tasks: _populate_config.yaml + +- set_fact: + config: + - access: null + name: '1' + trunk: + native_vlan: 10 + trunk_allowed_vlans: + - 20 + - 30 + config_all: + - access: + vlan: 1 + name: '2' + trunk: null + - access: + vlan: 1 + name: '3' + trunk: null + +- exos_facts: + gather_network_resources: l2_interfaces + +- block: + - name: Override device L2 interface configuration with provided configurations + exos_l2_interfaces: &overridden + config: "{{ config }}" + state: overridden + register: result + + - name: Assert that correct set of results were generated + assert: + that: + - "overridden['requests']|symmetric_difference(result['requests']) == []" + - "ansible_facts.network_resources.l2_interfaces|symmetric_difference(result.before) == []" + + - exos_facts: + gather_network_resources: l2_interfaces + + - name: Assert that after dicts were correctly generated + assert: + that: + - "ansible_facts.network_resources.l2_interfaces|symmetric_difference(result.after) == []" + + - set_fact: + expected_config: "{{ config + config_all }}" + + - assert: + that: + - "expected_config|difference(ansible_facts.network_resources.l2_interfaces) == []" + + - name: Override device LLDP interface configuration with provided configurations (IDEMPOTENT) + exos_l2_interfaces: *overridden + register: result + + - name: Assert that task was idempotent + assert: + that: + - "result['changed'] == false" + + - exos_facts: + gather_network_resources: l2_interfaces + + - name: Assert that the before dicts were correctly generated + assert: + that: + - "ansible_facts.network_resources.l2_interfaces|symmetric_difference(result.before) == []" + - "expected_config|difference(ansible_facts.network_resources.l2_interfaces) == []" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/tests/httpapi/replaced.yaml b/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/tests/httpapi/replaced.yaml new file mode 100644 index 000000000..7018e45cf --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/tests/httpapi/replaced.yaml @@ -0,0 +1,63 @@ +--- +- debug: + msg: "START exos_l2_interfaces replaced integration tests on connection={{ ansible_connection }}" + +- include_tasks: _reset_config.yaml + +- include_tasks: _populate_config.yaml + +- set_fact: + config: + - access: null + name: '2' + trunk: + native_vlan: 30 + trunk_allowed_vlans: + - 40 + - access: + vlan: 10 + name: '3' + trunk: null + +- exos_facts: + gather_network_resources: l2_interfaces + +- block: + - name: Replace L2 interface configuration with provided configuration + exos_l2_interfaces: &replaced + config: "{{ config }}" + state: replaced + register: result + + - name: Assert that correct set of results were generated + assert: + that: + - "replaced['requests']|symmetric_difference(result['requests']) == []" + - "ansible_facts.network_resources.l2_interfaces|symmetric_difference(result.before) == []" + + - exos_facts: + gather_network_resources: l2_interfaces + + - name: Assert that after dicts were correctly generated + assert: + that: + - "ansible_facts.network_resources.l2_interfaces|symmetric_difference(result.after) == []" + - "config|difference(ansible_facts.network_resources.l2_interfaces) == []" + + - name: Replace L2 interface configuration with provided configuration (IDEMPOTENT) + exos_l2_interfaces: *replaced + register: result + + - name: Assert that task was idempotent + assert: + that: + - "result['changed'] == false" + + - exos_facts: + gather_network_resources: l2_interfaces + + - name: Assert that the before dicts were correctly generated + assert: + that: + - "ansible_facts.network_resources.l2_interfaces|symmetric_difference(result.before) == []" + - "config|difference(ansible_facts.network_resources.l2_interfaces) == []" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/vars/main.yaml b/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/vars/main.yaml new file mode 100644 index 000000000..66b6fee4a --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_l2_interfaces/vars/main.yaml @@ -0,0 +1,44 @@ +--- +merged: + requests: + - data: '{"openconfig-vlan:config": {"interface-mode": "ACCESS", "access-vlan": 20}}' + method: PATCH + path: /rest/restconf/data/openconfig-interfaces:interfaces/interface=1/openconfig-if-ethernet:ethernet/openconfig-vlan:switched-vlan/config + - data: '{"openconfig-vlan:config": {"trunk-vlans": [20, 30], "interface-mode": "TRUNK", "native-vlan": 10}}' + method: PATCH + path: /rest/restconf/data/openconfig-interfaces:interfaces/interface=2/openconfig-if-ethernet:ethernet/openconfig-vlan:switched-vlan/config + +replaced: + requests: + - data: '{"openconfig-vlan:config": {"trunk-vlans": [40], "interface-mode": "TRUNK", "native-vlan": 30}}' + method: PATCH + path: /rest/restconf/data/openconfig-interfaces:interfaces/interface=2/openconfig-if-ethernet:ethernet/openconfig-vlan:switched-vlan/config + - data: '{"openconfig-vlan:config": {"interface-mode": "ACCESS", "access-vlan": 10}}' + method: PATCH + path: /rest/restconf/data/openconfig-interfaces:interfaces/interface=3/openconfig-if-ethernet:ethernet/openconfig-vlan:switched-vlan/config + +overridden: + requests: + - data: '{"openconfig-vlan:config": {"trunk-vlans": [20, 30], "interface-mode": "TRUNK", "native-vlan": 10}}' + method: PATCH + path: /rest/restconf/data/openconfig-interfaces:interfaces/interface=1/openconfig-if-ethernet:ethernet/openconfig-vlan:switched-vlan/config + - data: '{"openconfig-vlan:config": {"interface-mode": "ACCESS", "access-vlan": 1}}' + method: PATCH + path: /rest/restconf/data/openconfig-interfaces:interfaces/interface=2/openconfig-if-ethernet:ethernet/openconfig-vlan:switched-vlan/config + - data: '{"openconfig-vlan:config": {"interface-mode": "ACCESS", "access-vlan": 1}}' + method: PATCH + path: /rest/restconf/data/openconfig-interfaces:interfaces/interface=3/openconfig-if-ethernet:ethernet/openconfig-vlan:switched-vlan/config + +deleted: + requests_1: + - data: '{"openconfig-vlan:config": {"interface-mode": "ACCESS", "access-vlan": 1}}' + method: PATCH + path: /rest/restconf/data/openconfig-interfaces:interfaces/interface=2/openconfig-if-ethernet:ethernet/openconfig-vlan:switched-vlan/config + - data: '{"openconfig-vlan:config": {"interface-mode": "ACCESS", "access-vlan": 1}}' + method: PATCH + path: /rest/restconf/data/openconfig-interfaces:interfaces/interface=3/openconfig-if-ethernet:ethernet/openconfig-vlan:switched-vlan/config + + requests_2: + - data: '{"openconfig-vlan:config": {"interface-mode": "ACCESS", "access-vlan": 1}}' + method: PATCH + path: /rest/restconf/data/openconfig-interfaces:interfaces/interface=1/openconfig-if-ethernet:ethernet/openconfig-vlan:switched-vlan/config diff --git a/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/aliases b/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/aliases new file mode 100644 index 000000000..ad7ccf7ad --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/aliases @@ -0,0 +1 @@ +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/defaults/main.yaml new file mode 100644 index 000000000..164afead2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "[^_].*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/meta/main.yaml b/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/meta/main.yaml new file mode 100644 index 000000000..32cf5dda7 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/meta/main.yaml @@ -0,0 +1 @@ +dependencies: [] diff --git a/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/tasks/httpapi.yaml b/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/tasks/httpapi.yaml new file mode 100644 index 000000000..c7a1d48be --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/tasks/httpapi.yaml @@ -0,0 +1,16 @@ +- name: Collect all httpapi test cases + find: + paths: '{{ role_path }}/tests/httpapi' + patterns: '{{ testcase }}.yaml' + use_regex: true + register: test_cases + delegate_to: localhost +- name: Set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" +- name: Run test case (connection=httpapi) + include: '{{ test_case_to_run }}' + vars: + ansible_connection: ansible.netcommon.httpapi + with_items: '{{ test_items }}' + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/tasks/main.yaml new file mode 100644 index 000000000..e29a5d3b7 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: httpapi.yaml, tags: ['httpapi'] } diff --git a/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/tests/httpapi/_populate_config.yaml b/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/tests/httpapi/_populate_config.yaml new file mode 100644 index 000000000..3740e8e2c --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/tests/httpapi/_populate_config.yaml @@ -0,0 +1,7 @@ +--- +- name: Populate Config + exos_config: + lines: + - configure lldp transmit-interval 50 + - configure lldp ports all no-advertise all-tlvs + - configure lldp ports all advertise system-name system-description system-capabilities diff --git a/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/tests/httpapi/_reset_config.yaml b/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/tests/httpapi/_reset_config.yaml new file mode 100644 index 000000000..e6ba1e415 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/tests/httpapi/_reset_config.yaml @@ -0,0 +1,7 @@ +--- +- name: Reset Config + exos_config: + lines: + - configure lldp transmit-interval 30 + - configure lldp ports all no-advertise all-tlvs + - configure lldp ports all advertise system-name system-description diff --git a/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/tests/httpapi/deleted.yaml b/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/tests/httpapi/deleted.yaml new file mode 100644 index 000000000..f0b260ed3 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/tests/httpapi/deleted.yaml @@ -0,0 +1,48 @@ +--- +- debug: + msg: "Start exos_lldp_global deleted integration tests ansible_connection={{ ansible_connection }}" + +- include_tasks: _reset_config.yaml + +- include_tasks: _populate_config.yaml + +- block: + - name: Delete attributes of LLDP service + exos_lldp_global: &deleted + config: + state: deleted + register: result + + - name: Assert that the before dicts were correctly generated + assert: + that: + - "{{ populate == result['before']}}" + + - name: Assert that correct set of requests were generated + assert: + that: + - "{{ deleted['requests'][0]['method'] == result['requests'][0]['method'] }}" + - "{{ deleted['requests'][0]['path'] == result['requests'][0]['path'] }}" + - "{{ deleted['requests'][0]['data'] == result['requests'][0]['data'] }}" + + - name: Assert that the after dicts were correctly generated + assert: + that: + - "{{ deleted['after'] == result['after']}}" + + - name: Delete attributes of all configured interfaces (IDEMPOTENT) + exos_lldp_global: *deleted + register: result + + - name: Assert that the previous task was idempotent + assert: + that: + - "result.changed == false" + + - name: Assert that the before dicts were correctly generated + assert: + that: + - "{{ deleted['after'] == result['before'] }}" + + always: + - include_tasks: _reset_config.yaml diff --git a/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/tests/httpapi/merged.yaml b/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/tests/httpapi/merged.yaml new file mode 100644 index 000000000..2bf2a2449 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/tests/httpapi/merged.yaml @@ -0,0 +1,49 @@ +--- +- debug: + msg: "START exos_lldp_global merged integration tests on connection={{ ansible_connection }}" + +- include_tasks: _reset_config.yaml + +- block: + - name: Merge the provided configuration with the exisiting running configuration + exos_lldp_global: &merged + config: + interval: 10 + tlv_select: + system_description: false + system_capabilities: false + state: merged + register: result + + - name: Assert that before dicts were correctly generated + assert: + that: "{{ merged['before'] == result['before'] }}" + + - name: Assert that correct set of requests were generated + assert: + that: + - "{{ merged['requests'][0]['method'] == result['requests'][0]['method'] }}" + - "{{ merged['requests'][0]['path'] == result['requests'][0]['path'] }}" + - "{{ merged['requests'][0]['data'] == result['requests'][0]['data'] }}" + + - name: Assert that after dicts was correctly generated + assert: + that: + - "{{ merged['after'] == result['after'] }}" + + - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) + exos_lldp_global: *merged + register: result + + - name: Assert that the previous task was idempotent + assert: + that: + - " result['changed'] == false" + + - name: Assert that before dicts were correctly generated + assert: + that: + - "{{ merged['after'] == result['before'] }}" + + always: + - include_tasks: _reset_config.yaml diff --git a/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/tests/httpapi/replaced.yaml b/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/tests/httpapi/replaced.yaml new file mode 100644 index 000000000..595147b9e --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/tests/httpapi/replaced.yaml @@ -0,0 +1,53 @@ +--- +- debug: + msg: "START exos_lldp_global replaced integration tests on connection={{ ansible_connection }}" + +- include_tasks: _reset_config.yaml + +- include_tasks: _populate_config.yaml + +- block: + - name: Replace device configurations of LLDP service with provided configurations + exos_lldp_global: &replaced + config: + interval: 20 + tlv_select: + system_name: false + system_description: true + system_capabilities: false + state: replaced + register: result + + - name: Assert that correct set of results were generated + assert: + that: + - "{{ replaced['requests'][0]['method'] == result['requests'][0]['method'] }}" + - "{{ replaced['requests'][0]['path'] == result['requests'][0]['path'] }}" + - "{{ replaced['requests'][0]['data'] == result['requests'][0]['data'] }}" + + - name: Assert that before dicts are correctly generated + assert: + that: + - "{{ populate == result['before'] }}" + + - name: Assert that after dict is correctly generated + assert: + that: + - "{{ replaced['after'] == result['after'] }}" + + - name: Replace device configurations of LLDP service with provided configurations (IDEMPOTENT) + exos_lldp_global: *replaced + register: result + + - name: Assert that task was idempotent + assert: + that: + - "result['changed'] == false" + + - name: Assert that before dict is correctly generated + assert: + that: + - "{{ replaced['after'] == result['before'] }}" + + always: + - include_tasks: _reset_config.yaml diff --git a/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/vars/main.yaml b/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/vars/main.yaml new file mode 100644 index 000000000..cdcca8074 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_lldp_global/vars/main.yaml @@ -0,0 +1,85 @@ +--- +merged: + before: + interval: 30 + tlv_select: + system_name: true + system_description: true + system_capabilities: false + port_description: false + management_address: false + + requests: + # 'suppress-tlv-advertisement' list is sorted to compare test + - data: '{"openconfig-lldp:config": {"suppress-tlv-advertisement": ["MANAGEMENT_ADDRESS", "PORT_DESCRIPTION", "SYSTEM_CAPABILITIES", "SYSTEM_DESCRIPTION"], "hello-timer": 10}}' + method: PUT + path: /rest/restconf/data/openconfig-lldp:lldp/config + + after: + interval: 10 + tlv_select: + system_name: true + system_description: false + system_capabilities: false + port_description: false + management_address: false + +populate: + interval: 50 + tlv_select: + system_name: true + system_description: true + system_capabilities: true + port_description: false + management_address: false + +replaced: + requests: + # 'suppress-tlv-advertisement' list is sorted to compare test + - data: '{"openconfig-lldp:config": {"suppress-tlv-advertisement": ["MANAGEMENT_ADDRESS", "PORT_DESCRIPTION", "SYSTEM_CAPABILITIES", "SYSTEM_NAME"], "hello-timer": 20}}' + method: PUT + path: /rest/restconf/data/openconfig-lldp:lldp/config + + after: + interval: 20 + tlv_select: + system_name: false + system_description: true + system_capabilities: false + port_description: false + management_address: false + +deleted: + before: + interval: 50 + tlv_select: + system_name: true + system_description: true + system_capabilities: true + port_description: false + management_address: false + + requests: + # 'suppress-tlv-advertisement' list is sorted to compare test + - data: '{"openconfig-lldp:config": {"suppress-tlv-advertisement": ["MANAGEMENT_ADDRESS", "PORT_DESCRIPTION", "SYSTEM_CAPABILITIES"], "hello-timer": 30}}' + method: PUT + path: /rest/restconf/data/openconfig-lldp:lldp/config + + + after: + interval: 30 + tlv_select: + system_name: true + system_description: true + system_capabilities: false + port_description: false + management_address: false + +round_trip: + interval: 30 + tlv_select: + system_name: true + system_description: true + system_capabilities: false + port_description: false + management_address: false diff --git a/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/aliases b/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/aliases new file mode 100644 index 000000000..ad7ccf7ad --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/aliases @@ -0,0 +1 @@ +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/defaults/main.yaml new file mode 100644 index 000000000..164afead2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "[^_].*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/tasks/httpapi.yaml b/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/tasks/httpapi.yaml new file mode 100644 index 000000000..c7a1d48be --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/tasks/httpapi.yaml @@ -0,0 +1,16 @@ +- name: Collect all httpapi test cases + find: + paths: '{{ role_path }}/tests/httpapi' + patterns: '{{ testcase }}.yaml' + use_regex: true + register: test_cases + delegate_to: localhost +- name: Set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" +- name: Run test case (connection=httpapi) + include: '{{ test_case_to_run }}' + vars: + ansible_connection: ansible.netcommon.httpapi + with_items: '{{ test_items }}' + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/tasks/main.yaml new file mode 100644 index 000000000..e29a5d3b7 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: httpapi.yaml, tags: ['httpapi'] } diff --git a/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/tests/httpapi/_populate_config.yaml b/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/tests/httpapi/_populate_config.yaml new file mode 100644 index 000000000..fda9bc58f --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/tests/httpapi/_populate_config.yaml @@ -0,0 +1,5 @@ +--- +- name: Populate config + exos_config: + lines: + - disable lldp ports 2-5 diff --git a/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/tests/httpapi/_reset_config.yaml b/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/tests/httpapi/_reset_config.yaml new file mode 100644 index 000000000..4f02b0231 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/tests/httpapi/_reset_config.yaml @@ -0,0 +1,5 @@ +--- +- name: Restore initial config + exos_config: + lines: + - enable lldp ports all diff --git a/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/tests/httpapi/deleted.yaml b/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/tests/httpapi/deleted.yaml new file mode 100644 index 000000000..c973aefab --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/tests/httpapi/deleted.yaml @@ -0,0 +1,91 @@ +--- +- debug: + msg: "Start exos_lldp_interfaces deleted integration tests ansible_connection={{ ansible_connection }}" + +- include_tasks: _reset_config.yaml + +- include_tasks: _populate_config.yaml + +- set_fact: + config: + - enabled: true + name: '2' + - enabled: true + name: '3' + config_all: + - enabled: true + name: '4' + - enabled: true + name: '5' + +- exos_facts: + gather_network_resources: lldp_interfaces + +- block: + - name: Delete LLDP interface configuration + exos_lldp_interfaces: &deleted + config: + - name: '2' + - name: '3' + state: deleted + register: result + + - name: Assert that correct set of results were generated + assert: + that: + - "deleted['requests_1']|symmetric_difference(result['requests']) == []" + - "ansible_facts.network_resources.lldp_interfaces|symmetric_difference(result.before) == []" + + - exos_facts: + gather_network_resources: lldp_interfaces + + - name: Assert that after dicts were correctly generated + assert: + that: + - "ansible_facts.network_resources.lldp_interfaces|symmetric_difference(result.after) == []" + - "config|difference(ansible_facts.network_resources.lldp_interfaces) == []" + + - name: Delete LLDP interface configuration + exos_lldp_interfaces: + config: + state: deleted + register: result + + - name: Assert that correct set of results were generated + assert: + that: + - "deleted['requests_2']|symmetric_difference(result['requests']) == []" + - "ansible_facts.network_resources.lldp_interfaces|symmetric_difference(result.before) == []" + + - exos_facts: + gather_network_resources: lldp_interfaces + + - name: Assert that after dicts were correctly generated + assert: + that: + - "ansible_facts.network_resources.lldp_interfaces|symmetric_difference(result.after) == []" + - "config_all|difference(ansible_facts.network_resources.lldp_interfaces) == []" + + - name: Delete attributes of all configured interfaces (IDEMPOTENT) + exos_lldp_interfaces: *deleted + register: result + + - name: Assert that the previous task was idempotent + assert: + that: + - "result.changed == false" + + - exos_facts: + gather_network_resources: lldp_interfaces + + - name: Assert that the before dicts were correctly generated + assert: + that: + - "ansible_facts.network_resources.lldp_interfaces|symmetric_difference(result.before) == []" + + - set_fact: + expected_config: "{{ config + config_all }}" + + - assert: + that: + - "expected_config|difference(ansible_facts.network_resources.lldp_interfaces) == []" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/tests/httpapi/merged.yaml b/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/tests/httpapi/merged.yaml new file mode 100644 index 000000000..b2031be60 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/tests/httpapi/merged.yaml @@ -0,0 +1,57 @@ +--- +- debug: + msg: "START exos_lldp_interfaces merged integration tests on connection={{ ansible_connection }}" + +- include_tasks: _reset_config.yaml + +- include_tasks: _populate_config.yaml + +- set_fact: + config: + - enabled: false + name: '1' + - enabled: true + name: '2' + +- exos_facts: + gather_network_resources: lldp_interfaces + +- block: + - name: Merge the provided configuration with the existing running configuration + exos_lldp_interfaces: &merged + config: "{{ config }}" + state: merged + register: result + + - name: Assert that correct set of results were generated + assert: + that: + - "merged['requests']|symmetric_difference(result['requests']) == []" + - "ansible_facts.network_resources.lldp_interfaces|symmetric_difference(result.before) == []" + + - exos_facts: + gather_network_resources: lldp_interfaces + + - name: Assert that after dicts were correctly generated + assert: + that: + - "ansible_facts.network_resources.lldp_interfaces|symmetric_difference(result.after) == []" + - "config|difference(ansible_facts.network_resources.lldp_interfaces) == []" + + - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) + exos_lldp_interfaces: *merged + register: result + + - name: Assert that the previous task was idempotent + assert: + that: + - "result['changed'] == false" + + - exos_facts: + gather_network_resources: lldp_interfaces + + - name: Assert that the before dicts were correctly generated + assert: + that: + - "ansible_facts.network_resources.lldp_interfaces|symmetric_difference(result.before) == []" + - "config|difference(ansible_facts.network_resources.lldp_interfaces) == []" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/tests/httpapi/overridden.yaml b/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/tests/httpapi/overridden.yaml new file mode 100644 index 000000000..7e869d561 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/tests/httpapi/overridden.yaml @@ -0,0 +1,56 @@ +--- +- debug: + msg: "Start exos_lldp_interfaces overridden integration tests ansible_connection={{ ansible_connection }}" + +- include_tasks: _reset_config.yaml + +- include_tasks: _populate_config.yaml + +- set_fact: + config: + - enabled: true + name: '5' + - enabled: false + name: '6' + +- exos_facts: + gather_network_resources: lldp_interfaces + +- block: + - name: Override device LLDP interface configuration with provided configurations + exos_lldp_interfaces: &overridden + config: "{{ config }}" + state: overridden + register: result + + - name: Assert that correct set of results were generated + assert: + that: + - "overridden['requests']|symmetric_difference(result['requests']) == []" + - "ansible_facts.network_resources.lldp_interfaces|symmetric_difference(result.before) == []" + + - exos_facts: + gather_network_resources: lldp_interfaces + + - name: Assert that after dicts were correctly generated + assert: + that: + - "ansible_facts.network_resources.lldp_interfaces|symmetric_difference(result.after) == []" + - "config|difference(ansible_facts.network_resources.lldp_interfaces) == []" + + - name: Override device LLDP interface configuration with provided configurations (IDEMPOTENT) + exos_lldp_interfaces: *overridden + register: result + + - name: Assert that task was idempotent + assert: + that: + - "result['changed'] == false" + - exos_facts: + gather_network_resources: lldp_interfaces + + - name: Assert that the before dicts were correctly generated + assert: + that: + - "ansible_facts.network_resources.lldp_interfaces|symmetric_difference(result.before) == []" + - "config|difference(ansible_facts.network_resources.lldp_interfaces) == []" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/tests/httpapi/replaced.yaml b/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/tests/httpapi/replaced.yaml new file mode 100644 index 000000000..10545c49c --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/tests/httpapi/replaced.yaml @@ -0,0 +1,57 @@ +--- +- debug: + msg: "START exos_lldp_interfaces replaced integration tests on connection={{ ansible_connection }}" + +- include_tasks: _reset_config.yaml + +- include_tasks: _populate_config.yaml + +- set_fact: + config: + - enabled: true + name: '3' + - enabled: false + name: '4' + +- exos_facts: + gather_network_resources: lldp_interfaces + +- block: + - name: Replace LLDP interface configuration with provided configuration + exos_lldp_interfaces: &replaced + config: "{{ config }}" + state: replaced + register: result + + - name: Assert that correct set of results were generated + assert: + that: + - "replaced['requests']|symmetric_difference(result['requests']) == []" + - "ansible_facts.network_resources.lldp_interfaces|symmetric_difference(result.before) == []" + + - exos_facts: + gather_network_resources: lldp_interfaces + + - name: Assert that after dicts were correctly generated + assert: + that: + - "ansible_facts.network_resources.lldp_interfaces|symmetric_difference(result.after) == []" + - "config|difference(ansible_facts.network_resources.lldp_interfaces) == []" + + - name: Replace LLDP interface configuration with provided configuration (IDEMPOTENT) + exos_lldp_interfaces: *replaced + register: result + + - name: Assert that task was idempotent + assert: + that: + - "result['changed'] == false" + + - exos_facts: + gather_network_resources: lldp_interfaces + + - name: Assert that the before dicts were correctly generated + assert: + that: + - "ansible_facts.network_resources.lldp_interfaces|symmetric_difference(result.before) == []" + - "config|difference(ansible_facts.network_resources.lldp_interfaces) == []" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/vars/main.yaml b/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/vars/main.yaml new file mode 100644 index 000000000..61a27a57d --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_lldp_interfaces/vars/main.yaml @@ -0,0 +1,49 @@ +--- +merged: + requests: + - data: '{"openconfig-lldp:config": {"enabled": false, "name": "1"}}' + method: PATCH + path: /rest/restconf/data/openconfig-lldp:lldp/interfaces/interface=1/config + - data: '{"openconfig-lldp:config": {"enabled": true, "name": "2"}}' + method: PATCH + path: /rest/restconf/data/openconfig-lldp:lldp/interfaces/interface=2/config + +replaced: + requests: + - data: '{"openconfig-lldp:config": {"enabled": true, "name": "3"}}' + method: PATCH + path: /rest/restconf/data/openconfig-lldp:lldp/interfaces/interface=3/config + +overridden: + requests: + - data: '{"openconfig-lldp:config": {"enabled": true, "name": "5"}}' + method: PATCH + path: /rest/restconf/data/openconfig-lldp:lldp/interfaces/interface=5/config + - data: '{"openconfig-lldp:config": {"enabled": false, "name": "6"}}' + method: PATCH + path: /rest/restconf/data/openconfig-lldp:lldp/interfaces/interface=6/config + - data: '{"openconfig-lldp:config": {"enabled": true, "name": "2"}}' + method: PATCH + path: /rest/restconf/data/openconfig-lldp:lldp/interfaces/interface=2/config + - data: '{"openconfig-lldp:config": {"enabled": true, "name": "3"}}' + method: PATCH + path: /rest/restconf/data/openconfig-lldp:lldp/interfaces/interface=3/config + - data: '{"openconfig-lldp:config": {"enabled": true, "name": "4"}}' + method: PATCH + path: /rest/restconf/data/openconfig-lldp:lldp/interfaces/interface=4/config + +deleted: + requests_1: + - data: '{"openconfig-lldp:config": {"enabled": true, "name": "2"}}' + method: PATCH + path: /rest/restconf/data/openconfig-lldp:lldp/interfaces/interface=2/config + - data: '{"openconfig-lldp:config": {"enabled": true, "name": "3"}}' + method: PATCH + path: /rest/restconf/data/openconfig-lldp:lldp/interfaces/interface=3/config + requests_2: + - data: '{"openconfig-lldp:config": {"enabled": true, "name": "4"}}' + method: PATCH + path: /rest/restconf/data/openconfig-lldp:lldp/interfaces/interface=4/config + - data: '{"openconfig-lldp:config": {"enabled": true, "name": "5"}}' + method: PATCH + path: /rest/restconf/data/openconfig-lldp:lldp/interfaces/interface=5/config diff --git a/ansible_collections/community/network/tests/integration/targets/exos_vlans/aliases b/ansible_collections/community/network/tests/integration/targets/exos_vlans/aliases new file mode 100644 index 000000000..ad7ccf7ad --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_vlans/aliases @@ -0,0 +1 @@ +unsupported diff --git a/ansible_collections/community/network/tests/integration/targets/exos_vlans/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/exos_vlans/defaults/main.yaml new file mode 100644 index 000000000..164afead2 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_vlans/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "[^_].*" +test_items: [] diff --git a/ansible_collections/community/network/tests/integration/targets/exos_vlans/tasks/httpapi.yaml b/ansible_collections/community/network/tests/integration/targets/exos_vlans/tasks/httpapi.yaml new file mode 100644 index 000000000..c7a1d48be --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_vlans/tasks/httpapi.yaml @@ -0,0 +1,16 @@ +- name: Collect all httpapi test cases + find: + paths: '{{ role_path }}/tests/httpapi' + patterns: '{{ testcase }}.yaml' + use_regex: true + register: test_cases + delegate_to: localhost +- name: Set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" +- name: Run test case (connection=httpapi) + include: '{{ test_case_to_run }}' + vars: + ansible_connection: ansible.netcommon.httpapi + with_items: '{{ test_items }}' + loop_control: + loop_var: test_case_to_run diff --git a/ansible_collections/community/network/tests/integration/targets/exos_vlans/tasks/main.yaml b/ansible_collections/community/network/tests/integration/targets/exos_vlans/tasks/main.yaml new file mode 100644 index 000000000..e29a5d3b7 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_vlans/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- { include: httpapi.yaml, tags: ['httpapi'] } diff --git a/ansible_collections/community/network/tests/integration/targets/exos_vlans/tests/httpapi/_populate_config.yaml b/ansible_collections/community/network/tests/integration/targets/exos_vlans/tests/httpapi/_populate_config.yaml new file mode 100644 index 000000000..50c0b8394 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_vlans/tests/httpapi/_populate_config.yaml @@ -0,0 +1,7 @@ +--- +- name: Populate config + exos_config: + lines: + - create vlan vlan_10 tag 10 + - create vlan vlan_20 tag 20 + - disable vlan_20 diff --git a/ansible_collections/community/network/tests/integration/targets/exos_vlans/tests/httpapi/_reset_config.yaml b/ansible_collections/community/network/tests/integration/targets/exos_vlans/tests/httpapi/_reset_config.yaml new file mode 100644 index 000000000..04ffcb4f5 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_vlans/tests/httpapi/_reset_config.yaml @@ -0,0 +1,6 @@ +--- +- name: Restore initial config + exos_config: + lines: + - delete vlan 2-4094 + ignore_errors: yes diff --git a/ansible_collections/community/network/tests/integration/targets/exos_vlans/tests/httpapi/deleted.yaml b/ansible_collections/community/network/tests/integration/targets/exos_vlans/tests/httpapi/deleted.yaml new file mode 100644 index 000000000..a88ff23fb --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_vlans/tests/httpapi/deleted.yaml @@ -0,0 +1,44 @@ +--- +- debug: + msg: "Start exos_vlan deleted integration tests ansible_connection={{ ansible_connection }}" + +- include_tasks: _reset_config.yaml + +- include_tasks: _populate_config.yaml + +- block: + - name: Delete VLAN + exos_vlans: &deleted + config: + state: deleted + register: result + + + - name: Assert that the before dicts were correctly generated + assert: + that: + - "{{ initial_state == result['before']}}" + + - name: Assert that correct set of requests were correctly generated + assert: + that: + - "{{deleted['requests'] == result['requests']}}" + + - name: Assert that the after dicts were correctly generated + assert: + that: + - "{{deleted['after'] == result['after']}}" + + - name: Delete attributes of all configured VLANs (IDEMPOTENT) + exos_vlans: *deleted + register: result + + - name: Assert that the previous task was idempotent + assert: + that: + - "result.changed == false" + + - name: Assert that the before dicts were correctly generated + assert: + that: + - "{{deleted['after'] == result['before']}}" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_vlans/tests/httpapi/merged.yaml b/ansible_collections/community/network/tests/integration/targets/exos_vlans/tests/httpapi/merged.yaml new file mode 100644 index 000000000..da3ea6a3f --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_vlans/tests/httpapi/merged.yaml @@ -0,0 +1,49 @@ +--- +- debug: + msg: "START exos_vlans merged integration tests on connection = {{ ansible_connection }}" + +- include_tasks: _reset_config.yaml + +- include_tasks: _populate_config.yaml + +- block: + - name: Merge the provided configuration with the existing running configuration + exos_vlans: &merged + config: + - name: vlan_30 + vlan_id: 30 + state: active + - vlan_id: 10 + name: vlan_10 + state: suspend + state: merged + register: result + + - name: Assert that before dicts were correctly generated + assert: + that: + - "{{ initial_state == result['before'] }}" + + - name: Assert that correct set of requests were generated + assert: + that: + - "{{ merged['requests'] == result['requests'] }}" + + - name: Assert that after dicts were correctly generated + assert: + that: + - "{{ merged['after'] == result['after'] }}" + + - name: Merge the provided configuration with the existing configuration (IDEMPOTENT) + exos_vlans: *merged + register: result + + - name: Assert that the previous task was idempotent + assert: + that: + - "result.changed == false" + + - name: Assert that before dict was correctly generated + assert: + that: + - "{{ merged['after'] == result['before'] }}" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_vlans/tests/httpapi/overridden.yaml b/ansible_collections/community/network/tests/integration/targets/exos_vlans/tests/httpapi/overridden.yaml new file mode 100644 index 000000000..d519e666c --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_vlans/tests/httpapi/overridden.yaml @@ -0,0 +1,46 @@ +--- +- debug: + msg: "START exos_vlans overridden integration tests on connection={{ ansible_connection }}" + +- include_tasks: _reset_config.yaml + +- include_tasks: _populate_config.yaml + +- block: + - name: Override existing VLAN configuration with provided configuration + exos_vlans: &overridden + config: + - name: TEST_VLAN10 + vlan_id: 10 + state: suspend + state: overridden + register: result + + - name: Assert that correct set of requests were generated + assert: + that: + - "{{ overridden['requests'] == result['requests'] }}" + + - name: Assert that before dicts were correctly generated + assert: + that: + - "{{ initial_state == result['before'] }}" + + - name: Assert that after dicts were correctly generated + assert: + that: + - "{{ overridden['after'] == result['after'] }}" + + - name: Override existing VLAN configuration with provided configuration (IDEMPOTENT) + exos_vlans: *overridden + register: result + + - name: Assert that task was idempotent + assert: + that: + - "result.changed == false" + + - name: Assert that before dicts were correctly generated + assert: + that: + - "{{ overridden['after'] == result['before'] }}" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_vlans/tests/httpapi/replaced.yaml b/ansible_collections/community/network/tests/integration/targets/exos_vlans/tests/httpapi/replaced.yaml new file mode 100644 index 000000000..1949ec799 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_vlans/tests/httpapi/replaced.yaml @@ -0,0 +1,49 @@ +--- +- debug: + msg: "START exos_vlans replaced integration tests on connection={{ ansible_connection }}" + +- include_tasks: _reset_config.yaml + +- include_tasks: _populate_config.yaml + +- block: + - name: Replace existing VLAN configurations with provided configurations + exos_vlans: &replaced + config: + - name: Test_VLAN20 + vlan_id: 20 + state: active + - name: vlan_40 + vlan_id: 40 + state: suspend + state: replaced + register: result + + - name: Assert that correct set of requests are correctly generated + assert: + that: + - "{{ replaced['requests'] == result['requests'] }}" + + - name: Assert that before dicts were correctly generated + assert: + that: + - "{{ initial_state == result['before'] }}" + + - name: Assert that after dicts were correctly generated + assert: + that: + - "{{ replaced['after'] == result['after'] }}" + + - name: Replace existing VLAN configuration with provided configurations (IDEMPOTENT) + exos_vlans: *replaced + register: result + + - name: Assert that task was idempotent + assert: + that: + - "result.changed == false" + + - name: Assert that before dict was correctly generated + assert: + that: + - "{{ replaced['after'] == result['before'] }}" diff --git a/ansible_collections/community/network/tests/integration/targets/exos_vlans/vars/main.yaml b/ansible_collections/community/network/tests/integration/targets/exos_vlans/vars/main.yaml new file mode 100644 index 000000000..098686c1f --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/exos_vlans/vars/main.yaml @@ -0,0 +1,88 @@ +--- +initial_state: + - name: "Default" + state: "active" + vlan_id: 1 + - name: "vlan_10" + state: "active" + vlan_id: 10 + - name: "vlan_20" + state: "suspend" + vlan_id: 20 + +merged: + requests: + - data: '{"openconfig-vlan:vlans": [{"config": {"status": "ACTIVE", "vlan-id": 30, "name": "vlan_30", "tpid": "oc-vlan-types:TPID_0x8100"}}]}' + method: POST + path: /rest/restconf/data/openconfig-vlan:vlans/ + - data: '{"openconfig-vlan:vlans": {"vlan": [{"config": {"status": "SUSPENDED", "vlan-id": 10, "name": "vlan_10", "tpid": "oc-vlan-types:TPID_0x8100"}}]}}' + method: PATCH + path: /rest/restconf/data/openconfig-vlan:vlans/ + + after: + - name: "Default" + state: "active" + vlan_id: 1 + - name: "vlan_10" + state: "suspend" + vlan_id: 10 + - name: "vlan_20" + state: "suspend" + vlan_id: 20 + - name: "vlan_30" + state: "active" + vlan_id: 30 + +replaced: + requests: + - data: '{"openconfig-vlan:vlans": [{"config": {"status": "SUSPENDED", "vlan-id": 40, "name": "vlan_40", "tpid": "oc-vlan-types:TPID_0x8100"}}]}' + method: POST + path: /rest/restconf/data/openconfig-vlan:vlans/ + - data: '{"openconfig-vlan:vlans": {"vlan": [{"config": {"status": "ACTIVE", "vlan-id": 20, "name": "Test_VLAN20", "tpid": "oc-vlan-types:TPID_0x8100"}}]}}' + method: PATCH + path: /rest/restconf/data/openconfig-vlan:vlans/ + + after: + - name: "Default" + state: "active" + vlan_id: 1 + - name: "vlan_10" + state: "active" + vlan_id: 10 + - name: "Test_VLAN20" + state: "active" + vlan_id: 20 + - name: "vlan_40" + state: "suspend" + vlan_id: 40 + +overridden: + requests: + - data: null + method: DELETE + path: /rest/restconf/data/openconfig-vlan:vlans/vlan=20 + - data: '{"openconfig-vlan:vlans": {"vlan": [{"config": {"status": "SUSPENDED", "vlan-id": 10, "name": "TEST_VLAN10", "tpid": "oc-vlan-types:TPID_0x8100"}}]}}' + method: PATCH + path: /rest/restconf/data/openconfig-vlan:vlans/ + + after: + - name: "Default" + state: "active" + vlan_id: 1 + - name: "TEST_VLAN10" + state: "suspend" + vlan_id: 10 + +deleted: + requests: + - data: null + method: DELETE + path: /rest/restconf/data/openconfig-vlan:vlans/vlan=10 + - data: null + method: DELETE + path: /rest/restconf/data/openconfig-vlan:vlans/vlan=20 + + after: + - name: "Default" + state: "active" + vlan_id: 1 diff --git a/ansible_collections/community/network/tests/integration/targets/nuage_vspk/aliases b/ansible_collections/community/network/tests/integration/targets/nuage_vspk/aliases new file mode 100644 index 000000000..2191ba855 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/nuage_vspk/aliases @@ -0,0 +1,3 @@ +shippable/cloud/group1 +skip/python3 +skip/aix diff --git a/ansible_collections/community/network/tests/integration/targets/nuage_vspk/defaults/main.yaml b/ansible_collections/community/network/tests/integration/targets/nuage_vspk/defaults/main.yaml new file mode 100644 index 000000000..366d2be23 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/nuage_vspk/defaults/main.yaml @@ -0,0 +1,8 @@ +--- +testcase: "*" +nuage_auth: + api_username: csproot + api_password: csproot + api_enterprise: csp + api_url: http://localhost:5000 + api_version: v5_0
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/integration/targets/nuage_vspk/meta/main.yaml b/ansible_collections/community/network/tests/integration/targets/nuage_vspk/meta/main.yaml new file mode 100644 index 000000000..64ceb78f4 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/nuage_vspk/meta/main.yaml @@ -0,0 +1,2 @@ +dependencies: + - prepare_nuage_tests diff --git a/ansible_collections/community/network/tests/integration/targets/nuage_vspk/tasks/main.yml b/ansible_collections/community/network/tests/integration/targets/nuage_vspk/tasks/main.yml new file mode 100644 index 000000000..5abd3f87e --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/nuage_vspk/tasks/main.yml @@ -0,0 +1,24 @@ +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- block: + - name: run test case + include: "{{ test_case_to_run }}" + with_fileglob: tests/{{ testcase }}.yaml + loop_control: + loop_var: test_case_to_run + + always: + - name: Get nuage-vsd-sim pid + shell: ps -A | grep '[n]'uage-vsd-sim | cut -d ' ' -f 1 + register: vsim_pid + changed_when: no + ignore_errors: yes + + - name: Stop-nuage-vsd-sim + command: kill {{ vsim_pid.stdout }} + changed_when: no + ignore_errors: yes + when: "ansible_python_version is version('2.7', '>=')" diff --git a/ansible_collections/community/network/tests/integration/targets/nuage_vspk/tests/basic.yaml b/ansible_collections/community/network/tests/integration/targets/nuage_vspk/tests/basic.yaml new file mode 100644 index 000000000..744c0dec4 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/nuage_vspk/tests/basic.yaml @@ -0,0 +1,226 @@ +--- +# Getting the CSP enterprise +- name: Get CSP Enterprise + nuage_vspk: + auth: "{{ nuage_auth }}" + type: Enterprise + command: get_csp_enterprise + register: nuage_csp_enterprise + +- name: Check if CSP enterprise was found + assert: + that: + - nuage_csp_enterprise.id is defined + - nuage_csp_enterprise.entities is defined + - nuage_csp_enterprise.entities[0].name == "CSP" + +- name: Create Enterprise + nuage_vspk: + auth: "{{ nuage_auth }}" + type: Enterprise + state: present + properties: + name: "Ansible-Enterprise" + register: nuage_enterprise + +- name: Check Enterprise was created + assert: + that: + - nuage_enterprise.changed + - nuage_enterprise.id is defined + - nuage_enterprise.entities is defined + - nuage_enterprise.entities[0].name == "Ansible-Enterprise" + +- name: Finding Enterprise + nuage_vspk: + auth: "{{ nuage_auth }}" + type: Enterprise + command: find + properties: + name: "Ansible-Enterprise" + register: nuage_enterprise + +- name: Check Enterprise was found + assert: + that: + - not nuage_enterprise.changed + - nuage_enterprise.id is defined + - nuage_enterprise.entities is defined + - nuage_enterprise.entities[0].name == "Ansible-Enterprise" + +- name: Create Enterprise again to confirm idempoteny + nuage_vspk: + auth: "{{ nuage_auth }}" + type: Enterprise + state: present + properties: + name: "Ansible-Enterprise" + register: nuage_enterprise + +- name: Check Enterprise was not created again + assert: + that: + - not nuage_enterprise.changed + - nuage_enterprise.id is defined + - nuage_enterprise.entities is defined + - nuage_enterprise.entities[0].name == "Ansible-Enterprise" + +- name: Create admin user + nuage_vspk: + auth: "{{ nuage_auth }}" + type: User + parent_id: "{{ nuage_enterprise.id }}" + parent_type: Enterprise + state: present + match_filter: "userName == 'ansible-admin'" + properties: + email: "ansible@localhost.local" + first_name: "Ansible" + last_name: "Admin" + password: "ansible-password" + user_name: "ansible-admin" + register: nuage_user + +- name: Check the user was created + assert: + that: + - nuage_user.changed + - nuage_user.id is defined + - nuage_user.entities is defined + - nuage_user.entities[0].userName == "ansible-admin" + +- name: Update admin password + nuage_vspk: + auth: "{{ nuage_auth }}" + type: User + id: "{{ nuage_user.id }}" + command: change_password + properties: + password: "ansible-new-password" + ignore_errors: yes + +- name: Check the user was created + assert: + that: + - nuage_user.changed + - nuage_user.id is defined + - nuage_user.entities is defined + - nuage_user.entities[0].userName == "ansible-admin" + +- name: Create group in Enterprise + nuage_vspk: + auth: "{{ nuage_auth }}" + type: Group + parent_id: "{{ nuage_enterprise.id }}" + parent_type: Enterprise + state: present + properties: + name: "Ansible-Group" + register: nuage_group + +- name: Check the group was created + assert: + that: + - nuage_group.changed + - nuage_group.id is defined + - nuage_group.entities is defined + - nuage_group.entities[0].name == "Ansible-Group" + +- name: Assign admin user to group + nuage_vspk: + auth: "{{ nuage_auth }}" + type: User + id: "{{ nuage_user.id }}" + parent_id: "{{ nuage_group.id }}" + parent_type: Group + state: present + register: nuage_assign + +- name: Check the admin was added to the group + assert: + that: + - nuage_assign.changed + +- name: Assign admin user to administrators again to test idempotency + nuage_vspk: + auth: "{{ nuage_auth }}" + type: User + id: "{{ nuage_user.id }}" + parent_id: "{{ nuage_group.id }}" + parent_type: Group + state: present + register: nuage_assign + +- name: Check the group was not changed + assert: + that: + - not nuage_assign.changed + +- name: Unassign admin user to administrators + nuage_vspk: + auth: "{{ nuage_auth }}" + type: User + id: "{{ nuage_user.id }}" + parent_id: "{{ nuage_group.id }}" + parent_type: Group + state: absent + register: nuage_unassign + +- name: Check the admin was removed from the group + assert: + that: + - nuage_unassign.changed + +- name: Unassign admin user to administrators again to test idempotency + nuage_vspk: + auth: "{{ nuage_auth }}" + type: User + id: "{{ nuage_user.id }}" + parent_id: "{{ nuage_group.id }}" + parent_type: Group + state: absent + register: nuage_unassign + +- name: Check the group was not changed + assert: + that: + - not nuage_unassign.changed + +- name: Delete User + nuage_vspk: + auth: "{{ nuage_auth }}" + type: User + id: "{{ nuage_user.id }}" + state: absent + register: nuage_user + +- name: Check the user was deleted + assert: + that: + - nuage_user.changed + +- name: Delete Enterprise + nuage_vspk: + auth: "{{ nuage_auth }}" + type: Enterprise + id: "{{ nuage_enterprise.id }}" + state: absent + register: nuage_enterprise + +- name: Check the enterprise was deleted + assert: + that: + - nuage_enterprise.changed + +- name: Delete Enterprise again to test idempotency + nuage_vspk: + auth: "{{ nuage_auth }}" + type: Enterprise + match_filter: 'name == "Ansible-Enterprise"' + state: absent + register: nuage_enterprise + +- name: Check the delete idempotency + assert: + that: + - not nuage_enterprise.changed
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/integration/targets/prepare_nuage_tests/tasks/main.yml b/ansible_collections/community/network/tests/integration/targets/prepare_nuage_tests/tasks/main.yml new file mode 100644 index 000000000..2a902dc82 --- /dev/null +++ b/ansible_collections/community/network/tests/integration/targets/prepare_nuage_tests/tasks/main.yml @@ -0,0 +1,24 @@ +#################################################################### +# WARNING: These are designed specifically for Ansible tests # +# and should not be used as examples of how to write Ansible roles # +#################################################################### + +- block: + - name: Install Nuage VSD API Simulator + pip: + name: nuage-vsd-sim + + - name: Start Nuage VSD API Simulator + shell: "(cd /; nuage-vsd-sim >/dev/null 2>&1)" + async: 1800 + poll: 0 + + - name: Wait for API to be ready + uri: + url: http://localhost:5000 + register: api + delay: 3 + retries: 10 + until: api.status == 200 + + when: "ansible_python_version is version('2.7', '>=')" diff --git a/ansible_collections/community/network/tests/requirements.yml b/ansible_collections/community/network/tests/requirements.yml new file mode 100644 index 000000000..a218740b1 --- /dev/null +++ b/ansible_collections/community/network/tests/requirements.yml @@ -0,0 +1,4 @@ +integration_tests_dependencies: +- ansible.netcommon +unit_tests_dependencies: +- ansible.netcommon diff --git a/ansible_collections/community/network/tests/sanity/extra/botmeta.json b/ansible_collections/community/network/tests/sanity/extra/botmeta.json new file mode 100644 index 000000000..c546ab5fd --- /dev/null +++ b/ansible_collections/community/network/tests/sanity/extra/botmeta.json @@ -0,0 +1,8 @@ +{ + "include_symlinks": false, + "output": "path-line-column-message", + "requirements": [ + "PyYAML", + "voluptuous==0.12.1" + ] +} diff --git a/ansible_collections/community/network/tests/sanity/extra/botmeta.py b/ansible_collections/community/network/tests/sanity/extra/botmeta.py new file mode 100755 index 000000000..2e7b153f6 --- /dev/null +++ b/ansible_collections/community/network/tests/sanity/extra/botmeta.py @@ -0,0 +1,219 @@ +#!/usr/bin/env python +# Copyright (c) Ansible Project +# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) +# SPDX-License-Identifier: GPL-3.0-or-later +"""Check BOTMETA file.""" +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import ast +import os +import re +import sys + +import yaml + +from voluptuous import All, Any, MultipleInvalid, PREVENT_EXTRA +from voluptuous import Required, Schema, Invalid +from voluptuous.humanize import humanize_error + + +IGNORE_NO_MAINTAINERS = [ + 'plugins/action/aireos.py', + 'plugins/action/nos_config.py', + 'plugins/terminal/aireos.py', + 'plugins/terminal/apconos.py', + 'plugins/terminal/cnos.py', + 'plugins/terminal/enos.py', + 'plugins/terminal/icx.py', + 'plugins/terminal/netvisor.py', + 'plugins/terminal/weos4.py', + 'plugins/cliconf/aireos.py', + 'plugins/cliconf/cnos.py', + 'plugins/cliconf/edgeos.py', + 'plugins/cliconf/enos.py', + 'plugins/cliconf/netvisor.py', +] + +FILENAME = '.github/BOTMETA.yml' + +LIST_ENTRIES = frozenset(('supershipit', 'maintainers', 'labels', 'keywords', 'notify', 'ignore')) + +AUTHOR_REGEX = re.compile(r'^\w.*\(@([\w-]+)\)(?![\w.])') + + +def read_authors(filename): + data = {} + try: + with open(filename, 'rb') as b_module_data: + M = ast.parse(b_module_data.read()) + + for child in M.body: + if isinstance(child, ast.Assign): + for t in child.targets: + try: + theid = t.id + except AttributeError: + # skip errors can happen when trying to use the normal code + continue + + if theid == 'DOCUMENTATION': + if isinstance(child.value, ast.Dict): + data = ast.literal_eval(child.value) + else: + data = yaml.safe_load(child.value.s) + + except Exception as e: + print('%s:%d:%d: Cannot load DOCUMENTATION: %s' % (filename, 0, 0, e)) + return [] + + author = data.get('author') or [] + if isinstance(author, str): + author = [author] + return author + + +def extract_author_name(author): + m = AUTHOR_REGEX.match(author) + if m: + return m.group(1) + if author == 'Ansible Core Team': + return '$team_ansible_core' + return None + + +def validate(filename, filedata): + if not filename.startswith('plugins/'): + return + if filename.startswith(('plugins/doc_fragments/', 'plugins/module_utils/')): + return + # Compile lis tof all active and inactive maintainers + all_maintainers = filedata['maintainers'] + filedata['ignore'] + if not filename.startswith('plugins/filter/'): + maintainers = read_authors(filename) + for maintainer in maintainers: + maintainer = extract_author_name(maintainer) + if maintainer is not None and maintainer not in all_maintainers: + msg = 'Author %s not mentioned as active or inactive maintainer for %s (mentioned are: %s)' % ( + maintainer, filename, ', '.join(all_maintainers)) + print('%s:%d:%d: %s' % (FILENAME, 0, 0, msg)) + should_have_no_maintainer = filename in IGNORE_NO_MAINTAINERS + if not all_maintainers and not should_have_no_maintainer: + print('%s:%d:%d: %s' % (FILENAME, 0, 0, 'No (active or inactive) maintainer mentioned for %s' % filename)) + if all_maintainers and should_have_no_maintainer: + print('%s:%d:%d: %s' % (FILENAME, 0, 0, 'Please remove %s from the ignore list of %s' % (filename, sys.argv[0]))) + + +def main(): + """Main entry point.""" + try: + with open(FILENAME, 'rb') as f: + botmeta = yaml.safe_load(f) + except yaml.error.MarkedYAMLError as ex: + print('%s:%d:%d: YAML load failed: %s' % (FILENAME, ex.context_mark.line + + 1, ex.context_mark.column + 1, re.sub(r'\s+', ' ', str(ex)))) + return + except Exception as ex: # pylint: disable=broad-except + print('%s:%d:%d: YAML load failed: %s' % + (FILENAME, 0, 0, re.sub(r'\s+', ' ', str(ex)))) + return + + # Validate schema + + MacroSchema = Schema({ + (str): Any(str, None), + }, extra=PREVENT_EXTRA) + + FilesSchema = Schema({ + (str): { + ('supershipit'): str, + ('support'): Any('community'), + ('maintainers'): str, + ('labels'): str, + ('keywords'): str, + ('notify'): str, + ('ignore'): str, + }, + }, extra=PREVENT_EXTRA) + + schema = Schema({ + ('notifications'): bool, + ('automerge'): bool, + ('macros'): MacroSchema, + ('files'): FilesSchema, + }, extra=PREVENT_EXTRA) + + try: + schema(botmeta) + except MultipleInvalid as ex: + for error in ex.errors: + # No way to get line/column numbers + print('%s:%d:%d: %s' % (FILENAME, 0, 0, humanize_error(botmeta, error))) + return + + # Preprocess (substitute macros, convert to lists) + macros = botmeta.get('macros') or {} + macro_re = re.compile(r'\$([a-zA-Z_]+)') + + def convert_macros(text, macros): + def f(m): + macro = m.group(1) + replacement = (macros[macro] or '') + if macro == 'team_ansible_core': + return '$team_ansible_core %s' % replacement + return replacement + + return macro_re.sub(f, text) + + files = {} + try: + for file, filedata in (botmeta.get('files') or {}).items(): + file = convert_macros(file, macros) + filedata = dict((k, convert_macros(v, macros)) for k, v in filedata.items()) + files[file] = filedata + for k, v in filedata.items(): + if k in LIST_ENTRIES: + filedata[k] = v.split() + except KeyError as e: + print('%s:%d:%d: %s' % (FILENAME, 0, 0, 'Found unknown macro %s' % e)) + return + + # Scan all files + unmatched = set(files) + for dirs in ('plugins', ): + for dirpath, dirnames, filenames in os.walk(dirs): + for file in sorted(filenames): + if file.endswith('.pyc'): + continue + if file == '__init__.py': + continue + filename = os.path.join(dirpath, file) + if os.path.islink(filename): + continue + if os.path.isfile(filename): + matching_files = [] + for file, filedata in files.items(): + if filename.startswith(file): + matching_files.append((file, filedata)) + if file in unmatched: + unmatched.remove(file) + if not matching_files: + print('%s:%d:%d: %s' % (FILENAME, 0, 0, 'Did not find any entry for %s' % filename)) + + matching_files.sort(key=lambda kv: kv[0]) + filedata = dict() + for k in LIST_ENTRIES: + filedata[k] = [] + for dummy, data in matching_files: + for k, v in data.items(): + if k in LIST_ENTRIES: + v = filedata[k] + v + filedata[k] = v + validate(filename, filedata) + + for file in unmatched: + print('%s:%d:%d: %s' % (FILENAME, 0, 0, 'Entry %s was not used' % file)) + + +if __name__ == '__main__': + main() diff --git a/ansible_collections/community/network/tests/sanity/extra/extra-docs.json b/ansible_collections/community/network/tests/sanity/extra/extra-docs.json new file mode 100644 index 000000000..c2e612e5f --- /dev/null +++ b/ansible_collections/community/network/tests/sanity/extra/extra-docs.json @@ -0,0 +1,10 @@ +{ + "include_symlinks": false, + "prefixes": [ + "docs/docsite/" + ], + "output": "path-line-column-message", + "requirements": [ + "antsibull-docs" + ] +} diff --git a/ansible_collections/community/network/tests/sanity/extra/extra-docs.py b/ansible_collections/community/network/tests/sanity/extra/extra-docs.py new file mode 100755 index 000000000..f2746e51b --- /dev/null +++ b/ansible_collections/community/network/tests/sanity/extra/extra-docs.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python +# Copyright (c) Ansible Project +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) +"""Check extra collection docs with antsibull-docs.""" +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os +import sys +import subprocess + + +def main(): + """Main entry point.""" + if not os.path.isdir(os.path.join('docs', 'docsite')): + return + p = subprocess.run(['antsibull-docs', 'lint-collection-docs', '.'], check=False) + if p.returncode not in (0, 3): + print('{0}:0:0: unexpected return code {1}'.format(sys.argv[0], p.returncode)) + + +if __name__ == '__main__': + main() diff --git a/ansible_collections/community/network/tests/sanity/extra/no-unwanted-files.json b/ansible_collections/community/network/tests/sanity/extra/no-unwanted-files.json new file mode 100644 index 000000000..c789a7fd3 --- /dev/null +++ b/ansible_collections/community/network/tests/sanity/extra/no-unwanted-files.json @@ -0,0 +1,7 @@ +{ + "include_symlinks": true, + "prefixes": [ + "plugins/" + ], + "output": "path-message" +} diff --git a/ansible_collections/community/network/tests/sanity/extra/no-unwanted-files.py b/ansible_collections/community/network/tests/sanity/extra/no-unwanted-files.py new file mode 100755 index 000000000..4522f77e2 --- /dev/null +++ b/ansible_collections/community/network/tests/sanity/extra/no-unwanted-files.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python +# Copyright (c) Ansible Project +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) +"""Prevent unwanted files from being added to the source tree.""" +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os +import os.path +import sys + + +def main(): + """Main entry point.""" + paths = sys.argv[1:] or sys.stdin.read().splitlines() + + allowed_extensions = ( + '.cs', + '.ps1', + '.psm1', + '.py', + ) + + skip_paths = set([ + ]) + + skip_directories = ( + ) + + yaml_directories = ( + 'plugins/test/', + 'plugins/filter/', + ) + + for path in paths: + if path in skip_paths: + continue + + if any(path.startswith(skip_directory) for skip_directory in skip_directories): + continue + + if os.path.islink(path): + print('%s: is a symbolic link' % (path, )) + elif not os.path.isfile(path): + print('%s: is not a regular file' % (path, )) + + ext = os.path.splitext(path)[1] + + if ext in ('.yml', ) and any(path.startswith(yaml_directory) for yaml_directory in yaml_directories): + continue + + if ext not in allowed_extensions: + print('%s: extension must be one of: %s' % (path, ', '.join(allowed_extensions))) + + +if __name__ == '__main__': + main() diff --git a/ansible_collections/community/network/tests/sanity/ignore-2.11.txt b/ansible_collections/community/network/tests/sanity/ignore-2.11.txt new file mode 100644 index 000000000..9f8b2367d --- /dev/null +++ b/ansible_collections/community/network/tests/sanity/ignore-2.11.txt @@ -0,0 +1,802 @@ +plugins/action/aireos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/aruba.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/ce.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/ce_template.py action-plugin-docs # undocumented action plugin to fix, existed before sanity test was added +plugins/action/cnos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/enos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/exos.py action-plugin-docs # undocumented action plugin to fix +plugins/action/ironware.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/slxos.py action-plugin-docs # undocumented action plugin to fix +plugins/action/sros.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/voss.py action-plugin-docs # undocumented action plugin to fix +plugins/module_utils/network/edgeswitch/edgeswitch_interface.py pylint:duplicate-string-formatting-argument +plugins/modules/a10_server.py validate-modules:parameter-list-no-elements +plugins/modules/a10_server.py validate-modules:parameter-type-not-in-doc +plugins/modules/a10_server_axapi3.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/a10_server_axapi3.py validate-modules:parameter-list-no-elements +plugins/modules/a10_server_axapi3.py validate-modules:parameter-type-not-in-doc +plugins/modules/a10_service_group.py validate-modules:parameter-list-no-elements +plugins/modules/a10_service_group.py validate-modules:parameter-type-not-in-doc +plugins/modules/a10_virtual_server.py validate-modules:doc-default-does-not-match-spec +plugins/modules/a10_virtual_server.py validate-modules:doc-required-mismatch +plugins/modules/a10_virtual_server.py validate-modules:parameter-list-no-elements +plugins/modules/a10_virtual_server.py validate-modules:parameter-type-not-in-doc +plugins/modules/aireos_command.py validate-modules:collection-deprecated-version +plugins/modules/aireos_command.py validate-modules:doc-missing-type +plugins/modules/aireos_command.py validate-modules:parameter-list-no-elements +plugins/modules/aireos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/aireos_config.py validate-modules:collection-deprecated-version +plugins/modules/aireos_config.py validate-modules:doc-missing-type +plugins/modules/aireos_config.py validate-modules:parameter-list-no-elements +plugins/modules/aireos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/apconos_command.py validate-modules:parameter-list-no-elements +plugins/modules/aruba_command.py validate-modules:collection-deprecated-version +plugins/modules/aruba_command.py validate-modules:doc-missing-type +plugins/modules/aruba_command.py validate-modules:parameter-list-no-elements +plugins/modules/aruba_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/aruba_config.py validate-modules:collection-deprecated-version +plugins/modules/aruba_config.py validate-modules:doc-missing-type +plugins/modules/aruba_config.py validate-modules:parameter-list-no-elements +plugins/modules/aruba_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_actiongroupconfig.py validate-modules:doc-missing-type +plugins/modules/avi_actiongroupconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_alertconfig.py validate-modules:doc-missing-type +plugins/modules/avi_alertconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_alertemailconfig.py validate-modules:doc-missing-type +plugins/modules/avi_alertemailconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_alertscriptconfig.py validate-modules:doc-missing-type +plugins/modules/avi_alertscriptconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_alertsyslogconfig.py validate-modules:doc-missing-type +plugins/modules/avi_alertsyslogconfig.py validate-modules:parameter-list-no-elements +plugins/modules/avi_alertsyslogconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_analyticsprofile.py validate-modules:doc-missing-type +plugins/modules/avi_analyticsprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_analyticsprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_api_session.py validate-modules:doc-missing-type +plugins/modules/avi_api_session.py validate-modules:doc-required-mismatch +plugins/modules/avi_api_session.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_api_version.py validate-modules:doc-missing-type +plugins/modules/avi_api_version.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_applicationpersistenceprofile.py validate-modules:doc-missing-type +plugins/modules/avi_applicationpersistenceprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_applicationprofile.py validate-modules:doc-missing-type +plugins/modules/avi_applicationprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_authprofile.py validate-modules:doc-missing-type +plugins/modules/avi_authprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_autoscalelaunchconfig.py validate-modules:doc-missing-type +plugins/modules/avi_autoscalelaunchconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_backup.py validate-modules:doc-missing-type +plugins/modules/avi_backup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_backupconfiguration.py validate-modules:doc-missing-type +plugins/modules/avi_backupconfiguration.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_certificatemanagementprofile.py validate-modules:doc-missing-type +plugins/modules/avi_certificatemanagementprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_certificatemanagementprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_cloud.py validate-modules:doc-missing-type +plugins/modules/avi_cloud.py validate-modules:parameter-list-no-elements +plugins/modules/avi_cloud.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_cloudconnectoruser.py validate-modules:doc-missing-type +plugins/modules/avi_cloudconnectoruser.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_cloudproperties.py validate-modules:doc-missing-type +plugins/modules/avi_cloudproperties.py validate-modules:parameter-list-no-elements +plugins/modules/avi_cloudproperties.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_cluster.py validate-modules:doc-missing-type +plugins/modules/avi_cluster.py validate-modules:parameter-list-no-elements +plugins/modules/avi_cluster.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_clusterclouddetails.py validate-modules:doc-missing-type +plugins/modules/avi_clusterclouddetails.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_controllerproperties.py validate-modules:doc-missing-type +plugins/modules/avi_controllerproperties.py validate-modules:parameter-list-no-elements +plugins/modules/avi_controllerproperties.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_customipamdnsprofile.py validate-modules:doc-missing-type +plugins/modules/avi_customipamdnsprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_customipamdnsprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_dnspolicy.py validate-modules:doc-missing-type +plugins/modules/avi_dnspolicy.py validate-modules:parameter-list-no-elements +plugins/modules/avi_dnspolicy.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_errorpagebody.py validate-modules:doc-missing-type +plugins/modules/avi_errorpagebody.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_errorpageprofile.py validate-modules:doc-missing-type +plugins/modules/avi_errorpageprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_errorpageprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_gslb.py validate-modules:doc-missing-type +plugins/modules/avi_gslb.py validate-modules:parameter-list-no-elements +plugins/modules/avi_gslb.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_gslbgeodbprofile.py validate-modules:doc-missing-type +plugins/modules/avi_gslbgeodbprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_gslbgeodbprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_gslbservice.py validate-modules:doc-missing-type +plugins/modules/avi_gslbservice.py validate-modules:parameter-list-no-elements +plugins/modules/avi_gslbservice.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_gslbservice_patch_member.py validate-modules:doc-missing-type +plugins/modules/avi_gslbservice_patch_member.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_hardwaresecuritymodulegroup.py validate-modules:doc-missing-type +plugins/modules/avi_hardwaresecuritymodulegroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_healthmonitor.py validate-modules:doc-missing-type +plugins/modules/avi_healthmonitor.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_httppolicyset.py validate-modules:doc-missing-type +plugins/modules/avi_httppolicyset.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_ipaddrgroup.py validate-modules:doc-missing-type +plugins/modules/avi_ipaddrgroup.py validate-modules:parameter-list-no-elements +plugins/modules/avi_ipaddrgroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_ipamdnsproviderprofile.py validate-modules:doc-missing-type +plugins/modules/avi_ipamdnsproviderprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_l4policyset.py validate-modules:doc-missing-type +plugins/modules/avi_l4policyset.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_microservicegroup.py validate-modules:doc-missing-type +plugins/modules/avi_microservicegroup.py validate-modules:parameter-list-no-elements +plugins/modules/avi_microservicegroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_network.py validate-modules:doc-missing-type +plugins/modules/avi_network.py validate-modules:parameter-list-no-elements +plugins/modules/avi_network.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_networkprofile.py validate-modules:doc-missing-type +plugins/modules/avi_networkprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_networksecuritypolicy.py validate-modules:doc-missing-type +plugins/modules/avi_networksecuritypolicy.py validate-modules:parameter-list-no-elements +plugins/modules/avi_networksecuritypolicy.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_pkiprofile.py validate-modules:doc-missing-type +plugins/modules/avi_pkiprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_pkiprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_pool.py validate-modules:doc-missing-type +plugins/modules/avi_pool.py validate-modules:parameter-list-no-elements +plugins/modules/avi_pool.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_poolgroup.py validate-modules:doc-missing-type +plugins/modules/avi_poolgroup.py validate-modules:parameter-list-no-elements +plugins/modules/avi_poolgroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_poolgroupdeploymentpolicy.py validate-modules:doc-missing-type +plugins/modules/avi_poolgroupdeploymentpolicy.py validate-modules:parameter-list-no-elements +plugins/modules/avi_poolgroupdeploymentpolicy.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_prioritylabels.py validate-modules:doc-missing-type +plugins/modules/avi_prioritylabels.py validate-modules:parameter-list-no-elements +plugins/modules/avi_prioritylabels.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_role.py validate-modules:doc-missing-type +plugins/modules/avi_role.py validate-modules:parameter-list-no-elements +plugins/modules/avi_role.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_scheduler.py validate-modules:doc-missing-type +plugins/modules/avi_scheduler.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_seproperties.py validate-modules:doc-missing-type +plugins/modules/avi_seproperties.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_serverautoscalepolicy.py validate-modules:doc-missing-type +plugins/modules/avi_serverautoscalepolicy.py validate-modules:parameter-list-no-elements +plugins/modules/avi_serverautoscalepolicy.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_serviceengine.py validate-modules:doc-missing-type +plugins/modules/avi_serviceengine.py validate-modules:parameter-list-no-elements +plugins/modules/avi_serviceengine.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_serviceenginegroup.py validate-modules:doc-missing-type +plugins/modules/avi_serviceenginegroup.py validate-modules:parameter-list-no-elements +plugins/modules/avi_serviceenginegroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_snmptrapprofile.py validate-modules:doc-missing-type +plugins/modules/avi_snmptrapprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_snmptrapprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_sslkeyandcertificate.py validate-modules:doc-missing-type +plugins/modules/avi_sslkeyandcertificate.py validate-modules:parameter-list-no-elements +plugins/modules/avi_sslkeyandcertificate.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_sslprofile.py validate-modules:doc-missing-type +plugins/modules/avi_sslprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_sslprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_stringgroup.py validate-modules:doc-missing-type +plugins/modules/avi_stringgroup.py validate-modules:parameter-list-no-elements +plugins/modules/avi_stringgroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_systemconfiguration.py validate-modules:doc-missing-type +plugins/modules/avi_systemconfiguration.py validate-modules:parameter-list-no-elements +plugins/modules/avi_systemconfiguration.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_tenant.py validate-modules:doc-missing-type +plugins/modules/avi_tenant.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_trafficcloneprofile.py validate-modules:doc-missing-type +plugins/modules/avi_trafficcloneprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_trafficcloneprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_user.py validate-modules:doc-missing-type +plugins/modules/avi_user.py validate-modules:parameter-list-no-elements +plugins/modules/avi_user.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_useraccount.py validate-modules:doc-missing-type +plugins/modules/avi_useraccount.py validate-modules:doc-required-mismatch +plugins/modules/avi_useraccount.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_useraccountprofile.py validate-modules:doc-missing-type +plugins/modules/avi_useraccountprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_virtualservice.py validate-modules:doc-missing-type +plugins/modules/avi_virtualservice.py validate-modules:parameter-list-no-elements +plugins/modules/avi_virtualservice.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_vrfcontext.py validate-modules:doc-missing-type +plugins/modules/avi_vrfcontext.py validate-modules:parameter-list-no-elements +plugins/modules/avi_vrfcontext.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_vsdatascriptset.py validate-modules:doc-missing-type +plugins/modules/avi_vsdatascriptset.py validate-modules:parameter-list-no-elements +plugins/modules/avi_vsdatascriptset.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_vsvip.py validate-modules:doc-missing-type +plugins/modules/avi_vsvip.py validate-modules:parameter-list-no-elements +plugins/modules/avi_vsvip.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_webhook.py validate-modules:doc-missing-type +plugins/modules/avi_webhook.py validate-modules:parameter-type-not-in-doc +plugins/modules/bcf_switch.py validate-modules:doc-missing-type +plugins/modules/bcf_switch.py validate-modules:parameter-type-not-in-doc +plugins/modules/bigmon_chain.py validate-modules:doc-missing-type +plugins/modules/bigmon_chain.py validate-modules:parameter-type-not-in-doc +plugins/modules/bigmon_policy.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/bigmon_policy.py validate-modules:doc-default-does-not-match-spec +plugins/modules/bigmon_policy.py validate-modules:doc-missing-type +plugins/modules/bigmon_policy.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_aaa_server_host.py validate-modules:doc-missing-type +plugins/modules/ce_aaa_server_host.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_acl.py validate-modules:doc-missing-type +plugins/modules/ce_acl.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_acl_advance.py validate-modules:doc-missing-type +plugins/modules/ce_acl_advance.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_acl_interface.py validate-modules:doc-missing-type +plugins/modules/ce_acl_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bfd_global.py validate-modules:doc-missing-type +plugins/modules/ce_bfd_global.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bfd_session.py validate-modules:doc-missing-type +plugins/modules/ce_bfd_session.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bfd_view.py validate-modules:doc-missing-type +plugins/modules/ce_bfd_view.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bgp.py validate-modules:doc-missing-type +plugins/modules/ce_bgp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bgp_af.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_bgp_af.py validate-modules:doc-missing-type +plugins/modules/ce_bgp_af.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bgp_neighbor.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_bgp_neighbor.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_bgp_neighbor.py validate-modules:doc-missing-type +plugins/modules/ce_bgp_neighbor.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bgp_neighbor.py validate-modules:undocumented-parameter +plugins/modules/ce_bgp_neighbor_af.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_bgp_neighbor_af.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_bgp_neighbor_af.py validate-modules:doc-missing-type +plugins/modules/ce_bgp_neighbor_af.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bgp_neighbor_af.py validate-modules:undocumented-parameter +plugins/modules/ce_command.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_command.py validate-modules:doc-missing-type +plugins/modules/ce_command.py validate-modules:parameter-list-no-elements +plugins/modules/ce_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_config.py validate-modules:doc-missing-type +plugins/modules/ce_config.py validate-modules:parameter-list-no-elements +plugins/modules/ce_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_config.py validate-modules:undocumented-parameter +plugins/modules/ce_dldp.py validate-modules:nonexistent-parameter-documented +plugins/modules/ce_dldp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_dldp.py validate-modules:undocumented-parameter +plugins/modules/ce_dldp_interface.py validate-modules:doc-missing-type +plugins/modules/ce_dldp_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_eth_trunk.py validate-modules:doc-missing-type +plugins/modules/ce_eth_trunk.py validate-modules:parameter-list-no-elements +plugins/modules/ce_eth_trunk.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_evpn_bd_vni.py validate-modules:doc-missing-type +plugins/modules/ce_evpn_bd_vni.py validate-modules:doc-required-mismatch +plugins/modules/ce_evpn_bd_vni.py validate-modules:parameter-list-no-elements +plugins/modules/ce_evpn_bd_vni.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_evpn_bgp.py validate-modules:doc-missing-type +plugins/modules/ce_evpn_bgp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_evpn_bgp_rr.py validate-modules:doc-missing-type +plugins/modules/ce_evpn_bgp_rr.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_evpn_global.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_facts.py validate-modules:parameter-list-no-elements +plugins/modules/ce_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_file_copy.py validate-modules:doc-missing-type +plugins/modules/ce_info_center_debug.py validate-modules:doc-missing-type +plugins/modules/ce_info_center_debug.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_info_center_global.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_info_center_global.py validate-modules:doc-missing-type +plugins/modules/ce_info_center_global.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_info_center_log.py validate-modules:doc-missing-type +plugins/modules/ce_info_center_log.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_info_center_trap.py validate-modules:doc-missing-type +plugins/modules/ce_info_center_trap.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_interface.py validate-modules:doc-missing-type +plugins/modules/ce_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_interface_ospf.py validate-modules:doc-missing-type +plugins/modules/ce_interface_ospf.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_ip_interface.py validate-modules:doc-missing-type +plugins/modules/ce_ip_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_is_is_view.py validate-modules:doc-required-mismatch +plugins/modules/ce_link_status.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_mlag_config.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_mlag_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_mlag_interface.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_mlag_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_mtu.py validate-modules:doc-missing-type +plugins/modules/ce_mtu.py validate-modules:doc-required-mismatch +plugins/modules/ce_mtu.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_netconf.py validate-modules:doc-missing-type +plugins/modules/ce_netstream_aging.py validate-modules:doc-missing-type +plugins/modules/ce_netstream_aging.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_netstream_export.py validate-modules:doc-missing-type +plugins/modules/ce_netstream_export.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_netstream_global.py validate-modules:doc-missing-type +plugins/modules/ce_netstream_global.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_netstream_template.py validate-modules:doc-missing-type +plugins/modules/ce_netstream_template.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_ntp.py validate-modules:doc-missing-type +plugins/modules/ce_ntp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_ntp_auth.py validate-modules:doc-missing-type +plugins/modules/ce_ntp_auth.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_ospf.py validate-modules:doc-missing-type +plugins/modules/ce_ospf.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_ospf_vrf.py validate-modules:doc-missing-type +plugins/modules/ce_ospf_vrf.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_rollback.py validate-modules:doc-missing-type +plugins/modules/ce_rollback.py validate-modules:doc-required-mismatch +plugins/modules/ce_rollback.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_sflow.py validate-modules:doc-missing-type +plugins/modules/ce_sflow.py validate-modules:parameter-list-no-elements +plugins/modules/ce_sflow.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_community.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_community.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_contact.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_contact.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_location.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_location.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_target_host.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_snmp_target_host.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_snmp_target_host.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_target_host.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_target_host.py validate-modules:undocumented-parameter +plugins/modules/ce_snmp_traps.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_snmp_traps.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_snmp_traps.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_traps.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_traps.py validate-modules:undocumented-parameter +plugins/modules/ce_snmp_user.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_snmp_user.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_snmp_user.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_user.py validate-modules:mutually_exclusive-unknown +plugins/modules/ce_snmp_user.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_user.py validate-modules:undocumented-parameter +plugins/modules/ce_startup.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_startup.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_static_route.py validate-modules:doc-missing-type +plugins/modules/ce_static_route.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_static_route_bfd.py validate-modules:doc-required-mismatch +plugins/modules/ce_static_route_bfd.py validate-modules:parameter-list-no-elements +plugins/modules/ce_stp.py validate-modules:doc-missing-type +plugins/modules/ce_stp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_switchport.py validate-modules:doc-missing-type +plugins/modules/ce_switchport.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vlan.py validate-modules:doc-missing-type +plugins/modules/ce_vlan.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vrf.py validate-modules:doc-missing-type +plugins/modules/ce_vrf.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vrf_af.py validate-modules:doc-missing-type +plugins/modules/ce_vrf_af.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vrf_interface.py validate-modules:doc-missing-type +plugins/modules/ce_vrf_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vrrp.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_vrrp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vxlan_arp.py validate-modules:doc-missing-type +plugins/modules/ce_vxlan_arp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vxlan_gateway.py validate-modules:doc-missing-type +plugins/modules/ce_vxlan_gateway.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vxlan_global.py validate-modules:doc-missing-type +plugins/modules/ce_vxlan_global.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vxlan_tunnel.py validate-modules:doc-missing-type +plugins/modules/ce_vxlan_tunnel.py validate-modules:parameter-list-no-elements +plugins/modules/ce_vxlan_tunnel.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vxlan_vap.py validate-modules:doc-missing-type +plugins/modules/ce_vxlan_vap.py validate-modules:parameter-type-not-in-doc +plugins/modules/cv_server_provision.py validate-modules:doc-missing-type +plugins/modules/cv_server_provision.py validate-modules:doc-required-mismatch +plugins/modules/cv_server_provision.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/cnos_backup.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_backup.py validate-modules:doc-missing-type +plugins/modules/cnos_backup.py validate-modules:doc-required-mismatch +plugins/modules/cnos_backup.py validate-modules:nonexistent-parameter-documented +plugins/modules/cnos_backup.py validate-modules:undocumented-parameter +plugins/modules/cnos_backup.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_banner.py validate-modules:doc-missing-type +plugins/modules/cnos_bgp.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_bgp.py validate-modules:doc-missing-type +plugins/modules/cnos_bgp.py validate-modules:doc-required-mismatch +plugins/modules/cnos_bgp.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_command.py validate-modules:doc-missing-type +plugins/modules/cnos_command.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_conditional_command.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_conditional_command.py validate-modules:doc-missing-type +plugins/modules/cnos_conditional_command.py validate-modules:doc-required-mismatch +plugins/modules/cnos_conditional_command.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_conditional_template.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_conditional_template.py validate-modules:doc-missing-type +plugins/modules/cnos_conditional_template.py validate-modules:doc-required-mismatch +plugins/modules/cnos_conditional_template.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_config.py validate-modules:doc-missing-type +plugins/modules/cnos_config.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_config.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_factory.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_factory.py validate-modules:doc-required-mismatch +plugins/modules/cnos_factory.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_facts.py validate-modules:nonexistent-parameter-documented +plugins/modules/cnos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_facts.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_image.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_image.py validate-modules:doc-missing-type +plugins/modules/cnos_image.py validate-modules:doc-required-mismatch +plugins/modules/cnos_image.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_interface.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_interface.py validate-modules:doc-missing-type +plugins/modules/cnos_interface.py validate-modules:doc-required-mismatch +plugins/modules/cnos_interface.py validate-modules:missing-suboption-docs +plugins/modules/cnos_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_interface.py validate-modules:undocumented-parameter +plugins/modules/cnos_l2_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_l2_interface.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_l2_interface.py validate-modules:doc-missing-type +plugins/modules/cnos_l2_interface.py validate-modules:doc-required-mismatch +plugins/modules/cnos_l2_interface.py validate-modules:missing-suboption-docs +plugins/modules/cnos_l2_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_l2_interface.py validate-modules:undocumented-parameter +plugins/modules/cnos_l3_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_l3_interface.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_l3_interface.py validate-modules:doc-missing-type +plugins/modules/cnos_l3_interface.py validate-modules:doc-required-mismatch +plugins/modules/cnos_l3_interface.py validate-modules:missing-suboption-docs +plugins/modules/cnos_l3_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_l3_interface.py validate-modules:undocumented-parameter +plugins/modules/cnos_linkagg.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_linkagg.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_linkagg.py validate-modules:doc-missing-type +plugins/modules/cnos_linkagg.py validate-modules:doc-required-mismatch +plugins/modules/cnos_linkagg.py validate-modules:missing-suboption-docs +plugins/modules/cnos_linkagg.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_linkagg.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_linkagg.py validate-modules:undocumented-parameter +plugins/modules/cnos_lldp.py validate-modules:doc-missing-type +plugins/modules/cnos_logging.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_logging.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_logging.py validate-modules:doc-missing-type +plugins/modules/cnos_logging.py validate-modules:missing-suboption-docs +plugins/modules/cnos_logging.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_logging.py validate-modules:undocumented-parameter +plugins/modules/cnos_reload.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_reload.py validate-modules:doc-required-mismatch +plugins/modules/cnos_reload.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_rollback.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_rollback.py validate-modules:doc-missing-type +plugins/modules/cnos_rollback.py validate-modules:doc-required-mismatch +plugins/modules/cnos_rollback.py validate-modules:nonexistent-parameter-documented +plugins/modules/cnos_rollback.py validate-modules:undocumented-parameter +plugins/modules/cnos_rollback.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_save.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_save.py validate-modules:doc-required-mismatch +plugins/modules/cnos_save.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_showrun.py validate-modules:doc-required-mismatch +plugins/modules/cnos_showrun.py validate-modules:nonexistent-parameter-documented +plugins/modules/cnos_showrun.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_static_route.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_static_route.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_static_route.py validate-modules:doc-missing-type +plugins/modules/cnos_static_route.py validate-modules:doc-required-mismatch +plugins/modules/cnos_static_route.py validate-modules:missing-suboption-docs +plugins/modules/cnos_static_route.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_static_route.py validate-modules:undocumented-parameter +plugins/modules/cnos_system.py validate-modules:doc-missing-type +plugins/modules/cnos_system.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_system.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_template.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_template.py validate-modules:doc-missing-type +plugins/modules/cnos_template.py validate-modules:doc-required-mismatch +plugins/modules/cnos_template.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_user.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_user.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_user.py validate-modules:doc-missing-type +plugins/modules/cnos_user.py validate-modules:missing-suboption-docs +plugins/modules/cnos_user.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_user.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_user.py validate-modules:undocumented-parameter +plugins/modules/cnos_vlag.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_vlag.py validate-modules:doc-missing-type +plugins/modules/cnos_vlag.py validate-modules:doc-required-mismatch +plugins/modules/cnos_vlag.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_vlan.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_vlan.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_vlan.py validate-modules:doc-missing-type +plugins/modules/cnos_vlan.py validate-modules:doc-required-mismatch +plugins/modules/cnos_vlan.py validate-modules:missing-suboption-docs +plugins/modules/cnos_vlan.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_vlan.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_vlan.py validate-modules:undocumented-parameter +plugins/modules/cnos_vrf.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_vrf.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_vrf.py validate-modules:doc-missing-type +plugins/modules/cnos_vrf.py validate-modules:doc-required-mismatch +plugins/modules/cnos_vrf.py validate-modules:missing-suboption-docs +plugins/modules/cnos_vrf.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_vrf.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_vrf.py validate-modules:undocumented-parameter +plugins/modules/nclu.py validate-modules:parameter-list-no-elements +plugins/modules/nclu.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeos_command.py validate-modules:doc-missing-type +plugins/modules/edgeos_command.py validate-modules:parameter-list-no-elements +plugins/modules/edgeos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeos_config.py validate-modules:doc-missing-type +plugins/modules/edgeos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/edgeos_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeswitch_facts.py validate-modules:parameter-list-no-elements +plugins/modules/edgeswitch_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeswitch_vlan.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/edgeswitch_vlan.py validate-modules:doc-elements-mismatch +plugins/modules/edgeswitch_vlan.py validate-modules:doc-missing-type +plugins/modules/edgeswitch_vlan.py validate-modules:doc-required-mismatch +plugins/modules/edgeswitch_vlan.py validate-modules:missing-suboption-docs +plugins/modules/edgeswitch_vlan.py validate-modules:parameter-list-no-elements +plugins/modules/edgeswitch_vlan.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeswitch_vlan.py validate-modules:undocumented-parameter +plugins/modules/enos_command.py validate-modules:doc-missing-type +plugins/modules/enos_command.py validate-modules:nonexistent-parameter-documented +plugins/modules/enos_command.py validate-modules:parameter-list-no-elements +plugins/modules/enos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/enos_config.py validate-modules:doc-missing-type +plugins/modules/enos_config.py validate-modules:nonexistent-parameter-documented +plugins/modules/enos_config.py validate-modules:parameter-list-no-elements +plugins/modules/enos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/enos_facts.py validate-modules:nonexistent-parameter-documented +plugins/modules/enos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/enos_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/enos_facts.py yamllint:unparsable-with-libyaml +plugins/modules/eric_eccli_command.py validate-modules:parameter-list-no-elements +plugins/modules/exos_command.py validate-modules:doc-missing-type +plugins/modules/exos_command.py validate-modules:parameter-list-no-elements +plugins/modules/exos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/exos_config.py validate-modules:doc-missing-type +plugins/modules/exos_config.py validate-modules:parameter-list-no-elements +plugins/modules/exos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/exos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/exos_l2_interfaces.py validate-modules:parameter-list-no-elements +plugins/modules/icx_command.py validate-modules:parameter-list-no-elements +plugins/modules/icx_config.py validate-modules:parameter-list-no-elements +plugins/modules/icx_facts.py validate-modules:parameter-list-no-elements +plugins/modules/icx_interface.py validate-modules:doc-required-mismatch +plugins/modules/icx_l3_interface.py validate-modules:doc-required-mismatch +plugins/modules/icx_linkagg.py validate-modules:doc-elements-mismatch +plugins/modules/icx_linkagg.py validate-modules:doc-required-mismatch +plugins/modules/icx_linkagg.py validate-modules:parameter-list-no-elements +plugins/modules/icx_lldp.py validate-modules:doc-elements-mismatch +plugins/modules/icx_lldp.py validate-modules:parameter-list-no-elements +plugins/modules/icx_logging.py validate-modules:doc-elements-mismatch +plugins/modules/icx_logging.py validate-modules:parameter-list-no-elements +plugins/modules/icx_static_route.py validate-modules:doc-required-mismatch +plugins/modules/icx_system.py validate-modules:doc-elements-mismatch +plugins/modules/icx_system.py validate-modules:parameter-list-no-elements +plugins/modules/icx_user.py validate-modules:doc-required-mismatch +plugins/modules/icx_vlan.py validate-modules:doc-elements-mismatch +plugins/modules/icx_vlan.py validate-modules:doc-required-mismatch +plugins/modules/icx_vlan.py validate-modules:parameter-list-no-elements +plugins/modules/dladm_etherstub.py validate-modules:doc-missing-type +plugins/modules/dladm_iptun.py validate-modules:doc-missing-type +plugins/modules/dladm_iptun.py validate-modules:parameter-type-not-in-doc +plugins/modules/dladm_linkprop.py validate-modules:doc-missing-type +plugins/modules/dladm_linkprop.py validate-modules:no-default-for-required-parameter +plugins/modules/dladm_linkprop.py validate-modules:parameter-type-not-in-doc +plugins/modules/dladm_vlan.py validate-modules:doc-default-does-not-match-spec +plugins/modules/dladm_vlan.py validate-modules:doc-missing-type +plugins/modules/dladm_vlan.py validate-modules:doc-required-mismatch +plugins/modules/dladm_vlan.py validate-modules:parameter-type-not-in-doc +plugins/modules/dladm_vnic.py validate-modules:doc-default-does-not-match-spec +plugins/modules/flowadm.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/flowadm.py validate-modules:doc-missing-type +plugins/modules/ipadm_addr.py validate-modules:doc-missing-type +plugins/modules/ipadm_addr.py validate-modules:parameter-type-not-in-doc +plugins/modules/ipadm_addrprop.py validate-modules:doc-missing-type +plugins/modules/ipadm_addrprop.py validate-modules:no-default-for-required-parameter +plugins/modules/ipadm_if.py validate-modules:doc-missing-type +plugins/modules/ipadm_ifprop.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ipadm_ifprop.py validate-modules:doc-missing-type +plugins/modules/ipadm_ifprop.py validate-modules:no-default-for-required-parameter +plugins/modules/ipadm_prop.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ipadm_prop.py validate-modules:doc-missing-type +plugins/modules/ig_config.py validate-modules:doc-missing-type +plugins/modules/ig_config.py validate-modules:doc-required-mismatch +plugins/modules/ig_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/ig_config.py validate-modules:return-syntax-error +plugins/modules/ig_unit_information.py validate-modules:doc-required-mismatch +plugins/modules/ig_unit_information.py validate-modules:parameter-type-not-in-doc +plugins/modules/ironware_command.py validate-modules:doc-missing-type +plugins/modules/ironware_command.py validate-modules:nonexistent-parameter-documented +plugins/modules/ironware_command.py validate-modules:parameter-list-no-elements +plugins/modules/ironware_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/ironware_config.py validate-modules:doc-missing-type +plugins/modules/ironware_config.py validate-modules:nonexistent-parameter-documented +plugins/modules/ironware_config.py validate-modules:parameter-list-no-elements +plugins/modules/ironware_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/ironware_facts.py validate-modules:nonexistent-parameter-documented +plugins/modules/ironware_facts.py validate-modules:parameter-list-no-elements +plugins/modules/ironware_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/iap_start_workflow.py validate-modules:doc-required-mismatch +plugins/modules/iap_token.py validate-modules:parameter-type-not-in-doc +plugins/modules/netact_cm_command.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/netact_cm_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_cs_action.py validate-modules:nonexistent-parameter-documented +plugins/modules/netscaler_cs_action.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_cs_policy.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_cs_vserver.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/netscaler_cs_vserver.py validate-modules:nonexistent-parameter-documented +plugins/modules/netscaler_cs_vserver.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_cs_vserver.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_cs_vserver.py validate-modules:undocumented-parameter +plugins/modules/netscaler_gslb_service.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_gslb_service.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_gslb_site.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_gslb_vserver.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_gslb_vserver.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_gslb_vserver.py validate-modules:undocumented-parameter +plugins/modules/netscaler_lb_monitor.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/netscaler_lb_monitor.py validate-modules:nonexistent-parameter-documented +plugins/modules/netscaler_lb_monitor.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_lb_monitor.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_lb_vserver.py validate-modules:nonexistent-parameter-documented +plugins/modules/netscaler_lb_vserver.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_lb_vserver.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_nitro_request.py pylint:ansible-bad-function +plugins/modules/netscaler_nitro_request.py validate-modules:doc-missing-type +plugins/modules/netscaler_nitro_request.py validate-modules:doc-required-mismatch +plugins/modules/netscaler_nitro_request.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_nitro_request.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_save_config.py validate-modules:doc-missing-type +plugins/modules/netscaler_save_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_server.py validate-modules:doc-default-does-not-match-spec +plugins/modules/netscaler_server.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_service.py validate-modules:nonexistent-parameter-documented +plugins/modules/netscaler_service.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_service.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_servicegroup.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_servicegroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_ssl_certkey.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_access_list.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_access_list.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_access_list_ip.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_access_list_ip.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_admin_service.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_admin_session_timeout.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_admin_syslog.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_connection_stats_settings.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_cpu_class.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_cpu_class.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_cpu_mgmt_class.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_dhcp_filter.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_dscp_map.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_dscp_map.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_dscp_map_pri_map.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_fabric_local.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_fabric_local.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_igmp_snooping.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_igmp_snooping.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_ipv6security_raguard.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_ipv6security_raguard_port.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_ipv6security_raguard_vlan.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_log_audit_exception.py validate-modules:doc-required-mismatch +plugins/modules/pn_log_audit_exception.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_port_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_port_config.py validate-modules:required_one_of-unknown +plugins/modules/pn_port_cos_bw.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_port_cos_rate_setting.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_prefix_list.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_prefix_list_network.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_role.py validate-modules:doc-required-mismatch +plugins/modules/pn_role.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_snmp_community.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_snmp_community.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_snmp_trap_sink.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_snmp_vacm.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_stp.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_stp_port.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_switch_setup.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_user.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vflow_table_profile.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_bgp.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_bgp.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_vrouter_bgp_network.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_interface_ip.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_loopback_interface.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_ospf.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_ospf6.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_packet_relay.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_pim_config.py validate-modules:doc-required-mismatch +plugins/modules/pn_vrouter_pim_config.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vtep.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/nos_command.py validate-modules:doc-missing-type +plugins/modules/nos_command.py validate-modules:parameter-list-no-elements +plugins/modules/nos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/nos_config.py validate-modules:doc-missing-type +plugins/modules/nos_config.py validate-modules:parameter-list-no-elements +plugins/modules/nos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/nos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/nos_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/nuage_vspk.py validate-modules:doc-required-mismatch +plugins/modules/nuage_vspk.py validate-modules:missing-suboption-docs +plugins/modules/nuage_vspk.py validate-modules:parameter-list-no-elements +plugins/modules/nuage_vspk.py validate-modules:parameter-type-not-in-doc +plugins/modules/nuage_vspk.py validate-modules:undocumented-parameter +plugins/modules/opx_cps.py validate-modules:doc-required-mismatch +plugins/modules/opx_cps.py validate-modules:parameter-type-not-in-doc +plugins/modules/ordnance_config.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ordnance_config.py validate-modules:doc-missing-type +plugins/modules/ordnance_config.py validate-modules:doc-required-mismatch +plugins/modules/ordnance_config.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/ordnance_config.py validate-modules:parameter-list-no-elements +plugins/modules/ordnance_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/ordnance_config.py validate-modules:undocumented-parameter +plugins/modules/ordnance_config.py yamllint:unparsable-with-libyaml +plugins/modules/ordnance_facts.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ordnance_facts.py validate-modules:doc-missing-type +plugins/modules/ordnance_facts.py validate-modules:doc-required-mismatch +plugins/modules/ordnance_facts.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/ordnance_facts.py validate-modules:parameter-list-no-elements +plugins/modules/ordnance_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/ordnance_facts.py validate-modules:undocumented-parameter +plugins/modules/ordnance_facts.py yamllint:unparsable-with-libyaml +plugins/modules/vdirect_commit.py validate-modules:doc-missing-type +plugins/modules/vdirect_commit.py validate-modules:parameter-list-no-elements +plugins/modules/vdirect_commit.py validate-modules:parameter-type-not-in-doc +plugins/modules/vdirect_file.py validate-modules:doc-missing-type +plugins/modules/vdirect_file.py validate-modules:parameter-type-not-in-doc +plugins/modules/vdirect_runnable.py validate-modules:doc-missing-type +plugins/modules/vdirect_runnable.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_command.py validate-modules:doc-missing-type +plugins/modules/slxos_command.py validate-modules:parameter-list-no-elements +plugins/modules/slxos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_config.py validate-modules:doc-missing-type +plugins/modules/slxos_config.py validate-modules:parameter-list-no-elements +plugins/modules/slxos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/slxos_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/slxos_interface.py validate-modules:doc-elements-mismatch +plugins/modules/slxos_interface.py validate-modules:doc-missing-type +plugins/modules/slxos_interface.py validate-modules:doc-required-mismatch +plugins/modules/slxos_interface.py validate-modules:missing-suboption-docs +plugins/modules/slxos_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_interface.py validate-modules:undocumented-parameter +plugins/modules/slxos_l2_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/slxos_l2_interface.py validate-modules:doc-elements-mismatch +plugins/modules/slxos_l2_interface.py validate-modules:doc-missing-type +plugins/modules/slxos_l2_interface.py validate-modules:doc-required-mismatch +plugins/modules/slxos_l2_interface.py validate-modules:missing-suboption-docs +plugins/modules/slxos_l2_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_l2_interface.py validate-modules:undocumented-parameter +plugins/modules/slxos_l3_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/slxos_l3_interface.py validate-modules:doc-elements-mismatch +plugins/modules/slxos_l3_interface.py validate-modules:doc-missing-type +plugins/modules/slxos_l3_interface.py validate-modules:doc-required-mismatch +plugins/modules/slxos_l3_interface.py validate-modules:missing-suboption-docs +plugins/modules/slxos_l3_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_l3_interface.py validate-modules:undocumented-parameter +plugins/modules/slxos_linkagg.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/slxos_linkagg.py validate-modules:doc-elements-mismatch +plugins/modules/slxos_linkagg.py validate-modules:doc-missing-type +plugins/modules/slxos_linkagg.py validate-modules:doc-required-mismatch +plugins/modules/slxos_linkagg.py validate-modules:missing-suboption-docs +plugins/modules/slxos_linkagg.py validate-modules:parameter-list-no-elements +plugins/modules/slxos_linkagg.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_linkagg.py validate-modules:undocumented-parameter +plugins/modules/slxos_lldp.py validate-modules:doc-missing-type +plugins/modules/slxos_vlan.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/slxos_vlan.py validate-modules:doc-elements-mismatch +plugins/modules/slxos_vlan.py validate-modules:doc-missing-type +plugins/modules/slxos_vlan.py validate-modules:doc-required-mismatch +plugins/modules/slxos_vlan.py validate-modules:missing-suboption-docs +plugins/modules/slxos_vlan.py validate-modules:parameter-list-no-elements +plugins/modules/slxos_vlan.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_vlan.py validate-modules:undocumented-parameter +plugins/modules/sros_command.py validate-modules:collection-deprecated-version +plugins/modules/sros_command.py validate-modules:doc-missing-type +plugins/modules/sros_command.py validate-modules:parameter-list-no-elements +plugins/modules/sros_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/sros_config.py validate-modules:collection-deprecated-version +plugins/modules/sros_config.py validate-modules:doc-missing-type +plugins/modules/sros_config.py validate-modules:nonexistent-parameter-documented +plugins/modules/sros_config.py validate-modules:parameter-list-no-elements +plugins/modules/sros_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/sros_rollback.py validate-modules:collection-deprecated-version +plugins/modules/sros_rollback.py validate-modules:doc-missing-type +plugins/modules/sros_rollback.py validate-modules:parameter-type-not-in-doc +plugins/modules/voss_command.py validate-modules:doc-missing-type +plugins/modules/voss_command.py validate-modules:parameter-list-no-elements +plugins/modules/voss_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/voss_config.py validate-modules:doc-missing-type +plugins/modules/voss_config.py validate-modules:parameter-list-no-elements +plugins/modules/voss_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/voss_facts.py validate-modules:parameter-list-no-elements +plugins/modules/voss_facts.py validate-modules:parameter-type-not-in-doc diff --git a/ansible_collections/community/network/tests/sanity/ignore-2.12.txt b/ansible_collections/community/network/tests/sanity/ignore-2.12.txt new file mode 100644 index 000000000..d554da4af --- /dev/null +++ b/ansible_collections/community/network/tests/sanity/ignore-2.12.txt @@ -0,0 +1,819 @@ +plugins/action/aireos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/aruba.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/ce.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/ce_template.py action-plugin-docs # undocumented action plugin to fix, existed before sanity test was added +plugins/action/cnos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/enos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/exos.py action-plugin-docs # undocumented action plugin to fix +plugins/action/ironware.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/slxos.py action-plugin-docs # undocumented action plugin to fix +plugins/action/sros.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/voss.py action-plugin-docs # undocumented action plugin to fix +plugins/module_utils/network/edgeswitch/edgeswitch_interface.py pylint:duplicate-string-formatting-argument +plugins/modules/a10_server.py validate-modules:parameter-list-no-elements +plugins/modules/a10_server.py validate-modules:parameter-type-not-in-doc +plugins/modules/a10_server_axapi3.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/a10_server_axapi3.py validate-modules:parameter-list-no-elements +plugins/modules/a10_server_axapi3.py validate-modules:parameter-type-not-in-doc +plugins/modules/a10_service_group.py validate-modules:parameter-list-no-elements +plugins/modules/a10_service_group.py validate-modules:parameter-type-not-in-doc +plugins/modules/a10_virtual_server.py validate-modules:doc-default-does-not-match-spec +plugins/modules/a10_virtual_server.py validate-modules:doc-required-mismatch +plugins/modules/a10_virtual_server.py validate-modules:parameter-list-no-elements +plugins/modules/a10_virtual_server.py validate-modules:parameter-type-not-in-doc +plugins/modules/aireos_command.py validate-modules:collection-deprecated-version +plugins/modules/aireos_command.py validate-modules:doc-missing-type +plugins/modules/aireos_command.py validate-modules:parameter-list-no-elements +plugins/modules/aireos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/aireos_config.py validate-modules:collection-deprecated-version +plugins/modules/aireos_config.py validate-modules:doc-missing-type +plugins/modules/aireos_config.py validate-modules:parameter-list-no-elements +plugins/modules/aireos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/apconos_command.py validate-modules:parameter-list-no-elements +plugins/modules/aruba_command.py validate-modules:collection-deprecated-version +plugins/modules/aruba_command.py validate-modules:doc-missing-type +plugins/modules/aruba_command.py validate-modules:parameter-list-no-elements +plugins/modules/aruba_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/aruba_config.py validate-modules:collection-deprecated-version +plugins/modules/aruba_config.py validate-modules:doc-missing-type +plugins/modules/aruba_config.py validate-modules:parameter-list-no-elements +plugins/modules/aruba_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_actiongroupconfig.py validate-modules:doc-missing-type +plugins/modules/avi_actiongroupconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_alertconfig.py validate-modules:doc-missing-type +plugins/modules/avi_alertconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_alertemailconfig.py validate-modules:doc-missing-type +plugins/modules/avi_alertemailconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_alertscriptconfig.py validate-modules:doc-missing-type +plugins/modules/avi_alertscriptconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_alertsyslogconfig.py validate-modules:doc-missing-type +plugins/modules/avi_alertsyslogconfig.py validate-modules:parameter-list-no-elements +plugins/modules/avi_alertsyslogconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_analyticsprofile.py validate-modules:doc-missing-type +plugins/modules/avi_analyticsprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_analyticsprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_api_session.py validate-modules:doc-missing-type +plugins/modules/avi_api_session.py validate-modules:doc-required-mismatch +plugins/modules/avi_api_session.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_api_version.py validate-modules:doc-missing-type +plugins/modules/avi_api_version.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_applicationpersistenceprofile.py validate-modules:doc-missing-type +plugins/modules/avi_applicationpersistenceprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_applicationprofile.py validate-modules:doc-missing-type +plugins/modules/avi_applicationprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_authprofile.py validate-modules:doc-missing-type +plugins/modules/avi_authprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_autoscalelaunchconfig.py validate-modules:doc-missing-type +plugins/modules/avi_autoscalelaunchconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_backup.py validate-modules:doc-missing-type +plugins/modules/avi_backup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_backupconfiguration.py validate-modules:doc-missing-type +plugins/modules/avi_backupconfiguration.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_certificatemanagementprofile.py validate-modules:doc-missing-type +plugins/modules/avi_certificatemanagementprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_certificatemanagementprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_cloud.py validate-modules:doc-missing-type +plugins/modules/avi_cloud.py validate-modules:parameter-list-no-elements +plugins/modules/avi_cloud.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_cloudconnectoruser.py validate-modules:doc-missing-type +plugins/modules/avi_cloudconnectoruser.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_cloudproperties.py validate-modules:doc-missing-type +plugins/modules/avi_cloudproperties.py validate-modules:parameter-list-no-elements +plugins/modules/avi_cloudproperties.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_cluster.py validate-modules:doc-missing-type +plugins/modules/avi_cluster.py validate-modules:parameter-list-no-elements +plugins/modules/avi_cluster.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_clusterclouddetails.py validate-modules:doc-missing-type +plugins/modules/avi_clusterclouddetails.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_controllerproperties.py validate-modules:doc-missing-type +plugins/modules/avi_controllerproperties.py validate-modules:parameter-list-no-elements +plugins/modules/avi_controllerproperties.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_customipamdnsprofile.py validate-modules:doc-missing-type +plugins/modules/avi_customipamdnsprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_customipamdnsprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_dnspolicy.py validate-modules:doc-missing-type +plugins/modules/avi_dnspolicy.py validate-modules:parameter-list-no-elements +plugins/modules/avi_dnspolicy.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_errorpagebody.py validate-modules:doc-missing-type +plugins/modules/avi_errorpagebody.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_errorpageprofile.py validate-modules:doc-missing-type +plugins/modules/avi_errorpageprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_errorpageprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_gslb.py validate-modules:doc-missing-type +plugins/modules/avi_gslb.py validate-modules:parameter-list-no-elements +plugins/modules/avi_gslb.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_gslbgeodbprofile.py validate-modules:doc-missing-type +plugins/modules/avi_gslbgeodbprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_gslbgeodbprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_gslbservice.py validate-modules:doc-missing-type +plugins/modules/avi_gslbservice.py validate-modules:parameter-list-no-elements +plugins/modules/avi_gslbservice.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_gslbservice_patch_member.py pylint:use-a-generator +plugins/modules/avi_gslbservice_patch_member.py validate-modules:doc-missing-type +plugins/modules/avi_gslbservice_patch_member.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_hardwaresecuritymodulegroup.py validate-modules:doc-missing-type +plugins/modules/avi_hardwaresecuritymodulegroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_healthmonitor.py validate-modules:doc-missing-type +plugins/modules/avi_healthmonitor.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_httppolicyset.py validate-modules:doc-missing-type +plugins/modules/avi_httppolicyset.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_ipaddrgroup.py validate-modules:doc-missing-type +plugins/modules/avi_ipaddrgroup.py validate-modules:parameter-list-no-elements +plugins/modules/avi_ipaddrgroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_ipamdnsproviderprofile.py validate-modules:doc-missing-type +plugins/modules/avi_ipamdnsproviderprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_l4policyset.py validate-modules:doc-missing-type +plugins/modules/avi_l4policyset.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_microservicegroup.py validate-modules:doc-missing-type +plugins/modules/avi_microservicegroup.py validate-modules:parameter-list-no-elements +plugins/modules/avi_microservicegroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_network.py validate-modules:doc-missing-type +plugins/modules/avi_network.py validate-modules:parameter-list-no-elements +plugins/modules/avi_network.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_networkprofile.py validate-modules:doc-missing-type +plugins/modules/avi_networkprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_networksecuritypolicy.py validate-modules:doc-missing-type +plugins/modules/avi_networksecuritypolicy.py validate-modules:parameter-list-no-elements +plugins/modules/avi_networksecuritypolicy.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_pkiprofile.py validate-modules:doc-missing-type +plugins/modules/avi_pkiprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_pkiprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_pool.py validate-modules:doc-missing-type +plugins/modules/avi_pool.py validate-modules:parameter-list-no-elements +plugins/modules/avi_pool.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_poolgroup.py validate-modules:doc-missing-type +plugins/modules/avi_poolgroup.py validate-modules:parameter-list-no-elements +plugins/modules/avi_poolgroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_poolgroupdeploymentpolicy.py validate-modules:doc-missing-type +plugins/modules/avi_poolgroupdeploymentpolicy.py validate-modules:parameter-list-no-elements +plugins/modules/avi_poolgroupdeploymentpolicy.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_prioritylabels.py validate-modules:doc-missing-type +plugins/modules/avi_prioritylabels.py validate-modules:parameter-list-no-elements +plugins/modules/avi_prioritylabels.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_role.py validate-modules:doc-missing-type +plugins/modules/avi_role.py validate-modules:parameter-list-no-elements +plugins/modules/avi_role.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_scheduler.py validate-modules:doc-missing-type +plugins/modules/avi_scheduler.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_seproperties.py validate-modules:doc-missing-type +plugins/modules/avi_seproperties.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_serverautoscalepolicy.py validate-modules:doc-missing-type +plugins/modules/avi_serverautoscalepolicy.py validate-modules:parameter-list-no-elements +plugins/modules/avi_serverautoscalepolicy.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_serviceengine.py validate-modules:doc-missing-type +plugins/modules/avi_serviceengine.py validate-modules:parameter-list-no-elements +plugins/modules/avi_serviceengine.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_serviceenginegroup.py validate-modules:doc-missing-type +plugins/modules/avi_serviceenginegroup.py validate-modules:parameter-list-no-elements +plugins/modules/avi_serviceenginegroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_snmptrapprofile.py validate-modules:doc-missing-type +plugins/modules/avi_snmptrapprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_snmptrapprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_sslkeyandcertificate.py validate-modules:doc-missing-type +plugins/modules/avi_sslkeyandcertificate.py validate-modules:parameter-list-no-elements +plugins/modules/avi_sslkeyandcertificate.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_sslprofile.py validate-modules:doc-missing-type +plugins/modules/avi_sslprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_sslprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_stringgroup.py validate-modules:doc-missing-type +plugins/modules/avi_stringgroup.py validate-modules:parameter-list-no-elements +plugins/modules/avi_stringgroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_systemconfiguration.py validate-modules:doc-missing-type +plugins/modules/avi_systemconfiguration.py validate-modules:parameter-list-no-elements +plugins/modules/avi_systemconfiguration.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_tenant.py validate-modules:doc-missing-type +plugins/modules/avi_tenant.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_trafficcloneprofile.py validate-modules:doc-missing-type +plugins/modules/avi_trafficcloneprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_trafficcloneprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_user.py validate-modules:doc-missing-type +plugins/modules/avi_user.py validate-modules:parameter-list-no-elements +plugins/modules/avi_user.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_useraccount.py validate-modules:doc-missing-type +plugins/modules/avi_useraccount.py validate-modules:doc-required-mismatch +plugins/modules/avi_useraccount.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_useraccountprofile.py validate-modules:doc-missing-type +plugins/modules/avi_useraccountprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_virtualservice.py validate-modules:doc-missing-type +plugins/modules/avi_virtualservice.py validate-modules:parameter-list-no-elements +plugins/modules/avi_virtualservice.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_vrfcontext.py validate-modules:doc-missing-type +plugins/modules/avi_vrfcontext.py validate-modules:parameter-list-no-elements +plugins/modules/avi_vrfcontext.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_vsdatascriptset.py validate-modules:doc-missing-type +plugins/modules/avi_vsdatascriptset.py validate-modules:parameter-list-no-elements +plugins/modules/avi_vsdatascriptset.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_vsvip.py validate-modules:doc-missing-type +plugins/modules/avi_vsvip.py validate-modules:parameter-list-no-elements +plugins/modules/avi_vsvip.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_webhook.py validate-modules:doc-missing-type +plugins/modules/avi_webhook.py validate-modules:parameter-type-not-in-doc +plugins/modules/bcf_switch.py validate-modules:doc-missing-type +plugins/modules/bcf_switch.py validate-modules:parameter-type-not-in-doc +plugins/modules/bigmon_chain.py validate-modules:doc-missing-type +plugins/modules/bigmon_chain.py validate-modules:parameter-type-not-in-doc +plugins/modules/bigmon_policy.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/bigmon_policy.py validate-modules:doc-default-does-not-match-spec +plugins/modules/bigmon_policy.py validate-modules:doc-missing-type +plugins/modules/bigmon_policy.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_aaa_server_host.py validate-modules:doc-missing-type +plugins/modules/ce_aaa_server_host.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_acl.py validate-modules:doc-missing-type +plugins/modules/ce_acl.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_acl_advance.py validate-modules:doc-missing-type +plugins/modules/ce_acl_advance.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_acl_interface.py validate-modules:doc-missing-type +plugins/modules/ce_acl_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bfd_global.py validate-modules:doc-missing-type +plugins/modules/ce_bfd_global.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bfd_session.py validate-modules:doc-missing-type +plugins/modules/ce_bfd_session.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bfd_view.py validate-modules:doc-missing-type +plugins/modules/ce_bfd_view.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bgp.py validate-modules:doc-missing-type +plugins/modules/ce_bgp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bgp_af.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_bgp_af.py validate-modules:doc-missing-type +plugins/modules/ce_bgp_af.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bgp_neighbor.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_bgp_neighbor.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_bgp_neighbor.py validate-modules:doc-missing-type +plugins/modules/ce_bgp_neighbor.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bgp_neighbor.py validate-modules:undocumented-parameter +plugins/modules/ce_bgp_neighbor_af.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_bgp_neighbor_af.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_bgp_neighbor_af.py validate-modules:doc-missing-type +plugins/modules/ce_bgp_neighbor_af.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bgp_neighbor_af.py validate-modules:undocumented-parameter +plugins/modules/ce_command.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_command.py validate-modules:doc-missing-type +plugins/modules/ce_command.py validate-modules:parameter-list-no-elements +plugins/modules/ce_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_config.py validate-modules:doc-missing-type +plugins/modules/ce_config.py validate-modules:parameter-list-no-elements +plugins/modules/ce_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_config.py validate-modules:undocumented-parameter +plugins/modules/ce_dldp.py validate-modules:nonexistent-parameter-documented +plugins/modules/ce_dldp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_dldp.py validate-modules:undocumented-parameter +plugins/modules/ce_dldp_interface.py validate-modules:doc-missing-type +plugins/modules/ce_dldp_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_eth_trunk.py validate-modules:doc-missing-type +plugins/modules/ce_eth_trunk.py validate-modules:parameter-list-no-elements +plugins/modules/ce_eth_trunk.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_evpn_bd_vni.py validate-modules:doc-missing-type +plugins/modules/ce_evpn_bd_vni.py validate-modules:doc-required-mismatch +plugins/modules/ce_evpn_bd_vni.py validate-modules:parameter-list-no-elements +plugins/modules/ce_evpn_bd_vni.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_evpn_bgp.py validate-modules:doc-missing-type +plugins/modules/ce_evpn_bgp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_evpn_bgp_rr.py validate-modules:doc-missing-type +plugins/modules/ce_evpn_bgp_rr.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_evpn_global.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_facts.py validate-modules:parameter-list-no-elements +plugins/modules/ce_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_file_copy.py validate-modules:doc-missing-type +plugins/modules/ce_info_center_debug.py validate-modules:doc-missing-type +plugins/modules/ce_info_center_debug.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_info_center_global.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_info_center_global.py validate-modules:doc-missing-type +plugins/modules/ce_info_center_global.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_info_center_log.py validate-modules:doc-missing-type +plugins/modules/ce_info_center_log.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_info_center_trap.py validate-modules:doc-missing-type +plugins/modules/ce_info_center_trap.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_interface.py validate-modules:doc-missing-type +plugins/modules/ce_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_interface_ospf.py validate-modules:doc-missing-type +plugins/modules/ce_interface_ospf.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_ip_interface.py validate-modules:doc-missing-type +plugins/modules/ce_ip_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_is_is_view.py validate-modules:doc-required-mismatch +plugins/modules/ce_link_status.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_mlag_config.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_mlag_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_mlag_interface.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_mlag_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_mtu.py validate-modules:doc-missing-type +plugins/modules/ce_mtu.py validate-modules:doc-required-mismatch +plugins/modules/ce_mtu.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_netconf.py validate-modules:doc-missing-type +plugins/modules/ce_netstream_aging.py validate-modules:doc-missing-type +plugins/modules/ce_netstream_aging.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_netstream_export.py validate-modules:doc-missing-type +plugins/modules/ce_netstream_export.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_netstream_global.py validate-modules:doc-missing-type +plugins/modules/ce_netstream_global.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_netstream_template.py validate-modules:doc-missing-type +plugins/modules/ce_netstream_template.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_ntp.py validate-modules:doc-missing-type +plugins/modules/ce_ntp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_ntp_auth.py validate-modules:doc-missing-type +plugins/modules/ce_ntp_auth.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_ospf.py validate-modules:doc-missing-type +plugins/modules/ce_ospf.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_ospf_vrf.py validate-modules:doc-missing-type +plugins/modules/ce_ospf_vrf.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_rollback.py validate-modules:doc-missing-type +plugins/modules/ce_rollback.py validate-modules:doc-required-mismatch +plugins/modules/ce_rollback.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_sflow.py validate-modules:doc-missing-type +plugins/modules/ce_sflow.py validate-modules:parameter-list-no-elements +plugins/modules/ce_sflow.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_community.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_community.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_contact.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_contact.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_location.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_location.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_target_host.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_snmp_target_host.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_snmp_target_host.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_target_host.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_target_host.py validate-modules:undocumented-parameter +plugins/modules/ce_snmp_traps.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_snmp_traps.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_snmp_traps.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_traps.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_traps.py validate-modules:undocumented-parameter +plugins/modules/ce_snmp_user.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_snmp_user.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_snmp_user.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_user.py validate-modules:mutually_exclusive-unknown +plugins/modules/ce_snmp_user.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_user.py validate-modules:undocumented-parameter +plugins/modules/ce_startup.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_startup.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_static_route.py validate-modules:doc-missing-type +plugins/modules/ce_static_route.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_static_route_bfd.py validate-modules:doc-required-mismatch +plugins/modules/ce_static_route_bfd.py validate-modules:parameter-list-no-elements +plugins/modules/ce_stp.py validate-modules:doc-missing-type +plugins/modules/ce_stp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_switchport.py validate-modules:doc-missing-type +plugins/modules/ce_switchport.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vlan.py validate-modules:doc-missing-type +plugins/modules/ce_vlan.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vrf.py validate-modules:doc-missing-type +plugins/modules/ce_vrf.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vrf_af.py validate-modules:doc-missing-type +plugins/modules/ce_vrf_af.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vrf_interface.py validate-modules:doc-missing-type +plugins/modules/ce_vrf_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vrrp.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_vrrp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vxlan_arp.py validate-modules:doc-missing-type +plugins/modules/ce_vxlan_arp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vxlan_gateway.py validate-modules:doc-missing-type +plugins/modules/ce_vxlan_gateway.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vxlan_global.py validate-modules:doc-missing-type +plugins/modules/ce_vxlan_global.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vxlan_tunnel.py validate-modules:doc-missing-type +plugins/modules/ce_vxlan_tunnel.py validate-modules:parameter-list-no-elements +plugins/modules/ce_vxlan_tunnel.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vxlan_vap.py validate-modules:doc-missing-type +plugins/modules/ce_vxlan_vap.py validate-modules:parameter-type-not-in-doc +plugins/modules/cv_server_provision.py validate-modules:doc-missing-type +plugins/modules/cv_server_provision.py validate-modules:doc-required-mismatch +plugins/modules/cv_server_provision.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/cnos_backup.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_backup.py validate-modules:doc-missing-type +plugins/modules/cnos_backup.py validate-modules:doc-required-mismatch +plugins/modules/cnos_backup.py validate-modules:nonexistent-parameter-documented +plugins/modules/cnos_backup.py validate-modules:undocumented-parameter +plugins/modules/cnos_backup.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_banner.py validate-modules:doc-missing-type +plugins/modules/cnos_bgp.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_bgp.py validate-modules:doc-missing-type +plugins/modules/cnos_bgp.py validate-modules:doc-required-mismatch +plugins/modules/cnos_bgp.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_command.py validate-modules:doc-missing-type +plugins/modules/cnos_command.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_conditional_command.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_conditional_command.py validate-modules:doc-missing-type +plugins/modules/cnos_conditional_command.py validate-modules:doc-required-mismatch +plugins/modules/cnos_conditional_command.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_conditional_template.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_conditional_template.py validate-modules:doc-missing-type +plugins/modules/cnos_conditional_template.py validate-modules:doc-required-mismatch +plugins/modules/cnos_conditional_template.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_config.py validate-modules:doc-missing-type +plugins/modules/cnos_config.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_config.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_factory.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_factory.py validate-modules:doc-required-mismatch +plugins/modules/cnos_factory.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_facts.py validate-modules:nonexistent-parameter-documented +plugins/modules/cnos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_facts.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_image.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_image.py validate-modules:doc-missing-type +plugins/modules/cnos_image.py validate-modules:doc-required-mismatch +plugins/modules/cnos_image.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_interface.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_interface.py validate-modules:doc-missing-type +plugins/modules/cnos_interface.py validate-modules:doc-required-mismatch +plugins/modules/cnos_interface.py validate-modules:missing-suboption-docs +plugins/modules/cnos_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_interface.py validate-modules:undocumented-parameter +plugins/modules/cnos_l2_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_l2_interface.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_l2_interface.py validate-modules:doc-missing-type +plugins/modules/cnos_l2_interface.py validate-modules:doc-required-mismatch +plugins/modules/cnos_l2_interface.py validate-modules:missing-suboption-docs +plugins/modules/cnos_l2_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_l2_interface.py validate-modules:undocumented-parameter +plugins/modules/cnos_l3_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_l3_interface.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_l3_interface.py validate-modules:doc-missing-type +plugins/modules/cnos_l3_interface.py validate-modules:doc-required-mismatch +plugins/modules/cnos_l3_interface.py validate-modules:missing-suboption-docs +plugins/modules/cnos_l3_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_l3_interface.py validate-modules:undocumented-parameter +plugins/modules/cnos_linkagg.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_linkagg.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_linkagg.py validate-modules:doc-missing-type +plugins/modules/cnos_linkagg.py validate-modules:doc-required-mismatch +plugins/modules/cnos_linkagg.py validate-modules:missing-suboption-docs +plugins/modules/cnos_linkagg.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_linkagg.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_linkagg.py validate-modules:undocumented-parameter +plugins/modules/cnos_lldp.py validate-modules:doc-missing-type +plugins/modules/cnos_logging.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_logging.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_logging.py validate-modules:doc-missing-type +plugins/modules/cnos_logging.py validate-modules:missing-suboption-docs +plugins/modules/cnos_logging.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_logging.py validate-modules:undocumented-parameter +plugins/modules/cnos_reload.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_reload.py validate-modules:doc-required-mismatch +plugins/modules/cnos_reload.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_rollback.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_rollback.py validate-modules:doc-missing-type +plugins/modules/cnos_rollback.py validate-modules:doc-required-mismatch +plugins/modules/cnos_rollback.py validate-modules:nonexistent-parameter-documented +plugins/modules/cnos_rollback.py validate-modules:undocumented-parameter +plugins/modules/cnos_rollback.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_save.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_save.py validate-modules:doc-required-mismatch +plugins/modules/cnos_save.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_showrun.py validate-modules:doc-required-mismatch +plugins/modules/cnos_showrun.py validate-modules:nonexistent-parameter-documented +plugins/modules/cnos_showrun.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_static_route.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_static_route.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_static_route.py validate-modules:doc-missing-type +plugins/modules/cnos_static_route.py validate-modules:doc-required-mismatch +plugins/modules/cnos_static_route.py validate-modules:missing-suboption-docs +plugins/modules/cnos_static_route.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_static_route.py validate-modules:undocumented-parameter +plugins/modules/cnos_system.py validate-modules:doc-missing-type +plugins/modules/cnos_system.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_system.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_template.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_template.py validate-modules:doc-missing-type +plugins/modules/cnos_template.py validate-modules:doc-required-mismatch +plugins/modules/cnos_template.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_user.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_user.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_user.py validate-modules:doc-missing-type +plugins/modules/cnos_user.py validate-modules:missing-suboption-docs +plugins/modules/cnos_user.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_user.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_user.py validate-modules:undocumented-parameter +plugins/modules/cnos_vlag.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_vlag.py validate-modules:doc-missing-type +plugins/modules/cnos_vlag.py validate-modules:doc-required-mismatch +plugins/modules/cnos_vlag.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_vlan.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_vlan.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_vlan.py validate-modules:doc-missing-type +plugins/modules/cnos_vlan.py validate-modules:doc-required-mismatch +plugins/modules/cnos_vlan.py validate-modules:missing-suboption-docs +plugins/modules/cnos_vlan.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_vlan.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_vlan.py validate-modules:undocumented-parameter +plugins/modules/cnos_vrf.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_vrf.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_vrf.py validate-modules:doc-missing-type +plugins/modules/cnos_vrf.py validate-modules:doc-required-mismatch +plugins/modules/cnos_vrf.py validate-modules:missing-suboption-docs +plugins/modules/cnos_vrf.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_vrf.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_vrf.py validate-modules:undocumented-parameter +plugins/modules/nclu.py validate-modules:parameter-list-no-elements +plugins/modules/nclu.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeos_command.py validate-modules:doc-missing-type +plugins/modules/edgeos_command.py validate-modules:parameter-list-no-elements +plugins/modules/edgeos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeos_config.py validate-modules:doc-missing-type +plugins/modules/edgeos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/edgeos_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeswitch_facts.py validate-modules:parameter-list-no-elements +plugins/modules/edgeswitch_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeswitch_vlan.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/edgeswitch_vlan.py validate-modules:doc-elements-mismatch +plugins/modules/edgeswitch_vlan.py validate-modules:doc-missing-type +plugins/modules/edgeswitch_vlan.py validate-modules:doc-required-mismatch +plugins/modules/edgeswitch_vlan.py validate-modules:missing-suboption-docs +plugins/modules/edgeswitch_vlan.py validate-modules:parameter-list-no-elements +plugins/modules/edgeswitch_vlan.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeswitch_vlan.py validate-modules:undocumented-parameter +plugins/modules/enos_command.py validate-modules:doc-missing-type +plugins/modules/enos_command.py validate-modules:nonexistent-parameter-documented +plugins/modules/enos_command.py validate-modules:parameter-list-no-elements +plugins/modules/enos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/enos_config.py validate-modules:doc-missing-type +plugins/modules/enos_config.py validate-modules:nonexistent-parameter-documented +plugins/modules/enos_config.py validate-modules:parameter-list-no-elements +plugins/modules/enos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/enos_facts.py validate-modules:nonexistent-parameter-documented +plugins/modules/enos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/enos_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/enos_facts.py yamllint:unparsable-with-libyaml +plugins/modules/eric_eccli_command.py validate-modules:parameter-list-no-elements +plugins/modules/exos_command.py validate-modules:doc-missing-type +plugins/modules/exos_command.py validate-modules:parameter-list-no-elements +plugins/modules/exos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/exos_config.py validate-modules:doc-missing-type +plugins/modules/exos_config.py validate-modules:parameter-list-no-elements +plugins/modules/exos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/exos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/exos_l2_interfaces.py validate-modules:parameter-list-no-elements +plugins/modules/icx_command.py validate-modules:parameter-list-no-elements +plugins/modules/icx_config.py validate-modules:parameter-list-no-elements +plugins/modules/icx_facts.py validate-modules:parameter-list-no-elements +plugins/modules/icx_interface.py validate-modules:doc-required-mismatch +plugins/modules/icx_l3_interface.py validate-modules:doc-required-mismatch +plugins/modules/icx_linkagg.py validate-modules:doc-elements-mismatch +plugins/modules/icx_linkagg.py validate-modules:doc-required-mismatch +plugins/modules/icx_linkagg.py validate-modules:parameter-list-no-elements +plugins/modules/icx_lldp.py validate-modules:doc-elements-mismatch +plugins/modules/icx_lldp.py validate-modules:parameter-list-no-elements +plugins/modules/icx_logging.py validate-modules:doc-elements-mismatch +plugins/modules/icx_logging.py validate-modules:parameter-list-no-elements +plugins/modules/icx_static_route.py validate-modules:doc-required-mismatch +plugins/modules/icx_system.py validate-modules:doc-elements-mismatch +plugins/modules/icx_system.py validate-modules:parameter-list-no-elements +plugins/modules/icx_user.py validate-modules:doc-required-mismatch +plugins/modules/icx_vlan.py validate-modules:doc-elements-mismatch +plugins/modules/icx_vlan.py validate-modules:doc-required-mismatch +plugins/modules/icx_vlan.py validate-modules:parameter-list-no-elements +plugins/modules/dladm_etherstub.py validate-modules:doc-missing-type +plugins/modules/dladm_iptun.py validate-modules:doc-missing-type +plugins/modules/dladm_iptun.py validate-modules:parameter-type-not-in-doc +plugins/modules/dladm_linkprop.py validate-modules:doc-missing-type +plugins/modules/dladm_linkprop.py validate-modules:no-default-for-required-parameter +plugins/modules/dladm_linkprop.py validate-modules:parameter-type-not-in-doc +plugins/modules/dladm_vlan.py validate-modules:doc-default-does-not-match-spec +plugins/modules/dladm_vlan.py validate-modules:doc-missing-type +plugins/modules/dladm_vlan.py validate-modules:doc-required-mismatch +plugins/modules/dladm_vlan.py validate-modules:parameter-type-not-in-doc +plugins/modules/dladm_vnic.py validate-modules:doc-default-does-not-match-spec +plugins/modules/flowadm.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/flowadm.py validate-modules:doc-missing-type +plugins/modules/ipadm_addr.py validate-modules:doc-missing-type +plugins/modules/ipadm_addr.py validate-modules:parameter-type-not-in-doc +plugins/modules/ipadm_addrprop.py validate-modules:doc-missing-type +plugins/modules/ipadm_addrprop.py validate-modules:no-default-for-required-parameter +plugins/modules/ipadm_if.py validate-modules:doc-missing-type +plugins/modules/ipadm_ifprop.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ipadm_ifprop.py validate-modules:doc-missing-type +plugins/modules/ipadm_ifprop.py validate-modules:no-default-for-required-parameter +plugins/modules/ipadm_prop.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ipadm_prop.py validate-modules:doc-missing-type +plugins/modules/ig_config.py validate-modules:doc-missing-type +plugins/modules/ig_config.py validate-modules:doc-required-mismatch +plugins/modules/ig_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/ig_config.py validate-modules:return-syntax-error +plugins/modules/ig_unit_information.py validate-modules:doc-required-mismatch +plugins/modules/ig_unit_information.py validate-modules:parameter-type-not-in-doc +plugins/modules/ironware_command.py validate-modules:doc-missing-type +plugins/modules/ironware_command.py validate-modules:nonexistent-parameter-documented +plugins/modules/ironware_command.py validate-modules:parameter-list-no-elements +plugins/modules/ironware_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/ironware_config.py validate-modules:doc-missing-type +plugins/modules/ironware_config.py validate-modules:nonexistent-parameter-documented +plugins/modules/ironware_config.py validate-modules:parameter-list-no-elements +plugins/modules/ironware_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/ironware_facts.py validate-modules:nonexistent-parameter-documented +plugins/modules/ironware_facts.py validate-modules:parameter-list-no-elements +plugins/modules/ironware_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/iap_start_workflow.py validate-modules:doc-required-mismatch +plugins/modules/iap_token.py validate-modules:parameter-type-not-in-doc +plugins/modules/netact_cm_command.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/netact_cm_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_cs_action.py pylint:condition-evals-to-constant +plugins/modules/netscaler_cs_action.py validate-modules:nonexistent-parameter-documented +plugins/modules/netscaler_cs_action.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_cs_policy.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_cs_vserver.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/netscaler_cs_vserver.py validate-modules:nonexistent-parameter-documented +plugins/modules/netscaler_cs_vserver.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_cs_vserver.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_cs_vserver.py validate-modules:undocumented-parameter +plugins/modules/netscaler_gslb_service.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_gslb_service.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_gslb_site.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_gslb_vserver.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_gslb_vserver.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_gslb_vserver.py validate-modules:undocumented-parameter +plugins/modules/netscaler_lb_monitor.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/netscaler_lb_monitor.py validate-modules:nonexistent-parameter-documented +plugins/modules/netscaler_lb_monitor.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_lb_monitor.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_lb_vserver.py validate-modules:nonexistent-parameter-documented +plugins/modules/netscaler_lb_vserver.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_lb_vserver.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_nitro_request.py pylint:ansible-bad-function +plugins/modules/netscaler_nitro_request.py validate-modules:doc-missing-type +plugins/modules/netscaler_nitro_request.py validate-modules:doc-required-mismatch +plugins/modules/netscaler_nitro_request.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_nitro_request.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_save_config.py validate-modules:doc-missing-type +plugins/modules/netscaler_save_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_server.py validate-modules:doc-default-does-not-match-spec +plugins/modules/netscaler_server.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_service.py validate-modules:nonexistent-parameter-documented +plugins/modules/netscaler_service.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_service.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_servicegroup.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_servicegroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_ssl_certkey.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_access_list.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_access_list.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_access_list_ip.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_access_list_ip.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_admin_service.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_admin_session_timeout.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_admin_syslog.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_connection_stats_settings.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_cpu_class.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_cpu_class.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_cpu_mgmt_class.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_dhcp_filter.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_dscp_map.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_dscp_map.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_dscp_map_pri_map.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_fabric_local.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_fabric_local.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_igmp_snooping.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_igmp_snooping.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_ipv6security_raguard.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_ipv6security_raguard_port.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_ipv6security_raguard_vlan.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_log_audit_exception.py validate-modules:doc-required-mismatch +plugins/modules/pn_log_audit_exception.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_port_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_port_config.py validate-modules:required_one_of-unknown +plugins/modules/pn_port_cos_bw.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_port_cos_rate_setting.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_prefix_list.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_prefix_list_network.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_role.py validate-modules:doc-required-mismatch +plugins/modules/pn_role.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_snmp_community.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_snmp_community.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_snmp_trap_sink.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_snmp_vacm.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_stp.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_stp_port.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_switch_setup.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_user.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vflow_table_profile.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_bgp.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_bgp.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_vrouter_bgp_network.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_interface_ip.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_loopback_interface.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_ospf.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_ospf6.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_packet_relay.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_pim_config.py validate-modules:doc-required-mismatch +plugins/modules/pn_vrouter_pim_config.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vtep.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/nos_command.py validate-modules:doc-missing-type +plugins/modules/nos_command.py validate-modules:parameter-list-no-elements +plugins/modules/nos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/nos_config.py validate-modules:doc-missing-type +plugins/modules/nos_config.py validate-modules:parameter-list-no-elements +plugins/modules/nos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/nos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/nos_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/nuage_vspk.py validate-modules:doc-required-mismatch +plugins/modules/nuage_vspk.py validate-modules:missing-suboption-docs +plugins/modules/nuage_vspk.py validate-modules:parameter-list-no-elements +plugins/modules/nuage_vspk.py validate-modules:parameter-type-not-in-doc +plugins/modules/nuage_vspk.py validate-modules:undocumented-parameter +plugins/modules/opx_cps.py validate-modules:doc-required-mismatch +plugins/modules/opx_cps.py validate-modules:parameter-type-not-in-doc +plugins/modules/ordnance_config.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ordnance_config.py validate-modules:doc-missing-type +plugins/modules/ordnance_config.py validate-modules:doc-required-mismatch +plugins/modules/ordnance_config.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/ordnance_config.py validate-modules:parameter-list-no-elements +plugins/modules/ordnance_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/ordnance_config.py validate-modules:undocumented-parameter +plugins/modules/ordnance_config.py yamllint:unparsable-with-libyaml +plugins/modules/ordnance_facts.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ordnance_facts.py validate-modules:doc-missing-type +plugins/modules/ordnance_facts.py validate-modules:doc-required-mismatch +plugins/modules/ordnance_facts.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/ordnance_facts.py validate-modules:parameter-list-no-elements +plugins/modules/ordnance_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/ordnance_facts.py validate-modules:undocumented-parameter +plugins/modules/ordnance_facts.py yamllint:unparsable-with-libyaml +plugins/modules/vdirect_commit.py validate-modules:doc-missing-type +plugins/modules/vdirect_commit.py validate-modules:parameter-list-no-elements +plugins/modules/vdirect_commit.py validate-modules:parameter-type-not-in-doc +plugins/modules/vdirect_file.py validate-modules:doc-missing-type +plugins/modules/vdirect_file.py validate-modules:parameter-type-not-in-doc +plugins/modules/vdirect_runnable.py validate-modules:doc-missing-type +plugins/modules/vdirect_runnable.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_command.py validate-modules:doc-missing-type +plugins/modules/slxos_command.py validate-modules:parameter-list-no-elements +plugins/modules/slxos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_config.py validate-modules:doc-missing-type +plugins/modules/slxos_config.py validate-modules:parameter-list-no-elements +plugins/modules/slxos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/slxos_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/slxos_interface.py validate-modules:doc-elements-mismatch +plugins/modules/slxos_interface.py validate-modules:doc-missing-type +plugins/modules/slxos_interface.py validate-modules:doc-required-mismatch +plugins/modules/slxos_interface.py validate-modules:missing-suboption-docs +plugins/modules/slxos_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_interface.py validate-modules:undocumented-parameter +plugins/modules/slxos_l2_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/slxos_l2_interface.py validate-modules:doc-elements-mismatch +plugins/modules/slxos_l2_interface.py validate-modules:doc-missing-type +plugins/modules/slxos_l2_interface.py validate-modules:doc-required-mismatch +plugins/modules/slxos_l2_interface.py validate-modules:missing-suboption-docs +plugins/modules/slxos_l2_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_l2_interface.py validate-modules:undocumented-parameter +plugins/modules/slxos_l3_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/slxos_l3_interface.py validate-modules:doc-elements-mismatch +plugins/modules/slxos_l3_interface.py validate-modules:doc-missing-type +plugins/modules/slxos_l3_interface.py validate-modules:doc-required-mismatch +plugins/modules/slxos_l3_interface.py validate-modules:missing-suboption-docs +plugins/modules/slxos_l3_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_l3_interface.py validate-modules:undocumented-parameter +plugins/modules/slxos_linkagg.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/slxos_linkagg.py validate-modules:doc-elements-mismatch +plugins/modules/slxos_linkagg.py validate-modules:doc-missing-type +plugins/modules/slxos_linkagg.py validate-modules:doc-required-mismatch +plugins/modules/slxos_linkagg.py validate-modules:missing-suboption-docs +plugins/modules/slxos_linkagg.py validate-modules:parameter-list-no-elements +plugins/modules/slxos_linkagg.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_linkagg.py validate-modules:undocumented-parameter +plugins/modules/slxos_lldp.py validate-modules:doc-missing-type +plugins/modules/slxos_vlan.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/slxos_vlan.py validate-modules:doc-elements-mismatch +plugins/modules/slxos_vlan.py validate-modules:doc-missing-type +plugins/modules/slxos_vlan.py validate-modules:doc-required-mismatch +plugins/modules/slxos_vlan.py validate-modules:missing-suboption-docs +plugins/modules/slxos_vlan.py validate-modules:parameter-list-no-elements +plugins/modules/slxos_vlan.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_vlan.py validate-modules:undocumented-parameter +plugins/modules/sros_command.py validate-modules:collection-deprecated-version +plugins/modules/sros_command.py validate-modules:doc-missing-type +plugins/modules/sros_command.py validate-modules:parameter-list-no-elements +plugins/modules/sros_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/sros_config.py validate-modules:collection-deprecated-version +plugins/modules/sros_config.py validate-modules:doc-missing-type +plugins/modules/sros_config.py validate-modules:nonexistent-parameter-documented +plugins/modules/sros_config.py validate-modules:parameter-list-no-elements +plugins/modules/sros_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/sros_rollback.py validate-modules:collection-deprecated-version +plugins/modules/sros_rollback.py validate-modules:doc-missing-type +plugins/modules/sros_rollback.py validate-modules:parameter-type-not-in-doc +plugins/modules/voss_command.py validate-modules:doc-missing-type +plugins/modules/voss_command.py validate-modules:parameter-list-no-elements +plugins/modules/voss_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/voss_config.py validate-modules:doc-missing-type +plugins/modules/voss_config.py validate-modules:parameter-list-no-elements +plugins/modules/voss_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/voss_facts.py validate-modules:parameter-list-no-elements +plugins/modules/voss_facts.py validate-modules:parameter-type-not-in-doc +tests/unit/plugins/modules/test_edgeswitch_facts.py pylint:use-maxsplit-arg +tests/unit/plugins/modules/test_edgeswitch_vlan.py pylint:use-maxsplit-arg +tests/unit/plugins/modules/test_icx_ping.py pylint:use-maxsplit-arg +tests/unit/plugins/modules/test_ironware_config.py pylint:arguments-renamed +tests/unit/plugins/modules/test_ironware_facts.py pylint:use-maxsplit-arg +tests/unit/plugins/modules/test_netscaler_cs_action.py pylint:invalid-class-object +tests/unit/plugins/modules/test_netscaler_cs_vserver.py pylint:invalid-class-object +tests/unit/plugins/modules/test_netscaler_lb_vserver.py pylint:invalid-class-object +tests/unit/plugins/modules/test_netscaler_server.py pylint:invalid-class-object +tests/unit/plugins/modules/test_netscaler_service.py pylint:invalid-class-object +tests/unit/plugins/modules/test_netscaler_servicegroup.py pylint:invalid-class-object +tests/unit/plugins/modules/test_netscaler_ssl_certkey.py pylint:invalid-class-object +tests/unit/plugins/modules/test_nos_facts.py pylint:use-maxsplit-arg +tests/unit/plugins/modules/test_slxos_facts.py pylint:use-maxsplit-arg +tests/unit/plugins/modules/test_voss_facts.py pylint:use-maxsplit-arg diff --git a/ansible_collections/community/network/tests/sanity/ignore-2.13.txt b/ansible_collections/community/network/tests/sanity/ignore-2.13.txt new file mode 100644 index 000000000..f82bb18bd --- /dev/null +++ b/ansible_collections/community/network/tests/sanity/ignore-2.13.txt @@ -0,0 +1,819 @@ +plugins/action/aireos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/aruba.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/ce.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/ce_template.py action-plugin-docs # undocumented action plugin to fix, existed before sanity test was added +plugins/action/cnos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/enos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/exos.py action-plugin-docs # undocumented action plugin to fix +plugins/action/ironware.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/slxos.py action-plugin-docs # undocumented action plugin to fix +plugins/action/sros.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/voss.py action-plugin-docs # undocumented action plugin to fix +plugins/module_utils/network/edgeswitch/edgeswitch_interface.py pylint:duplicate-string-formatting-argument +plugins/modules/a10_server.py validate-modules:parameter-list-no-elements +plugins/modules/a10_server.py validate-modules:parameter-type-not-in-doc +plugins/modules/a10_server_axapi3.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/a10_server_axapi3.py validate-modules:parameter-list-no-elements +plugins/modules/a10_server_axapi3.py validate-modules:parameter-type-not-in-doc +plugins/modules/a10_service_group.py validate-modules:parameter-list-no-elements +plugins/modules/a10_service_group.py validate-modules:parameter-type-not-in-doc +plugins/modules/a10_virtual_server.py validate-modules:doc-default-does-not-match-spec +plugins/modules/a10_virtual_server.py validate-modules:doc-required-mismatch +plugins/modules/a10_virtual_server.py validate-modules:parameter-list-no-elements +plugins/modules/a10_virtual_server.py validate-modules:parameter-type-not-in-doc +plugins/modules/aireos_command.py validate-modules:collection-deprecated-version +plugins/modules/aireos_command.py validate-modules:doc-missing-type +plugins/modules/aireos_command.py validate-modules:parameter-list-no-elements +plugins/modules/aireos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/aireos_config.py validate-modules:collection-deprecated-version +plugins/modules/aireos_config.py validate-modules:doc-missing-type +plugins/modules/aireos_config.py validate-modules:parameter-list-no-elements +plugins/modules/aireos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/apconos_command.py validate-modules:parameter-list-no-elements +plugins/modules/aruba_command.py validate-modules:collection-deprecated-version +plugins/modules/aruba_command.py validate-modules:doc-missing-type +plugins/modules/aruba_command.py validate-modules:parameter-list-no-elements +plugins/modules/aruba_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/aruba_config.py validate-modules:collection-deprecated-version +plugins/modules/aruba_config.py validate-modules:doc-missing-type +plugins/modules/aruba_config.py validate-modules:parameter-list-no-elements +plugins/modules/aruba_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_actiongroupconfig.py validate-modules:doc-missing-type +plugins/modules/avi_actiongroupconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_alertconfig.py validate-modules:doc-missing-type +plugins/modules/avi_alertconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_alertemailconfig.py validate-modules:doc-missing-type +plugins/modules/avi_alertemailconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_alertscriptconfig.py validate-modules:doc-missing-type +plugins/modules/avi_alertscriptconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_alertsyslogconfig.py validate-modules:doc-missing-type +plugins/modules/avi_alertsyslogconfig.py validate-modules:parameter-list-no-elements +plugins/modules/avi_alertsyslogconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_analyticsprofile.py validate-modules:doc-missing-type +plugins/modules/avi_analyticsprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_analyticsprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_api_session.py validate-modules:doc-missing-type +plugins/modules/avi_api_session.py validate-modules:doc-required-mismatch +plugins/modules/avi_api_session.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_api_version.py validate-modules:doc-missing-type +plugins/modules/avi_api_version.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_applicationpersistenceprofile.py validate-modules:doc-missing-type +plugins/modules/avi_applicationpersistenceprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_applicationprofile.py validate-modules:doc-missing-type +plugins/modules/avi_applicationprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_authprofile.py validate-modules:doc-missing-type +plugins/modules/avi_authprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_autoscalelaunchconfig.py validate-modules:doc-missing-type +plugins/modules/avi_autoscalelaunchconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_backup.py validate-modules:doc-missing-type +plugins/modules/avi_backup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_backupconfiguration.py validate-modules:doc-missing-type +plugins/modules/avi_backupconfiguration.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_certificatemanagementprofile.py validate-modules:doc-missing-type +plugins/modules/avi_certificatemanagementprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_certificatemanagementprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_cloud.py validate-modules:doc-missing-type +plugins/modules/avi_cloud.py validate-modules:parameter-list-no-elements +plugins/modules/avi_cloud.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_cloudconnectoruser.py validate-modules:doc-missing-type +plugins/modules/avi_cloudconnectoruser.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_cloudproperties.py validate-modules:doc-missing-type +plugins/modules/avi_cloudproperties.py validate-modules:parameter-list-no-elements +plugins/modules/avi_cloudproperties.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_cluster.py validate-modules:doc-missing-type +plugins/modules/avi_cluster.py validate-modules:parameter-list-no-elements +plugins/modules/avi_cluster.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_clusterclouddetails.py validate-modules:doc-missing-type +plugins/modules/avi_clusterclouddetails.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_controllerproperties.py validate-modules:doc-missing-type +plugins/modules/avi_controllerproperties.py validate-modules:parameter-list-no-elements +plugins/modules/avi_controllerproperties.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_customipamdnsprofile.py validate-modules:doc-missing-type +plugins/modules/avi_customipamdnsprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_customipamdnsprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_dnspolicy.py validate-modules:doc-missing-type +plugins/modules/avi_dnspolicy.py validate-modules:parameter-list-no-elements +plugins/modules/avi_dnspolicy.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_errorpagebody.py validate-modules:doc-missing-type +plugins/modules/avi_errorpagebody.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_errorpageprofile.py validate-modules:doc-missing-type +plugins/modules/avi_errorpageprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_errorpageprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_gslb.py validate-modules:doc-missing-type +plugins/modules/avi_gslb.py validate-modules:parameter-list-no-elements +plugins/modules/avi_gslb.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_gslbgeodbprofile.py validate-modules:doc-missing-type +plugins/modules/avi_gslbgeodbprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_gslbgeodbprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_gslbservice.py validate-modules:doc-missing-type +plugins/modules/avi_gslbservice.py validate-modules:parameter-list-no-elements +plugins/modules/avi_gslbservice.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_gslbservice_patch_member.py pylint:use-a-generator +plugins/modules/avi_gslbservice_patch_member.py validate-modules:doc-missing-type +plugins/modules/avi_gslbservice_patch_member.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_hardwaresecuritymodulegroup.py validate-modules:doc-missing-type +plugins/modules/avi_hardwaresecuritymodulegroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_healthmonitor.py validate-modules:doc-missing-type +plugins/modules/avi_healthmonitor.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_httppolicyset.py validate-modules:doc-missing-type +plugins/modules/avi_httppolicyset.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_ipaddrgroup.py validate-modules:doc-missing-type +plugins/modules/avi_ipaddrgroup.py validate-modules:parameter-list-no-elements +plugins/modules/avi_ipaddrgroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_ipamdnsproviderprofile.py validate-modules:doc-missing-type +plugins/modules/avi_ipamdnsproviderprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_l4policyset.py validate-modules:doc-missing-type +plugins/modules/avi_l4policyset.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_microservicegroup.py validate-modules:doc-missing-type +plugins/modules/avi_microservicegroup.py validate-modules:parameter-list-no-elements +plugins/modules/avi_microservicegroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_network.py validate-modules:doc-missing-type +plugins/modules/avi_network.py validate-modules:parameter-list-no-elements +plugins/modules/avi_network.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_networkprofile.py validate-modules:doc-missing-type +plugins/modules/avi_networkprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_networksecuritypolicy.py validate-modules:doc-missing-type +plugins/modules/avi_networksecuritypolicy.py validate-modules:parameter-list-no-elements +plugins/modules/avi_networksecuritypolicy.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_pkiprofile.py validate-modules:doc-missing-type +plugins/modules/avi_pkiprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_pkiprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_pool.py validate-modules:doc-missing-type +plugins/modules/avi_pool.py validate-modules:parameter-list-no-elements +plugins/modules/avi_pool.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_poolgroup.py validate-modules:doc-missing-type +plugins/modules/avi_poolgroup.py validate-modules:parameter-list-no-elements +plugins/modules/avi_poolgroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_poolgroupdeploymentpolicy.py validate-modules:doc-missing-type +plugins/modules/avi_poolgroupdeploymentpolicy.py validate-modules:parameter-list-no-elements +plugins/modules/avi_poolgroupdeploymentpolicy.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_prioritylabels.py validate-modules:doc-missing-type +plugins/modules/avi_prioritylabels.py validate-modules:parameter-list-no-elements +plugins/modules/avi_prioritylabels.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_role.py validate-modules:doc-missing-type +plugins/modules/avi_role.py validate-modules:parameter-list-no-elements +plugins/modules/avi_role.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_scheduler.py validate-modules:doc-missing-type +plugins/modules/avi_scheduler.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_seproperties.py validate-modules:doc-missing-type +plugins/modules/avi_seproperties.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_serverautoscalepolicy.py validate-modules:doc-missing-type +plugins/modules/avi_serverautoscalepolicy.py validate-modules:parameter-list-no-elements +plugins/modules/avi_serverautoscalepolicy.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_serviceengine.py validate-modules:doc-missing-type +plugins/modules/avi_serviceengine.py validate-modules:parameter-list-no-elements +plugins/modules/avi_serviceengine.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_serviceenginegroup.py validate-modules:doc-missing-type +plugins/modules/avi_serviceenginegroup.py validate-modules:parameter-list-no-elements +plugins/modules/avi_serviceenginegroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_snmptrapprofile.py validate-modules:doc-missing-type +plugins/modules/avi_snmptrapprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_snmptrapprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_sslkeyandcertificate.py validate-modules:doc-missing-type +plugins/modules/avi_sslkeyandcertificate.py validate-modules:parameter-list-no-elements +plugins/modules/avi_sslkeyandcertificate.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_sslprofile.py validate-modules:doc-missing-type +plugins/modules/avi_sslprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_sslprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_stringgroup.py validate-modules:doc-missing-type +plugins/modules/avi_stringgroup.py validate-modules:parameter-list-no-elements +plugins/modules/avi_stringgroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_systemconfiguration.py validate-modules:doc-missing-type +plugins/modules/avi_systemconfiguration.py validate-modules:parameter-list-no-elements +plugins/modules/avi_systemconfiguration.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_tenant.py validate-modules:doc-missing-type +plugins/modules/avi_tenant.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_trafficcloneprofile.py validate-modules:doc-missing-type +plugins/modules/avi_trafficcloneprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_trafficcloneprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_user.py validate-modules:doc-missing-type +plugins/modules/avi_user.py validate-modules:parameter-list-no-elements +plugins/modules/avi_user.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_useraccount.py validate-modules:doc-missing-type +plugins/modules/avi_useraccount.py validate-modules:doc-required-mismatch +plugins/modules/avi_useraccount.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_useraccountprofile.py validate-modules:doc-missing-type +plugins/modules/avi_useraccountprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_virtualservice.py validate-modules:doc-missing-type +plugins/modules/avi_virtualservice.py validate-modules:parameter-list-no-elements +plugins/modules/avi_virtualservice.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_vrfcontext.py validate-modules:doc-missing-type +plugins/modules/avi_vrfcontext.py validate-modules:parameter-list-no-elements +plugins/modules/avi_vrfcontext.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_vsdatascriptset.py validate-modules:doc-missing-type +plugins/modules/avi_vsdatascriptset.py validate-modules:parameter-list-no-elements +plugins/modules/avi_vsdatascriptset.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_vsvip.py validate-modules:doc-missing-type +plugins/modules/avi_vsvip.py validate-modules:parameter-list-no-elements +plugins/modules/avi_vsvip.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_webhook.py validate-modules:doc-missing-type +plugins/modules/avi_webhook.py validate-modules:parameter-type-not-in-doc +plugins/modules/bcf_switch.py validate-modules:doc-missing-type +plugins/modules/bcf_switch.py validate-modules:parameter-type-not-in-doc +plugins/modules/bigmon_chain.py validate-modules:doc-missing-type +plugins/modules/bigmon_chain.py validate-modules:parameter-type-not-in-doc +plugins/modules/bigmon_policy.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/bigmon_policy.py validate-modules:doc-default-does-not-match-spec +plugins/modules/bigmon_policy.py validate-modules:doc-missing-type +plugins/modules/bigmon_policy.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_aaa_server_host.py validate-modules:doc-missing-type +plugins/modules/ce_aaa_server_host.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_acl.py validate-modules:doc-missing-type +plugins/modules/ce_acl.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_acl_advance.py validate-modules:doc-missing-type +plugins/modules/ce_acl_advance.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_acl_interface.py validate-modules:doc-missing-type +plugins/modules/ce_acl_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bfd_global.py validate-modules:doc-missing-type +plugins/modules/ce_bfd_global.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bfd_session.py validate-modules:doc-missing-type +plugins/modules/ce_bfd_session.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bfd_view.py validate-modules:doc-missing-type +plugins/modules/ce_bfd_view.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bgp.py validate-modules:doc-missing-type +plugins/modules/ce_bgp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bgp_af.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_bgp_af.py validate-modules:doc-missing-type +plugins/modules/ce_bgp_af.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bgp_neighbor.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_bgp_neighbor.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_bgp_neighbor.py validate-modules:doc-missing-type +plugins/modules/ce_bgp_neighbor.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bgp_neighbor.py validate-modules:undocumented-parameter +plugins/modules/ce_bgp_neighbor_af.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_bgp_neighbor_af.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_bgp_neighbor_af.py validate-modules:doc-missing-type +plugins/modules/ce_bgp_neighbor_af.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bgp_neighbor_af.py validate-modules:undocumented-parameter +plugins/modules/ce_command.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_command.py validate-modules:doc-missing-type +plugins/modules/ce_command.py validate-modules:parameter-list-no-elements +plugins/modules/ce_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_config.py validate-modules:doc-missing-type +plugins/modules/ce_config.py validate-modules:parameter-list-no-elements +plugins/modules/ce_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_config.py validate-modules:undocumented-parameter +plugins/modules/ce_dldp.py validate-modules:nonexistent-parameter-documented +plugins/modules/ce_dldp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_dldp.py validate-modules:undocumented-parameter +plugins/modules/ce_dldp_interface.py validate-modules:doc-missing-type +plugins/modules/ce_dldp_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_eth_trunk.py validate-modules:doc-missing-type +plugins/modules/ce_eth_trunk.py validate-modules:parameter-list-no-elements +plugins/modules/ce_eth_trunk.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_evpn_bd_vni.py validate-modules:doc-missing-type +plugins/modules/ce_evpn_bd_vni.py validate-modules:doc-required-mismatch +plugins/modules/ce_evpn_bd_vni.py validate-modules:parameter-list-no-elements +plugins/modules/ce_evpn_bd_vni.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_evpn_bgp.py validate-modules:doc-missing-type +plugins/modules/ce_evpn_bgp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_evpn_bgp_rr.py validate-modules:doc-missing-type +plugins/modules/ce_evpn_bgp_rr.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_evpn_global.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_facts.py validate-modules:parameter-list-no-elements +plugins/modules/ce_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_file_copy.py validate-modules:doc-missing-type +plugins/modules/ce_info_center_debug.py validate-modules:doc-missing-type +plugins/modules/ce_info_center_debug.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_info_center_global.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_info_center_global.py validate-modules:doc-missing-type +plugins/modules/ce_info_center_global.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_info_center_log.py validate-modules:doc-missing-type +plugins/modules/ce_info_center_log.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_info_center_trap.py validate-modules:doc-missing-type +plugins/modules/ce_info_center_trap.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_interface.py validate-modules:doc-missing-type +plugins/modules/ce_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_interface_ospf.py validate-modules:doc-missing-type +plugins/modules/ce_interface_ospf.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_ip_interface.py validate-modules:doc-missing-type +plugins/modules/ce_ip_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_is_is_view.py validate-modules:doc-required-mismatch +plugins/modules/ce_link_status.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_mlag_config.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_mlag_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_mlag_interface.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_mlag_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_mtu.py validate-modules:doc-missing-type +plugins/modules/ce_mtu.py validate-modules:doc-required-mismatch +plugins/modules/ce_mtu.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_netconf.py validate-modules:doc-missing-type +plugins/modules/ce_netstream_aging.py validate-modules:doc-missing-type +plugins/modules/ce_netstream_aging.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_netstream_export.py validate-modules:doc-missing-type +plugins/modules/ce_netstream_export.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_netstream_global.py validate-modules:doc-missing-type +plugins/modules/ce_netstream_global.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_netstream_template.py validate-modules:doc-missing-type +plugins/modules/ce_netstream_template.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_ntp.py validate-modules:doc-missing-type +plugins/modules/ce_ntp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_ntp_auth.py validate-modules:doc-missing-type +plugins/modules/ce_ntp_auth.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_ospf.py validate-modules:doc-missing-type +plugins/modules/ce_ospf.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_ospf_vrf.py validate-modules:doc-missing-type +plugins/modules/ce_ospf_vrf.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_rollback.py validate-modules:doc-missing-type +plugins/modules/ce_rollback.py validate-modules:doc-required-mismatch +plugins/modules/ce_rollback.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_sflow.py validate-modules:doc-missing-type +plugins/modules/ce_sflow.py validate-modules:parameter-list-no-elements +plugins/modules/ce_sflow.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_community.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_community.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_contact.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_contact.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_location.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_location.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_target_host.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_snmp_target_host.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_snmp_target_host.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_target_host.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_target_host.py validate-modules:undocumented-parameter +plugins/modules/ce_snmp_traps.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_snmp_traps.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_snmp_traps.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_traps.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_traps.py validate-modules:undocumented-parameter +plugins/modules/ce_snmp_user.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_snmp_user.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_snmp_user.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_user.py validate-modules:mutually_exclusive-unknown +plugins/modules/ce_snmp_user.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_user.py validate-modules:undocumented-parameter +plugins/modules/ce_startup.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_startup.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_static_route.py validate-modules:doc-missing-type +plugins/modules/ce_static_route.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_static_route_bfd.py validate-modules:doc-required-mismatch +plugins/modules/ce_static_route_bfd.py validate-modules:parameter-list-no-elements +plugins/modules/ce_stp.py validate-modules:doc-missing-type +plugins/modules/ce_stp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_switchport.py validate-modules:doc-missing-type +plugins/modules/ce_switchport.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vlan.py validate-modules:doc-missing-type +plugins/modules/ce_vlan.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vrf.py validate-modules:doc-missing-type +plugins/modules/ce_vrf.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vrf_af.py validate-modules:doc-missing-type +plugins/modules/ce_vrf_af.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vrf_interface.py validate-modules:doc-missing-type +plugins/modules/ce_vrf_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vrrp.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_vrrp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vxlan_arp.py validate-modules:doc-missing-type +plugins/modules/ce_vxlan_arp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vxlan_gateway.py validate-modules:doc-missing-type +plugins/modules/ce_vxlan_gateway.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vxlan_global.py validate-modules:doc-missing-type +plugins/modules/ce_vxlan_global.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vxlan_tunnel.py validate-modules:doc-missing-type +plugins/modules/ce_vxlan_tunnel.py validate-modules:parameter-list-no-elements +plugins/modules/ce_vxlan_tunnel.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vxlan_vap.py validate-modules:doc-missing-type +plugins/modules/ce_vxlan_vap.py validate-modules:parameter-type-not-in-doc +plugins/modules/cv_server_provision.py validate-modules:doc-missing-type +plugins/modules/cv_server_provision.py validate-modules:doc-required-mismatch +plugins/modules/cv_server_provision.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/cnos_backup.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_backup.py validate-modules:doc-missing-type +plugins/modules/cnos_backup.py validate-modules:doc-required-mismatch +plugins/modules/cnos_backup.py validate-modules:nonexistent-parameter-documented +plugins/modules/cnos_backup.py validate-modules:undocumented-parameter +plugins/modules/cnos_backup.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_banner.py validate-modules:doc-missing-type +plugins/modules/cnos_bgp.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_bgp.py validate-modules:doc-missing-type +plugins/modules/cnos_bgp.py validate-modules:doc-required-mismatch +plugins/modules/cnos_bgp.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_command.py validate-modules:doc-missing-type +plugins/modules/cnos_command.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_conditional_command.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_conditional_command.py validate-modules:doc-missing-type +plugins/modules/cnos_conditional_command.py validate-modules:doc-required-mismatch +plugins/modules/cnos_conditional_command.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_conditional_template.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_conditional_template.py validate-modules:doc-missing-type +plugins/modules/cnos_conditional_template.py validate-modules:doc-required-mismatch +plugins/modules/cnos_conditional_template.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_config.py validate-modules:doc-missing-type +plugins/modules/cnos_config.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_config.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_factory.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_factory.py validate-modules:doc-required-mismatch +plugins/modules/cnos_factory.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_facts.py validate-modules:nonexistent-parameter-documented +plugins/modules/cnos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_facts.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_image.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_image.py validate-modules:doc-missing-type +plugins/modules/cnos_image.py validate-modules:doc-required-mismatch +plugins/modules/cnos_image.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_interface.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_interface.py validate-modules:doc-missing-type +plugins/modules/cnos_interface.py validate-modules:doc-required-mismatch +plugins/modules/cnos_interface.py validate-modules:missing-suboption-docs +plugins/modules/cnos_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_interface.py validate-modules:undocumented-parameter +plugins/modules/cnos_l2_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_l2_interface.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_l2_interface.py validate-modules:doc-missing-type +plugins/modules/cnos_l2_interface.py validate-modules:doc-required-mismatch +plugins/modules/cnos_l2_interface.py validate-modules:missing-suboption-docs +plugins/modules/cnos_l2_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_l2_interface.py validate-modules:undocumented-parameter +plugins/modules/cnos_l3_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_l3_interface.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_l3_interface.py validate-modules:doc-missing-type +plugins/modules/cnos_l3_interface.py validate-modules:doc-required-mismatch +plugins/modules/cnos_l3_interface.py validate-modules:missing-suboption-docs +plugins/modules/cnos_l3_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_l3_interface.py validate-modules:undocumented-parameter +plugins/modules/cnos_linkagg.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_linkagg.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_linkagg.py validate-modules:doc-missing-type +plugins/modules/cnos_linkagg.py validate-modules:doc-required-mismatch +plugins/modules/cnos_linkagg.py validate-modules:missing-suboption-docs +plugins/modules/cnos_linkagg.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_linkagg.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_linkagg.py validate-modules:undocumented-parameter +plugins/modules/cnos_lldp.py validate-modules:doc-missing-type +plugins/modules/cnos_logging.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_logging.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_logging.py validate-modules:doc-missing-type +plugins/modules/cnos_logging.py validate-modules:missing-suboption-docs +plugins/modules/cnos_logging.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_logging.py validate-modules:undocumented-parameter +plugins/modules/cnos_reload.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_reload.py validate-modules:doc-required-mismatch +plugins/modules/cnos_reload.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_rollback.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_rollback.py validate-modules:doc-missing-type +plugins/modules/cnos_rollback.py validate-modules:doc-required-mismatch +plugins/modules/cnos_rollback.py validate-modules:nonexistent-parameter-documented +plugins/modules/cnos_rollback.py validate-modules:undocumented-parameter +plugins/modules/cnos_rollback.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_save.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_save.py validate-modules:doc-required-mismatch +plugins/modules/cnos_save.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_showrun.py validate-modules:doc-required-mismatch +plugins/modules/cnos_showrun.py validate-modules:nonexistent-parameter-documented +plugins/modules/cnos_showrun.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_static_route.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_static_route.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_static_route.py validate-modules:doc-missing-type +plugins/modules/cnos_static_route.py validate-modules:doc-required-mismatch +plugins/modules/cnos_static_route.py validate-modules:missing-suboption-docs +plugins/modules/cnos_static_route.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_static_route.py validate-modules:undocumented-parameter +plugins/modules/cnos_system.py validate-modules:doc-missing-type +plugins/modules/cnos_system.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_system.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_template.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_template.py validate-modules:doc-missing-type +plugins/modules/cnos_template.py validate-modules:doc-required-mismatch +plugins/modules/cnos_template.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_user.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_user.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_user.py validate-modules:doc-missing-type +plugins/modules/cnos_user.py validate-modules:missing-suboption-docs +plugins/modules/cnos_user.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_user.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_user.py validate-modules:undocumented-parameter +plugins/modules/cnos_vlag.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_vlag.py validate-modules:doc-missing-type +plugins/modules/cnos_vlag.py validate-modules:doc-required-mismatch +plugins/modules/cnos_vlag.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_vlan.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_vlan.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_vlan.py validate-modules:doc-missing-type +plugins/modules/cnos_vlan.py validate-modules:doc-required-mismatch +plugins/modules/cnos_vlan.py validate-modules:missing-suboption-docs +plugins/modules/cnos_vlan.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_vlan.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_vlan.py validate-modules:undocumented-parameter +plugins/modules/cnos_vrf.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_vrf.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_vrf.py validate-modules:doc-missing-type +plugins/modules/cnos_vrf.py validate-modules:doc-required-mismatch +plugins/modules/cnos_vrf.py validate-modules:missing-suboption-docs +plugins/modules/cnos_vrf.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_vrf.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_vrf.py validate-modules:undocumented-parameter +plugins/modules/nclu.py validate-modules:parameter-list-no-elements +plugins/modules/nclu.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeos_command.py validate-modules:doc-missing-type +plugins/modules/edgeos_command.py validate-modules:parameter-list-no-elements +plugins/modules/edgeos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeos_config.py validate-modules:doc-missing-type +plugins/modules/edgeos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/edgeos_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeswitch_facts.py validate-modules:parameter-list-no-elements +plugins/modules/edgeswitch_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeswitch_vlan.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/edgeswitch_vlan.py validate-modules:doc-elements-mismatch +plugins/modules/edgeswitch_vlan.py validate-modules:doc-missing-type +plugins/modules/edgeswitch_vlan.py validate-modules:doc-required-mismatch +plugins/modules/edgeswitch_vlan.py validate-modules:missing-suboption-docs +plugins/modules/edgeswitch_vlan.py validate-modules:parameter-list-no-elements +plugins/modules/edgeswitch_vlan.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeswitch_vlan.py validate-modules:undocumented-parameter +plugins/modules/enos_command.py validate-modules:doc-missing-type +plugins/modules/enos_command.py validate-modules:nonexistent-parameter-documented +plugins/modules/enos_command.py validate-modules:parameter-list-no-elements +plugins/modules/enos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/enos_config.py validate-modules:doc-missing-type +plugins/modules/enos_config.py validate-modules:nonexistent-parameter-documented +plugins/modules/enos_config.py validate-modules:parameter-list-no-elements +plugins/modules/enos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/enos_facts.py validate-modules:nonexistent-parameter-documented +plugins/modules/enos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/enos_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/enos_facts.py yamllint:unparsable-with-libyaml +plugins/modules/eric_eccli_command.py validate-modules:parameter-list-no-elements +plugins/modules/exos_command.py validate-modules:doc-missing-type +plugins/modules/exos_command.py validate-modules:parameter-list-no-elements +plugins/modules/exos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/exos_config.py validate-modules:doc-missing-type +plugins/modules/exos_config.py validate-modules:parameter-list-no-elements +plugins/modules/exos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/exos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/exos_l2_interfaces.py validate-modules:parameter-list-no-elements +plugins/modules/icx_command.py validate-modules:parameter-list-no-elements +plugins/modules/icx_config.py validate-modules:parameter-list-no-elements +plugins/modules/icx_facts.py validate-modules:parameter-list-no-elements +plugins/modules/icx_interface.py validate-modules:doc-required-mismatch +plugins/modules/icx_l3_interface.py validate-modules:doc-required-mismatch +plugins/modules/icx_linkagg.py validate-modules:doc-elements-mismatch +plugins/modules/icx_linkagg.py validate-modules:doc-required-mismatch +plugins/modules/icx_linkagg.py validate-modules:parameter-list-no-elements +plugins/modules/icx_lldp.py validate-modules:doc-elements-mismatch +plugins/modules/icx_lldp.py validate-modules:parameter-list-no-elements +plugins/modules/icx_logging.py validate-modules:doc-elements-mismatch +plugins/modules/icx_logging.py validate-modules:parameter-list-no-elements +plugins/modules/icx_static_route.py validate-modules:doc-required-mismatch +plugins/modules/icx_system.py validate-modules:doc-elements-mismatch +plugins/modules/icx_system.py validate-modules:parameter-list-no-elements +plugins/modules/icx_user.py validate-modules:doc-required-mismatch +plugins/modules/icx_vlan.py validate-modules:doc-elements-mismatch +plugins/modules/icx_vlan.py validate-modules:doc-required-mismatch +plugins/modules/icx_vlan.py validate-modules:parameter-list-no-elements +plugins/modules/dladm_etherstub.py validate-modules:doc-missing-type +plugins/modules/dladm_iptun.py validate-modules:doc-missing-type +plugins/modules/dladm_iptun.py validate-modules:parameter-type-not-in-doc +plugins/modules/dladm_linkprop.py validate-modules:doc-missing-type +plugins/modules/dladm_linkprop.py validate-modules:no-default-for-required-parameter +plugins/modules/dladm_linkprop.py validate-modules:parameter-type-not-in-doc +plugins/modules/dladm_vlan.py validate-modules:doc-default-does-not-match-spec +plugins/modules/dladm_vlan.py validate-modules:doc-missing-type +plugins/modules/dladm_vlan.py validate-modules:doc-required-mismatch +plugins/modules/dladm_vlan.py validate-modules:parameter-type-not-in-doc +plugins/modules/dladm_vnic.py validate-modules:doc-default-does-not-match-spec +plugins/modules/flowadm.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/flowadm.py validate-modules:doc-missing-type +plugins/modules/ipadm_addr.py validate-modules:doc-missing-type +plugins/modules/ipadm_addr.py validate-modules:parameter-type-not-in-doc +plugins/modules/ipadm_addrprop.py validate-modules:doc-missing-type +plugins/modules/ipadm_addrprop.py validate-modules:no-default-for-required-parameter +plugins/modules/ipadm_if.py validate-modules:doc-missing-type +plugins/modules/ipadm_ifprop.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ipadm_ifprop.py validate-modules:doc-missing-type +plugins/modules/ipadm_ifprop.py validate-modules:no-default-for-required-parameter +plugins/modules/ipadm_prop.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ipadm_prop.py validate-modules:doc-missing-type +plugins/modules/ig_config.py validate-modules:doc-missing-type +plugins/modules/ig_config.py validate-modules:doc-required-mismatch +plugins/modules/ig_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/ig_config.py validate-modules:return-syntax-error +plugins/modules/ig_unit_information.py validate-modules:doc-required-mismatch +plugins/modules/ig_unit_information.py validate-modules:parameter-type-not-in-doc +plugins/modules/ironware_command.py validate-modules:doc-missing-type +plugins/modules/ironware_command.py validate-modules:nonexistent-parameter-documented +plugins/modules/ironware_command.py validate-modules:parameter-list-no-elements +plugins/modules/ironware_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/ironware_config.py validate-modules:doc-missing-type +plugins/modules/ironware_config.py validate-modules:nonexistent-parameter-documented +plugins/modules/ironware_config.py validate-modules:parameter-list-no-elements +plugins/modules/ironware_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/ironware_facts.py validate-modules:nonexistent-parameter-documented +plugins/modules/ironware_facts.py validate-modules:parameter-list-no-elements +plugins/modules/ironware_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/iap_start_workflow.py validate-modules:doc-required-mismatch +plugins/modules/iap_token.py validate-modules:parameter-type-not-in-doc +plugins/modules/netact_cm_command.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/netact_cm_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_cs_action.py pylint:condition-evals-to-constant # Should be fixed +plugins/modules/netscaler_cs_action.py validate-modules:nonexistent-parameter-documented +plugins/modules/netscaler_cs_action.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_cs_policy.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_cs_vserver.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/netscaler_cs_vserver.py validate-modules:nonexistent-parameter-documented +plugins/modules/netscaler_cs_vserver.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_cs_vserver.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_cs_vserver.py validate-modules:undocumented-parameter +plugins/modules/netscaler_gslb_service.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_gslb_service.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_gslb_site.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_gslb_vserver.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_gslb_vserver.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_gslb_vserver.py validate-modules:undocumented-parameter +plugins/modules/netscaler_lb_monitor.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/netscaler_lb_monitor.py validate-modules:nonexistent-parameter-documented +plugins/modules/netscaler_lb_monitor.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_lb_monitor.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_lb_vserver.py validate-modules:nonexistent-parameter-documented +plugins/modules/netscaler_lb_vserver.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_lb_vserver.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_nitro_request.py pylint:ansible-bad-function +plugins/modules/netscaler_nitro_request.py validate-modules:doc-missing-type +plugins/modules/netscaler_nitro_request.py validate-modules:doc-required-mismatch +plugins/modules/netscaler_nitro_request.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_nitro_request.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_save_config.py validate-modules:doc-missing-type +plugins/modules/netscaler_save_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_server.py validate-modules:doc-default-does-not-match-spec +plugins/modules/netscaler_server.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_service.py validate-modules:nonexistent-parameter-documented +plugins/modules/netscaler_service.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_service.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_servicegroup.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_servicegroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_ssl_certkey.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_access_list.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_access_list.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_access_list_ip.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_access_list_ip.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_admin_service.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_admin_session_timeout.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_admin_syslog.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_connection_stats_settings.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_cpu_class.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_cpu_class.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_cpu_mgmt_class.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_dhcp_filter.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_dscp_map.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_dscp_map.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_dscp_map_pri_map.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_fabric_local.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_fabric_local.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_igmp_snooping.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_igmp_snooping.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_ipv6security_raguard.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_ipv6security_raguard_port.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_ipv6security_raguard_vlan.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_log_audit_exception.py validate-modules:doc-required-mismatch +plugins/modules/pn_log_audit_exception.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_port_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_port_config.py validate-modules:required_one_of-unknown +plugins/modules/pn_port_cos_bw.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_port_cos_rate_setting.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_prefix_list.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_prefix_list_network.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_role.py validate-modules:doc-required-mismatch +plugins/modules/pn_role.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_snmp_community.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_snmp_community.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_snmp_trap_sink.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_snmp_vacm.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_stp.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_stp_port.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_switch_setup.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_user.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vflow_table_profile.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_bgp.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_bgp.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_vrouter_bgp_network.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_interface_ip.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_loopback_interface.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_ospf.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_ospf6.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_packet_relay.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_pim_config.py validate-modules:doc-required-mismatch +plugins/modules/pn_vrouter_pim_config.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vtep.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/nos_command.py validate-modules:doc-missing-type +plugins/modules/nos_command.py validate-modules:parameter-list-no-elements +plugins/modules/nos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/nos_config.py validate-modules:doc-missing-type +plugins/modules/nos_config.py validate-modules:parameter-list-no-elements +plugins/modules/nos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/nos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/nos_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/nuage_vspk.py validate-modules:doc-required-mismatch +plugins/modules/nuage_vspk.py validate-modules:missing-suboption-docs +plugins/modules/nuage_vspk.py validate-modules:parameter-list-no-elements +plugins/modules/nuage_vspk.py validate-modules:parameter-type-not-in-doc +plugins/modules/nuage_vspk.py validate-modules:undocumented-parameter +plugins/modules/opx_cps.py validate-modules:doc-required-mismatch +plugins/modules/opx_cps.py validate-modules:parameter-type-not-in-doc +plugins/modules/ordnance_config.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ordnance_config.py validate-modules:doc-missing-type +plugins/modules/ordnance_config.py validate-modules:doc-required-mismatch +plugins/modules/ordnance_config.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/ordnance_config.py validate-modules:parameter-list-no-elements +plugins/modules/ordnance_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/ordnance_config.py validate-modules:undocumented-parameter +plugins/modules/ordnance_config.py yamllint:unparsable-with-libyaml +plugins/modules/ordnance_facts.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ordnance_facts.py validate-modules:doc-missing-type +plugins/modules/ordnance_facts.py validate-modules:doc-required-mismatch +plugins/modules/ordnance_facts.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/ordnance_facts.py validate-modules:parameter-list-no-elements +plugins/modules/ordnance_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/ordnance_facts.py validate-modules:undocumented-parameter +plugins/modules/ordnance_facts.py yamllint:unparsable-with-libyaml +plugins/modules/vdirect_commit.py validate-modules:doc-missing-type +plugins/modules/vdirect_commit.py validate-modules:parameter-list-no-elements +plugins/modules/vdirect_commit.py validate-modules:parameter-type-not-in-doc +plugins/modules/vdirect_file.py validate-modules:doc-missing-type +plugins/modules/vdirect_file.py validate-modules:parameter-type-not-in-doc +plugins/modules/vdirect_runnable.py validate-modules:doc-missing-type +plugins/modules/vdirect_runnable.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_command.py validate-modules:doc-missing-type +plugins/modules/slxos_command.py validate-modules:parameter-list-no-elements +plugins/modules/slxos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_config.py validate-modules:doc-missing-type +plugins/modules/slxos_config.py validate-modules:parameter-list-no-elements +plugins/modules/slxos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/slxos_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/slxos_interface.py validate-modules:doc-elements-mismatch +plugins/modules/slxos_interface.py validate-modules:doc-missing-type +plugins/modules/slxos_interface.py validate-modules:doc-required-mismatch +plugins/modules/slxos_interface.py validate-modules:missing-suboption-docs +plugins/modules/slxos_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_interface.py validate-modules:undocumented-parameter +plugins/modules/slxos_l2_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/slxos_l2_interface.py validate-modules:doc-elements-mismatch +plugins/modules/slxos_l2_interface.py validate-modules:doc-missing-type +plugins/modules/slxos_l2_interface.py validate-modules:doc-required-mismatch +plugins/modules/slxos_l2_interface.py validate-modules:missing-suboption-docs +plugins/modules/slxos_l2_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_l2_interface.py validate-modules:undocumented-parameter +plugins/modules/slxos_l3_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/slxos_l3_interface.py validate-modules:doc-elements-mismatch +plugins/modules/slxos_l3_interface.py validate-modules:doc-missing-type +plugins/modules/slxos_l3_interface.py validate-modules:doc-required-mismatch +plugins/modules/slxos_l3_interface.py validate-modules:missing-suboption-docs +plugins/modules/slxos_l3_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_l3_interface.py validate-modules:undocumented-parameter +plugins/modules/slxos_linkagg.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/slxos_linkagg.py validate-modules:doc-elements-mismatch +plugins/modules/slxos_linkagg.py validate-modules:doc-missing-type +plugins/modules/slxos_linkagg.py validate-modules:doc-required-mismatch +plugins/modules/slxos_linkagg.py validate-modules:missing-suboption-docs +plugins/modules/slxos_linkagg.py validate-modules:parameter-list-no-elements +plugins/modules/slxos_linkagg.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_linkagg.py validate-modules:undocumented-parameter +plugins/modules/slxos_lldp.py validate-modules:doc-missing-type +plugins/modules/slxos_vlan.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/slxos_vlan.py validate-modules:doc-elements-mismatch +plugins/modules/slxos_vlan.py validate-modules:doc-missing-type +plugins/modules/slxos_vlan.py validate-modules:doc-required-mismatch +plugins/modules/slxos_vlan.py validate-modules:missing-suboption-docs +plugins/modules/slxos_vlan.py validate-modules:parameter-list-no-elements +plugins/modules/slxos_vlan.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_vlan.py validate-modules:undocumented-parameter +plugins/modules/sros_command.py validate-modules:collection-deprecated-version +plugins/modules/sros_command.py validate-modules:doc-missing-type +plugins/modules/sros_command.py validate-modules:parameter-list-no-elements +plugins/modules/sros_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/sros_config.py validate-modules:collection-deprecated-version +plugins/modules/sros_config.py validate-modules:doc-missing-type +plugins/modules/sros_config.py validate-modules:nonexistent-parameter-documented +plugins/modules/sros_config.py validate-modules:parameter-list-no-elements +plugins/modules/sros_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/sros_rollback.py validate-modules:collection-deprecated-version +plugins/modules/sros_rollback.py validate-modules:doc-missing-type +plugins/modules/sros_rollback.py validate-modules:parameter-type-not-in-doc +plugins/modules/voss_command.py validate-modules:doc-missing-type +plugins/modules/voss_command.py validate-modules:parameter-list-no-elements +plugins/modules/voss_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/voss_config.py validate-modules:doc-missing-type +plugins/modules/voss_config.py validate-modules:parameter-list-no-elements +plugins/modules/voss_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/voss_facts.py validate-modules:parameter-list-no-elements +plugins/modules/voss_facts.py validate-modules:parameter-type-not-in-doc +tests/unit/plugins/modules/test_edgeswitch_facts.py pylint:use-maxsplit-arg +tests/unit/plugins/modules/test_edgeswitch_vlan.py pylint:use-maxsplit-arg +tests/unit/plugins/modules/test_icx_ping.py pylint:use-maxsplit-arg +tests/unit/plugins/modules/test_ironware_config.py pylint:arguments-renamed +tests/unit/plugins/modules/test_ironware_facts.py pylint:use-maxsplit-arg +tests/unit/plugins/modules/test_netscaler_cs_action.py pylint:invalid-class-object +tests/unit/plugins/modules/test_netscaler_cs_vserver.py pylint:invalid-class-object +tests/unit/plugins/modules/test_netscaler_lb_vserver.py pylint:invalid-class-object +tests/unit/plugins/modules/test_netscaler_server.py pylint:invalid-class-object +tests/unit/plugins/modules/test_netscaler_service.py pylint:invalid-class-object +tests/unit/plugins/modules/test_netscaler_servicegroup.py pylint:invalid-class-object +tests/unit/plugins/modules/test_netscaler_ssl_certkey.py pylint:invalid-class-object +tests/unit/plugins/modules/test_nos_facts.py pylint:use-maxsplit-arg +tests/unit/plugins/modules/test_slxos_facts.py pylint:use-maxsplit-arg +tests/unit/plugins/modules/test_voss_facts.py pylint:use-maxsplit-arg diff --git a/ansible_collections/community/network/tests/sanity/ignore-2.14.txt b/ansible_collections/community/network/tests/sanity/ignore-2.14.txt new file mode 100644 index 000000000..f82bb18bd --- /dev/null +++ b/ansible_collections/community/network/tests/sanity/ignore-2.14.txt @@ -0,0 +1,819 @@ +plugins/action/aireos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/aruba.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/ce.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/ce_template.py action-plugin-docs # undocumented action plugin to fix, existed before sanity test was added +plugins/action/cnos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/enos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/exos.py action-plugin-docs # undocumented action plugin to fix +plugins/action/ironware.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/slxos.py action-plugin-docs # undocumented action plugin to fix +plugins/action/sros.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/voss.py action-plugin-docs # undocumented action plugin to fix +plugins/module_utils/network/edgeswitch/edgeswitch_interface.py pylint:duplicate-string-formatting-argument +plugins/modules/a10_server.py validate-modules:parameter-list-no-elements +plugins/modules/a10_server.py validate-modules:parameter-type-not-in-doc +plugins/modules/a10_server_axapi3.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/a10_server_axapi3.py validate-modules:parameter-list-no-elements +plugins/modules/a10_server_axapi3.py validate-modules:parameter-type-not-in-doc +plugins/modules/a10_service_group.py validate-modules:parameter-list-no-elements +plugins/modules/a10_service_group.py validate-modules:parameter-type-not-in-doc +plugins/modules/a10_virtual_server.py validate-modules:doc-default-does-not-match-spec +plugins/modules/a10_virtual_server.py validate-modules:doc-required-mismatch +plugins/modules/a10_virtual_server.py validate-modules:parameter-list-no-elements +plugins/modules/a10_virtual_server.py validate-modules:parameter-type-not-in-doc +plugins/modules/aireos_command.py validate-modules:collection-deprecated-version +plugins/modules/aireos_command.py validate-modules:doc-missing-type +plugins/modules/aireos_command.py validate-modules:parameter-list-no-elements +plugins/modules/aireos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/aireos_config.py validate-modules:collection-deprecated-version +plugins/modules/aireos_config.py validate-modules:doc-missing-type +plugins/modules/aireos_config.py validate-modules:parameter-list-no-elements +plugins/modules/aireos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/apconos_command.py validate-modules:parameter-list-no-elements +plugins/modules/aruba_command.py validate-modules:collection-deprecated-version +plugins/modules/aruba_command.py validate-modules:doc-missing-type +plugins/modules/aruba_command.py validate-modules:parameter-list-no-elements +plugins/modules/aruba_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/aruba_config.py validate-modules:collection-deprecated-version +plugins/modules/aruba_config.py validate-modules:doc-missing-type +plugins/modules/aruba_config.py validate-modules:parameter-list-no-elements +plugins/modules/aruba_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_actiongroupconfig.py validate-modules:doc-missing-type +plugins/modules/avi_actiongroupconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_alertconfig.py validate-modules:doc-missing-type +plugins/modules/avi_alertconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_alertemailconfig.py validate-modules:doc-missing-type +plugins/modules/avi_alertemailconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_alertscriptconfig.py validate-modules:doc-missing-type +plugins/modules/avi_alertscriptconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_alertsyslogconfig.py validate-modules:doc-missing-type +plugins/modules/avi_alertsyslogconfig.py validate-modules:parameter-list-no-elements +plugins/modules/avi_alertsyslogconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_analyticsprofile.py validate-modules:doc-missing-type +plugins/modules/avi_analyticsprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_analyticsprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_api_session.py validate-modules:doc-missing-type +plugins/modules/avi_api_session.py validate-modules:doc-required-mismatch +plugins/modules/avi_api_session.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_api_version.py validate-modules:doc-missing-type +plugins/modules/avi_api_version.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_applicationpersistenceprofile.py validate-modules:doc-missing-type +plugins/modules/avi_applicationpersistenceprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_applicationprofile.py validate-modules:doc-missing-type +plugins/modules/avi_applicationprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_authprofile.py validate-modules:doc-missing-type +plugins/modules/avi_authprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_autoscalelaunchconfig.py validate-modules:doc-missing-type +plugins/modules/avi_autoscalelaunchconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_backup.py validate-modules:doc-missing-type +plugins/modules/avi_backup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_backupconfiguration.py validate-modules:doc-missing-type +plugins/modules/avi_backupconfiguration.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_certificatemanagementprofile.py validate-modules:doc-missing-type +plugins/modules/avi_certificatemanagementprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_certificatemanagementprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_cloud.py validate-modules:doc-missing-type +plugins/modules/avi_cloud.py validate-modules:parameter-list-no-elements +plugins/modules/avi_cloud.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_cloudconnectoruser.py validate-modules:doc-missing-type +plugins/modules/avi_cloudconnectoruser.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_cloudproperties.py validate-modules:doc-missing-type +plugins/modules/avi_cloudproperties.py validate-modules:parameter-list-no-elements +plugins/modules/avi_cloudproperties.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_cluster.py validate-modules:doc-missing-type +plugins/modules/avi_cluster.py validate-modules:parameter-list-no-elements +plugins/modules/avi_cluster.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_clusterclouddetails.py validate-modules:doc-missing-type +plugins/modules/avi_clusterclouddetails.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_controllerproperties.py validate-modules:doc-missing-type +plugins/modules/avi_controllerproperties.py validate-modules:parameter-list-no-elements +plugins/modules/avi_controllerproperties.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_customipamdnsprofile.py validate-modules:doc-missing-type +plugins/modules/avi_customipamdnsprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_customipamdnsprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_dnspolicy.py validate-modules:doc-missing-type +plugins/modules/avi_dnspolicy.py validate-modules:parameter-list-no-elements +plugins/modules/avi_dnspolicy.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_errorpagebody.py validate-modules:doc-missing-type +plugins/modules/avi_errorpagebody.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_errorpageprofile.py validate-modules:doc-missing-type +plugins/modules/avi_errorpageprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_errorpageprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_gslb.py validate-modules:doc-missing-type +plugins/modules/avi_gslb.py validate-modules:parameter-list-no-elements +plugins/modules/avi_gslb.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_gslbgeodbprofile.py validate-modules:doc-missing-type +plugins/modules/avi_gslbgeodbprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_gslbgeodbprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_gslbservice.py validate-modules:doc-missing-type +plugins/modules/avi_gslbservice.py validate-modules:parameter-list-no-elements +plugins/modules/avi_gslbservice.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_gslbservice_patch_member.py pylint:use-a-generator +plugins/modules/avi_gslbservice_patch_member.py validate-modules:doc-missing-type +plugins/modules/avi_gslbservice_patch_member.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_hardwaresecuritymodulegroup.py validate-modules:doc-missing-type +plugins/modules/avi_hardwaresecuritymodulegroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_healthmonitor.py validate-modules:doc-missing-type +plugins/modules/avi_healthmonitor.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_httppolicyset.py validate-modules:doc-missing-type +plugins/modules/avi_httppolicyset.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_ipaddrgroup.py validate-modules:doc-missing-type +plugins/modules/avi_ipaddrgroup.py validate-modules:parameter-list-no-elements +plugins/modules/avi_ipaddrgroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_ipamdnsproviderprofile.py validate-modules:doc-missing-type +plugins/modules/avi_ipamdnsproviderprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_l4policyset.py validate-modules:doc-missing-type +plugins/modules/avi_l4policyset.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_microservicegroup.py validate-modules:doc-missing-type +plugins/modules/avi_microservicegroup.py validate-modules:parameter-list-no-elements +plugins/modules/avi_microservicegroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_network.py validate-modules:doc-missing-type +plugins/modules/avi_network.py validate-modules:parameter-list-no-elements +plugins/modules/avi_network.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_networkprofile.py validate-modules:doc-missing-type +plugins/modules/avi_networkprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_networksecuritypolicy.py validate-modules:doc-missing-type +plugins/modules/avi_networksecuritypolicy.py validate-modules:parameter-list-no-elements +plugins/modules/avi_networksecuritypolicy.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_pkiprofile.py validate-modules:doc-missing-type +plugins/modules/avi_pkiprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_pkiprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_pool.py validate-modules:doc-missing-type +plugins/modules/avi_pool.py validate-modules:parameter-list-no-elements +plugins/modules/avi_pool.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_poolgroup.py validate-modules:doc-missing-type +plugins/modules/avi_poolgroup.py validate-modules:parameter-list-no-elements +plugins/modules/avi_poolgroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_poolgroupdeploymentpolicy.py validate-modules:doc-missing-type +plugins/modules/avi_poolgroupdeploymentpolicy.py validate-modules:parameter-list-no-elements +plugins/modules/avi_poolgroupdeploymentpolicy.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_prioritylabels.py validate-modules:doc-missing-type +plugins/modules/avi_prioritylabels.py validate-modules:parameter-list-no-elements +plugins/modules/avi_prioritylabels.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_role.py validate-modules:doc-missing-type +plugins/modules/avi_role.py validate-modules:parameter-list-no-elements +plugins/modules/avi_role.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_scheduler.py validate-modules:doc-missing-type +plugins/modules/avi_scheduler.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_seproperties.py validate-modules:doc-missing-type +plugins/modules/avi_seproperties.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_serverautoscalepolicy.py validate-modules:doc-missing-type +plugins/modules/avi_serverautoscalepolicy.py validate-modules:parameter-list-no-elements +plugins/modules/avi_serverautoscalepolicy.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_serviceengine.py validate-modules:doc-missing-type +plugins/modules/avi_serviceengine.py validate-modules:parameter-list-no-elements +plugins/modules/avi_serviceengine.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_serviceenginegroup.py validate-modules:doc-missing-type +plugins/modules/avi_serviceenginegroup.py validate-modules:parameter-list-no-elements +plugins/modules/avi_serviceenginegroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_snmptrapprofile.py validate-modules:doc-missing-type +plugins/modules/avi_snmptrapprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_snmptrapprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_sslkeyandcertificate.py validate-modules:doc-missing-type +plugins/modules/avi_sslkeyandcertificate.py validate-modules:parameter-list-no-elements +plugins/modules/avi_sslkeyandcertificate.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_sslprofile.py validate-modules:doc-missing-type +plugins/modules/avi_sslprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_sslprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_stringgroup.py validate-modules:doc-missing-type +plugins/modules/avi_stringgroup.py validate-modules:parameter-list-no-elements +plugins/modules/avi_stringgroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_systemconfiguration.py validate-modules:doc-missing-type +plugins/modules/avi_systemconfiguration.py validate-modules:parameter-list-no-elements +plugins/modules/avi_systemconfiguration.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_tenant.py validate-modules:doc-missing-type +plugins/modules/avi_tenant.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_trafficcloneprofile.py validate-modules:doc-missing-type +plugins/modules/avi_trafficcloneprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_trafficcloneprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_user.py validate-modules:doc-missing-type +plugins/modules/avi_user.py validate-modules:parameter-list-no-elements +plugins/modules/avi_user.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_useraccount.py validate-modules:doc-missing-type +plugins/modules/avi_useraccount.py validate-modules:doc-required-mismatch +plugins/modules/avi_useraccount.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_useraccountprofile.py validate-modules:doc-missing-type +plugins/modules/avi_useraccountprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_virtualservice.py validate-modules:doc-missing-type +plugins/modules/avi_virtualservice.py validate-modules:parameter-list-no-elements +plugins/modules/avi_virtualservice.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_vrfcontext.py validate-modules:doc-missing-type +plugins/modules/avi_vrfcontext.py validate-modules:parameter-list-no-elements +plugins/modules/avi_vrfcontext.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_vsdatascriptset.py validate-modules:doc-missing-type +plugins/modules/avi_vsdatascriptset.py validate-modules:parameter-list-no-elements +plugins/modules/avi_vsdatascriptset.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_vsvip.py validate-modules:doc-missing-type +plugins/modules/avi_vsvip.py validate-modules:parameter-list-no-elements +plugins/modules/avi_vsvip.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_webhook.py validate-modules:doc-missing-type +plugins/modules/avi_webhook.py validate-modules:parameter-type-not-in-doc +plugins/modules/bcf_switch.py validate-modules:doc-missing-type +plugins/modules/bcf_switch.py validate-modules:parameter-type-not-in-doc +plugins/modules/bigmon_chain.py validate-modules:doc-missing-type +plugins/modules/bigmon_chain.py validate-modules:parameter-type-not-in-doc +plugins/modules/bigmon_policy.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/bigmon_policy.py validate-modules:doc-default-does-not-match-spec +plugins/modules/bigmon_policy.py validate-modules:doc-missing-type +plugins/modules/bigmon_policy.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_aaa_server_host.py validate-modules:doc-missing-type +plugins/modules/ce_aaa_server_host.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_acl.py validate-modules:doc-missing-type +plugins/modules/ce_acl.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_acl_advance.py validate-modules:doc-missing-type +plugins/modules/ce_acl_advance.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_acl_interface.py validate-modules:doc-missing-type +plugins/modules/ce_acl_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bfd_global.py validate-modules:doc-missing-type +plugins/modules/ce_bfd_global.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bfd_session.py validate-modules:doc-missing-type +plugins/modules/ce_bfd_session.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bfd_view.py validate-modules:doc-missing-type +plugins/modules/ce_bfd_view.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bgp.py validate-modules:doc-missing-type +plugins/modules/ce_bgp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bgp_af.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_bgp_af.py validate-modules:doc-missing-type +plugins/modules/ce_bgp_af.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bgp_neighbor.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_bgp_neighbor.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_bgp_neighbor.py validate-modules:doc-missing-type +plugins/modules/ce_bgp_neighbor.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bgp_neighbor.py validate-modules:undocumented-parameter +plugins/modules/ce_bgp_neighbor_af.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_bgp_neighbor_af.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_bgp_neighbor_af.py validate-modules:doc-missing-type +plugins/modules/ce_bgp_neighbor_af.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bgp_neighbor_af.py validate-modules:undocumented-parameter +plugins/modules/ce_command.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_command.py validate-modules:doc-missing-type +plugins/modules/ce_command.py validate-modules:parameter-list-no-elements +plugins/modules/ce_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_config.py validate-modules:doc-missing-type +plugins/modules/ce_config.py validate-modules:parameter-list-no-elements +plugins/modules/ce_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_config.py validate-modules:undocumented-parameter +plugins/modules/ce_dldp.py validate-modules:nonexistent-parameter-documented +plugins/modules/ce_dldp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_dldp.py validate-modules:undocumented-parameter +plugins/modules/ce_dldp_interface.py validate-modules:doc-missing-type +plugins/modules/ce_dldp_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_eth_trunk.py validate-modules:doc-missing-type +plugins/modules/ce_eth_trunk.py validate-modules:parameter-list-no-elements +plugins/modules/ce_eth_trunk.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_evpn_bd_vni.py validate-modules:doc-missing-type +plugins/modules/ce_evpn_bd_vni.py validate-modules:doc-required-mismatch +plugins/modules/ce_evpn_bd_vni.py validate-modules:parameter-list-no-elements +plugins/modules/ce_evpn_bd_vni.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_evpn_bgp.py validate-modules:doc-missing-type +plugins/modules/ce_evpn_bgp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_evpn_bgp_rr.py validate-modules:doc-missing-type +plugins/modules/ce_evpn_bgp_rr.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_evpn_global.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_facts.py validate-modules:parameter-list-no-elements +plugins/modules/ce_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_file_copy.py validate-modules:doc-missing-type +plugins/modules/ce_info_center_debug.py validate-modules:doc-missing-type +plugins/modules/ce_info_center_debug.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_info_center_global.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_info_center_global.py validate-modules:doc-missing-type +plugins/modules/ce_info_center_global.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_info_center_log.py validate-modules:doc-missing-type +plugins/modules/ce_info_center_log.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_info_center_trap.py validate-modules:doc-missing-type +plugins/modules/ce_info_center_trap.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_interface.py validate-modules:doc-missing-type +plugins/modules/ce_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_interface_ospf.py validate-modules:doc-missing-type +plugins/modules/ce_interface_ospf.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_ip_interface.py validate-modules:doc-missing-type +plugins/modules/ce_ip_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_is_is_view.py validate-modules:doc-required-mismatch +plugins/modules/ce_link_status.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_mlag_config.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_mlag_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_mlag_interface.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_mlag_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_mtu.py validate-modules:doc-missing-type +plugins/modules/ce_mtu.py validate-modules:doc-required-mismatch +plugins/modules/ce_mtu.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_netconf.py validate-modules:doc-missing-type +plugins/modules/ce_netstream_aging.py validate-modules:doc-missing-type +plugins/modules/ce_netstream_aging.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_netstream_export.py validate-modules:doc-missing-type +plugins/modules/ce_netstream_export.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_netstream_global.py validate-modules:doc-missing-type +plugins/modules/ce_netstream_global.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_netstream_template.py validate-modules:doc-missing-type +plugins/modules/ce_netstream_template.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_ntp.py validate-modules:doc-missing-type +plugins/modules/ce_ntp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_ntp_auth.py validate-modules:doc-missing-type +plugins/modules/ce_ntp_auth.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_ospf.py validate-modules:doc-missing-type +plugins/modules/ce_ospf.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_ospf_vrf.py validate-modules:doc-missing-type +plugins/modules/ce_ospf_vrf.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_rollback.py validate-modules:doc-missing-type +plugins/modules/ce_rollback.py validate-modules:doc-required-mismatch +plugins/modules/ce_rollback.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_sflow.py validate-modules:doc-missing-type +plugins/modules/ce_sflow.py validate-modules:parameter-list-no-elements +plugins/modules/ce_sflow.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_community.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_community.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_contact.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_contact.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_location.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_location.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_target_host.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_snmp_target_host.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_snmp_target_host.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_target_host.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_target_host.py validate-modules:undocumented-parameter +plugins/modules/ce_snmp_traps.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_snmp_traps.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_snmp_traps.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_traps.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_traps.py validate-modules:undocumented-parameter +plugins/modules/ce_snmp_user.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_snmp_user.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_snmp_user.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_user.py validate-modules:mutually_exclusive-unknown +plugins/modules/ce_snmp_user.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_user.py validate-modules:undocumented-parameter +plugins/modules/ce_startup.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_startup.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_static_route.py validate-modules:doc-missing-type +plugins/modules/ce_static_route.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_static_route_bfd.py validate-modules:doc-required-mismatch +plugins/modules/ce_static_route_bfd.py validate-modules:parameter-list-no-elements +plugins/modules/ce_stp.py validate-modules:doc-missing-type +plugins/modules/ce_stp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_switchport.py validate-modules:doc-missing-type +plugins/modules/ce_switchport.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vlan.py validate-modules:doc-missing-type +plugins/modules/ce_vlan.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vrf.py validate-modules:doc-missing-type +plugins/modules/ce_vrf.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vrf_af.py validate-modules:doc-missing-type +plugins/modules/ce_vrf_af.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vrf_interface.py validate-modules:doc-missing-type +plugins/modules/ce_vrf_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vrrp.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_vrrp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vxlan_arp.py validate-modules:doc-missing-type +plugins/modules/ce_vxlan_arp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vxlan_gateway.py validate-modules:doc-missing-type +plugins/modules/ce_vxlan_gateway.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vxlan_global.py validate-modules:doc-missing-type +plugins/modules/ce_vxlan_global.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vxlan_tunnel.py validate-modules:doc-missing-type +plugins/modules/ce_vxlan_tunnel.py validate-modules:parameter-list-no-elements +plugins/modules/ce_vxlan_tunnel.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vxlan_vap.py validate-modules:doc-missing-type +plugins/modules/ce_vxlan_vap.py validate-modules:parameter-type-not-in-doc +plugins/modules/cv_server_provision.py validate-modules:doc-missing-type +plugins/modules/cv_server_provision.py validate-modules:doc-required-mismatch +plugins/modules/cv_server_provision.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/cnos_backup.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_backup.py validate-modules:doc-missing-type +plugins/modules/cnos_backup.py validate-modules:doc-required-mismatch +plugins/modules/cnos_backup.py validate-modules:nonexistent-parameter-documented +plugins/modules/cnos_backup.py validate-modules:undocumented-parameter +plugins/modules/cnos_backup.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_banner.py validate-modules:doc-missing-type +plugins/modules/cnos_bgp.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_bgp.py validate-modules:doc-missing-type +plugins/modules/cnos_bgp.py validate-modules:doc-required-mismatch +plugins/modules/cnos_bgp.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_command.py validate-modules:doc-missing-type +plugins/modules/cnos_command.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_conditional_command.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_conditional_command.py validate-modules:doc-missing-type +plugins/modules/cnos_conditional_command.py validate-modules:doc-required-mismatch +plugins/modules/cnos_conditional_command.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_conditional_template.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_conditional_template.py validate-modules:doc-missing-type +plugins/modules/cnos_conditional_template.py validate-modules:doc-required-mismatch +plugins/modules/cnos_conditional_template.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_config.py validate-modules:doc-missing-type +plugins/modules/cnos_config.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_config.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_factory.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_factory.py validate-modules:doc-required-mismatch +plugins/modules/cnos_factory.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_facts.py validate-modules:nonexistent-parameter-documented +plugins/modules/cnos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_facts.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_image.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_image.py validate-modules:doc-missing-type +plugins/modules/cnos_image.py validate-modules:doc-required-mismatch +plugins/modules/cnos_image.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_interface.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_interface.py validate-modules:doc-missing-type +plugins/modules/cnos_interface.py validate-modules:doc-required-mismatch +plugins/modules/cnos_interface.py validate-modules:missing-suboption-docs +plugins/modules/cnos_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_interface.py validate-modules:undocumented-parameter +plugins/modules/cnos_l2_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_l2_interface.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_l2_interface.py validate-modules:doc-missing-type +plugins/modules/cnos_l2_interface.py validate-modules:doc-required-mismatch +plugins/modules/cnos_l2_interface.py validate-modules:missing-suboption-docs +plugins/modules/cnos_l2_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_l2_interface.py validate-modules:undocumented-parameter +plugins/modules/cnos_l3_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_l3_interface.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_l3_interface.py validate-modules:doc-missing-type +plugins/modules/cnos_l3_interface.py validate-modules:doc-required-mismatch +plugins/modules/cnos_l3_interface.py validate-modules:missing-suboption-docs +plugins/modules/cnos_l3_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_l3_interface.py validate-modules:undocumented-parameter +plugins/modules/cnos_linkagg.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_linkagg.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_linkagg.py validate-modules:doc-missing-type +plugins/modules/cnos_linkagg.py validate-modules:doc-required-mismatch +plugins/modules/cnos_linkagg.py validate-modules:missing-suboption-docs +plugins/modules/cnos_linkagg.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_linkagg.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_linkagg.py validate-modules:undocumented-parameter +plugins/modules/cnos_lldp.py validate-modules:doc-missing-type +plugins/modules/cnos_logging.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_logging.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_logging.py validate-modules:doc-missing-type +plugins/modules/cnos_logging.py validate-modules:missing-suboption-docs +plugins/modules/cnos_logging.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_logging.py validate-modules:undocumented-parameter +plugins/modules/cnos_reload.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_reload.py validate-modules:doc-required-mismatch +plugins/modules/cnos_reload.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_rollback.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_rollback.py validate-modules:doc-missing-type +plugins/modules/cnos_rollback.py validate-modules:doc-required-mismatch +plugins/modules/cnos_rollback.py validate-modules:nonexistent-parameter-documented +plugins/modules/cnos_rollback.py validate-modules:undocumented-parameter +plugins/modules/cnos_rollback.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_save.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_save.py validate-modules:doc-required-mismatch +plugins/modules/cnos_save.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_showrun.py validate-modules:doc-required-mismatch +plugins/modules/cnos_showrun.py validate-modules:nonexistent-parameter-documented +plugins/modules/cnos_showrun.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_static_route.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_static_route.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_static_route.py validate-modules:doc-missing-type +plugins/modules/cnos_static_route.py validate-modules:doc-required-mismatch +plugins/modules/cnos_static_route.py validate-modules:missing-suboption-docs +plugins/modules/cnos_static_route.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_static_route.py validate-modules:undocumented-parameter +plugins/modules/cnos_system.py validate-modules:doc-missing-type +plugins/modules/cnos_system.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_system.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_template.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_template.py validate-modules:doc-missing-type +plugins/modules/cnos_template.py validate-modules:doc-required-mismatch +plugins/modules/cnos_template.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_user.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_user.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_user.py validate-modules:doc-missing-type +plugins/modules/cnos_user.py validate-modules:missing-suboption-docs +plugins/modules/cnos_user.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_user.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_user.py validate-modules:undocumented-parameter +plugins/modules/cnos_vlag.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_vlag.py validate-modules:doc-missing-type +plugins/modules/cnos_vlag.py validate-modules:doc-required-mismatch +plugins/modules/cnos_vlag.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_vlan.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_vlan.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_vlan.py validate-modules:doc-missing-type +plugins/modules/cnos_vlan.py validate-modules:doc-required-mismatch +plugins/modules/cnos_vlan.py validate-modules:missing-suboption-docs +plugins/modules/cnos_vlan.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_vlan.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_vlan.py validate-modules:undocumented-parameter +plugins/modules/cnos_vrf.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_vrf.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_vrf.py validate-modules:doc-missing-type +plugins/modules/cnos_vrf.py validate-modules:doc-required-mismatch +plugins/modules/cnos_vrf.py validate-modules:missing-suboption-docs +plugins/modules/cnos_vrf.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_vrf.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_vrf.py validate-modules:undocumented-parameter +plugins/modules/nclu.py validate-modules:parameter-list-no-elements +plugins/modules/nclu.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeos_command.py validate-modules:doc-missing-type +plugins/modules/edgeos_command.py validate-modules:parameter-list-no-elements +plugins/modules/edgeos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeos_config.py validate-modules:doc-missing-type +plugins/modules/edgeos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/edgeos_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeswitch_facts.py validate-modules:parameter-list-no-elements +plugins/modules/edgeswitch_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeswitch_vlan.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/edgeswitch_vlan.py validate-modules:doc-elements-mismatch +plugins/modules/edgeswitch_vlan.py validate-modules:doc-missing-type +plugins/modules/edgeswitch_vlan.py validate-modules:doc-required-mismatch +plugins/modules/edgeswitch_vlan.py validate-modules:missing-suboption-docs +plugins/modules/edgeswitch_vlan.py validate-modules:parameter-list-no-elements +plugins/modules/edgeswitch_vlan.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeswitch_vlan.py validate-modules:undocumented-parameter +plugins/modules/enos_command.py validate-modules:doc-missing-type +plugins/modules/enos_command.py validate-modules:nonexistent-parameter-documented +plugins/modules/enos_command.py validate-modules:parameter-list-no-elements +plugins/modules/enos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/enos_config.py validate-modules:doc-missing-type +plugins/modules/enos_config.py validate-modules:nonexistent-parameter-documented +plugins/modules/enos_config.py validate-modules:parameter-list-no-elements +plugins/modules/enos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/enos_facts.py validate-modules:nonexistent-parameter-documented +plugins/modules/enos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/enos_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/enos_facts.py yamllint:unparsable-with-libyaml +plugins/modules/eric_eccli_command.py validate-modules:parameter-list-no-elements +plugins/modules/exos_command.py validate-modules:doc-missing-type +plugins/modules/exos_command.py validate-modules:parameter-list-no-elements +plugins/modules/exos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/exos_config.py validate-modules:doc-missing-type +plugins/modules/exos_config.py validate-modules:parameter-list-no-elements +plugins/modules/exos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/exos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/exos_l2_interfaces.py validate-modules:parameter-list-no-elements +plugins/modules/icx_command.py validate-modules:parameter-list-no-elements +plugins/modules/icx_config.py validate-modules:parameter-list-no-elements +plugins/modules/icx_facts.py validate-modules:parameter-list-no-elements +plugins/modules/icx_interface.py validate-modules:doc-required-mismatch +plugins/modules/icx_l3_interface.py validate-modules:doc-required-mismatch +plugins/modules/icx_linkagg.py validate-modules:doc-elements-mismatch +plugins/modules/icx_linkagg.py validate-modules:doc-required-mismatch +plugins/modules/icx_linkagg.py validate-modules:parameter-list-no-elements +plugins/modules/icx_lldp.py validate-modules:doc-elements-mismatch +plugins/modules/icx_lldp.py validate-modules:parameter-list-no-elements +plugins/modules/icx_logging.py validate-modules:doc-elements-mismatch +plugins/modules/icx_logging.py validate-modules:parameter-list-no-elements +plugins/modules/icx_static_route.py validate-modules:doc-required-mismatch +plugins/modules/icx_system.py validate-modules:doc-elements-mismatch +plugins/modules/icx_system.py validate-modules:parameter-list-no-elements +plugins/modules/icx_user.py validate-modules:doc-required-mismatch +plugins/modules/icx_vlan.py validate-modules:doc-elements-mismatch +plugins/modules/icx_vlan.py validate-modules:doc-required-mismatch +plugins/modules/icx_vlan.py validate-modules:parameter-list-no-elements +plugins/modules/dladm_etherstub.py validate-modules:doc-missing-type +plugins/modules/dladm_iptun.py validate-modules:doc-missing-type +plugins/modules/dladm_iptun.py validate-modules:parameter-type-not-in-doc +plugins/modules/dladm_linkprop.py validate-modules:doc-missing-type +plugins/modules/dladm_linkprop.py validate-modules:no-default-for-required-parameter +plugins/modules/dladm_linkprop.py validate-modules:parameter-type-not-in-doc +plugins/modules/dladm_vlan.py validate-modules:doc-default-does-not-match-spec +plugins/modules/dladm_vlan.py validate-modules:doc-missing-type +plugins/modules/dladm_vlan.py validate-modules:doc-required-mismatch +plugins/modules/dladm_vlan.py validate-modules:parameter-type-not-in-doc +plugins/modules/dladm_vnic.py validate-modules:doc-default-does-not-match-spec +plugins/modules/flowadm.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/flowadm.py validate-modules:doc-missing-type +plugins/modules/ipadm_addr.py validate-modules:doc-missing-type +plugins/modules/ipadm_addr.py validate-modules:parameter-type-not-in-doc +plugins/modules/ipadm_addrprop.py validate-modules:doc-missing-type +plugins/modules/ipadm_addrprop.py validate-modules:no-default-for-required-parameter +plugins/modules/ipadm_if.py validate-modules:doc-missing-type +plugins/modules/ipadm_ifprop.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ipadm_ifprop.py validate-modules:doc-missing-type +plugins/modules/ipadm_ifprop.py validate-modules:no-default-for-required-parameter +plugins/modules/ipadm_prop.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ipadm_prop.py validate-modules:doc-missing-type +plugins/modules/ig_config.py validate-modules:doc-missing-type +plugins/modules/ig_config.py validate-modules:doc-required-mismatch +plugins/modules/ig_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/ig_config.py validate-modules:return-syntax-error +plugins/modules/ig_unit_information.py validate-modules:doc-required-mismatch +plugins/modules/ig_unit_information.py validate-modules:parameter-type-not-in-doc +plugins/modules/ironware_command.py validate-modules:doc-missing-type +plugins/modules/ironware_command.py validate-modules:nonexistent-parameter-documented +plugins/modules/ironware_command.py validate-modules:parameter-list-no-elements +plugins/modules/ironware_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/ironware_config.py validate-modules:doc-missing-type +plugins/modules/ironware_config.py validate-modules:nonexistent-parameter-documented +plugins/modules/ironware_config.py validate-modules:parameter-list-no-elements +plugins/modules/ironware_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/ironware_facts.py validate-modules:nonexistent-parameter-documented +plugins/modules/ironware_facts.py validate-modules:parameter-list-no-elements +plugins/modules/ironware_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/iap_start_workflow.py validate-modules:doc-required-mismatch +plugins/modules/iap_token.py validate-modules:parameter-type-not-in-doc +plugins/modules/netact_cm_command.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/netact_cm_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_cs_action.py pylint:condition-evals-to-constant # Should be fixed +plugins/modules/netscaler_cs_action.py validate-modules:nonexistent-parameter-documented +plugins/modules/netscaler_cs_action.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_cs_policy.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_cs_vserver.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/netscaler_cs_vserver.py validate-modules:nonexistent-parameter-documented +plugins/modules/netscaler_cs_vserver.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_cs_vserver.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_cs_vserver.py validate-modules:undocumented-parameter +plugins/modules/netscaler_gslb_service.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_gslb_service.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_gslb_site.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_gslb_vserver.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_gslb_vserver.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_gslb_vserver.py validate-modules:undocumented-parameter +plugins/modules/netscaler_lb_monitor.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/netscaler_lb_monitor.py validate-modules:nonexistent-parameter-documented +plugins/modules/netscaler_lb_monitor.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_lb_monitor.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_lb_vserver.py validate-modules:nonexistent-parameter-documented +plugins/modules/netscaler_lb_vserver.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_lb_vserver.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_nitro_request.py pylint:ansible-bad-function +plugins/modules/netscaler_nitro_request.py validate-modules:doc-missing-type +plugins/modules/netscaler_nitro_request.py validate-modules:doc-required-mismatch +plugins/modules/netscaler_nitro_request.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_nitro_request.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_save_config.py validate-modules:doc-missing-type +plugins/modules/netscaler_save_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_server.py validate-modules:doc-default-does-not-match-spec +plugins/modules/netscaler_server.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_service.py validate-modules:nonexistent-parameter-documented +plugins/modules/netscaler_service.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_service.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_servicegroup.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_servicegroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_ssl_certkey.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_access_list.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_access_list.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_access_list_ip.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_access_list_ip.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_admin_service.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_admin_session_timeout.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_admin_syslog.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_connection_stats_settings.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_cpu_class.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_cpu_class.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_cpu_mgmt_class.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_dhcp_filter.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_dscp_map.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_dscp_map.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_dscp_map_pri_map.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_fabric_local.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_fabric_local.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_igmp_snooping.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_igmp_snooping.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_ipv6security_raguard.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_ipv6security_raguard_port.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_ipv6security_raguard_vlan.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_log_audit_exception.py validate-modules:doc-required-mismatch +plugins/modules/pn_log_audit_exception.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_port_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_port_config.py validate-modules:required_one_of-unknown +plugins/modules/pn_port_cos_bw.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_port_cos_rate_setting.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_prefix_list.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_prefix_list_network.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_role.py validate-modules:doc-required-mismatch +plugins/modules/pn_role.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_snmp_community.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_snmp_community.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_snmp_trap_sink.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_snmp_vacm.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_stp.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_stp_port.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_switch_setup.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_user.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vflow_table_profile.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_bgp.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_bgp.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_vrouter_bgp_network.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_interface_ip.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_loopback_interface.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_ospf.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_ospf6.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_packet_relay.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_pim_config.py validate-modules:doc-required-mismatch +plugins/modules/pn_vrouter_pim_config.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vtep.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/nos_command.py validate-modules:doc-missing-type +plugins/modules/nos_command.py validate-modules:parameter-list-no-elements +plugins/modules/nos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/nos_config.py validate-modules:doc-missing-type +plugins/modules/nos_config.py validate-modules:parameter-list-no-elements +plugins/modules/nos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/nos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/nos_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/nuage_vspk.py validate-modules:doc-required-mismatch +plugins/modules/nuage_vspk.py validate-modules:missing-suboption-docs +plugins/modules/nuage_vspk.py validate-modules:parameter-list-no-elements +plugins/modules/nuage_vspk.py validate-modules:parameter-type-not-in-doc +plugins/modules/nuage_vspk.py validate-modules:undocumented-parameter +plugins/modules/opx_cps.py validate-modules:doc-required-mismatch +plugins/modules/opx_cps.py validate-modules:parameter-type-not-in-doc +plugins/modules/ordnance_config.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ordnance_config.py validate-modules:doc-missing-type +plugins/modules/ordnance_config.py validate-modules:doc-required-mismatch +plugins/modules/ordnance_config.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/ordnance_config.py validate-modules:parameter-list-no-elements +plugins/modules/ordnance_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/ordnance_config.py validate-modules:undocumented-parameter +plugins/modules/ordnance_config.py yamllint:unparsable-with-libyaml +plugins/modules/ordnance_facts.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ordnance_facts.py validate-modules:doc-missing-type +plugins/modules/ordnance_facts.py validate-modules:doc-required-mismatch +plugins/modules/ordnance_facts.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/ordnance_facts.py validate-modules:parameter-list-no-elements +plugins/modules/ordnance_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/ordnance_facts.py validate-modules:undocumented-parameter +plugins/modules/ordnance_facts.py yamllint:unparsable-with-libyaml +plugins/modules/vdirect_commit.py validate-modules:doc-missing-type +plugins/modules/vdirect_commit.py validate-modules:parameter-list-no-elements +plugins/modules/vdirect_commit.py validate-modules:parameter-type-not-in-doc +plugins/modules/vdirect_file.py validate-modules:doc-missing-type +plugins/modules/vdirect_file.py validate-modules:parameter-type-not-in-doc +plugins/modules/vdirect_runnable.py validate-modules:doc-missing-type +plugins/modules/vdirect_runnable.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_command.py validate-modules:doc-missing-type +plugins/modules/slxos_command.py validate-modules:parameter-list-no-elements +plugins/modules/slxos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_config.py validate-modules:doc-missing-type +plugins/modules/slxos_config.py validate-modules:parameter-list-no-elements +plugins/modules/slxos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/slxos_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/slxos_interface.py validate-modules:doc-elements-mismatch +plugins/modules/slxos_interface.py validate-modules:doc-missing-type +plugins/modules/slxos_interface.py validate-modules:doc-required-mismatch +plugins/modules/slxos_interface.py validate-modules:missing-suboption-docs +plugins/modules/slxos_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_interface.py validate-modules:undocumented-parameter +plugins/modules/slxos_l2_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/slxos_l2_interface.py validate-modules:doc-elements-mismatch +plugins/modules/slxos_l2_interface.py validate-modules:doc-missing-type +plugins/modules/slxos_l2_interface.py validate-modules:doc-required-mismatch +plugins/modules/slxos_l2_interface.py validate-modules:missing-suboption-docs +plugins/modules/slxos_l2_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_l2_interface.py validate-modules:undocumented-parameter +plugins/modules/slxos_l3_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/slxos_l3_interface.py validate-modules:doc-elements-mismatch +plugins/modules/slxos_l3_interface.py validate-modules:doc-missing-type +plugins/modules/slxos_l3_interface.py validate-modules:doc-required-mismatch +plugins/modules/slxos_l3_interface.py validate-modules:missing-suboption-docs +plugins/modules/slxos_l3_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_l3_interface.py validate-modules:undocumented-parameter +plugins/modules/slxos_linkagg.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/slxos_linkagg.py validate-modules:doc-elements-mismatch +plugins/modules/slxos_linkagg.py validate-modules:doc-missing-type +plugins/modules/slxos_linkagg.py validate-modules:doc-required-mismatch +plugins/modules/slxos_linkagg.py validate-modules:missing-suboption-docs +plugins/modules/slxos_linkagg.py validate-modules:parameter-list-no-elements +plugins/modules/slxos_linkagg.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_linkagg.py validate-modules:undocumented-parameter +plugins/modules/slxos_lldp.py validate-modules:doc-missing-type +plugins/modules/slxos_vlan.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/slxos_vlan.py validate-modules:doc-elements-mismatch +plugins/modules/slxos_vlan.py validate-modules:doc-missing-type +plugins/modules/slxos_vlan.py validate-modules:doc-required-mismatch +plugins/modules/slxos_vlan.py validate-modules:missing-suboption-docs +plugins/modules/slxos_vlan.py validate-modules:parameter-list-no-elements +plugins/modules/slxos_vlan.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_vlan.py validate-modules:undocumented-parameter +plugins/modules/sros_command.py validate-modules:collection-deprecated-version +plugins/modules/sros_command.py validate-modules:doc-missing-type +plugins/modules/sros_command.py validate-modules:parameter-list-no-elements +plugins/modules/sros_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/sros_config.py validate-modules:collection-deprecated-version +plugins/modules/sros_config.py validate-modules:doc-missing-type +plugins/modules/sros_config.py validate-modules:nonexistent-parameter-documented +plugins/modules/sros_config.py validate-modules:parameter-list-no-elements +plugins/modules/sros_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/sros_rollback.py validate-modules:collection-deprecated-version +plugins/modules/sros_rollback.py validate-modules:doc-missing-type +plugins/modules/sros_rollback.py validate-modules:parameter-type-not-in-doc +plugins/modules/voss_command.py validate-modules:doc-missing-type +plugins/modules/voss_command.py validate-modules:parameter-list-no-elements +plugins/modules/voss_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/voss_config.py validate-modules:doc-missing-type +plugins/modules/voss_config.py validate-modules:parameter-list-no-elements +plugins/modules/voss_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/voss_facts.py validate-modules:parameter-list-no-elements +plugins/modules/voss_facts.py validate-modules:parameter-type-not-in-doc +tests/unit/plugins/modules/test_edgeswitch_facts.py pylint:use-maxsplit-arg +tests/unit/plugins/modules/test_edgeswitch_vlan.py pylint:use-maxsplit-arg +tests/unit/plugins/modules/test_icx_ping.py pylint:use-maxsplit-arg +tests/unit/plugins/modules/test_ironware_config.py pylint:arguments-renamed +tests/unit/plugins/modules/test_ironware_facts.py pylint:use-maxsplit-arg +tests/unit/plugins/modules/test_netscaler_cs_action.py pylint:invalid-class-object +tests/unit/plugins/modules/test_netscaler_cs_vserver.py pylint:invalid-class-object +tests/unit/plugins/modules/test_netscaler_lb_vserver.py pylint:invalid-class-object +tests/unit/plugins/modules/test_netscaler_server.py pylint:invalid-class-object +tests/unit/plugins/modules/test_netscaler_service.py pylint:invalid-class-object +tests/unit/plugins/modules/test_netscaler_servicegroup.py pylint:invalid-class-object +tests/unit/plugins/modules/test_netscaler_ssl_certkey.py pylint:invalid-class-object +tests/unit/plugins/modules/test_nos_facts.py pylint:use-maxsplit-arg +tests/unit/plugins/modules/test_slxos_facts.py pylint:use-maxsplit-arg +tests/unit/plugins/modules/test_voss_facts.py pylint:use-maxsplit-arg diff --git a/ansible_collections/community/network/tests/sanity/ignore-2.15.txt b/ansible_collections/community/network/tests/sanity/ignore-2.15.txt new file mode 100644 index 000000000..f82bb18bd --- /dev/null +++ b/ansible_collections/community/network/tests/sanity/ignore-2.15.txt @@ -0,0 +1,819 @@ +plugins/action/aireos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/aruba.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/ce.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/ce_template.py action-plugin-docs # undocumented action plugin to fix, existed before sanity test was added +plugins/action/cnos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/enos.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/exos.py action-plugin-docs # undocumented action plugin to fix +plugins/action/ironware.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/slxos.py action-plugin-docs # undocumented action plugin to fix +plugins/action/sros.py action-plugin-docs # base class for deprecated network platform modules using `connection: local` +plugins/action/voss.py action-plugin-docs # undocumented action plugin to fix +plugins/module_utils/network/edgeswitch/edgeswitch_interface.py pylint:duplicate-string-formatting-argument +plugins/modules/a10_server.py validate-modules:parameter-list-no-elements +plugins/modules/a10_server.py validate-modules:parameter-type-not-in-doc +plugins/modules/a10_server_axapi3.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/a10_server_axapi3.py validate-modules:parameter-list-no-elements +plugins/modules/a10_server_axapi3.py validate-modules:parameter-type-not-in-doc +plugins/modules/a10_service_group.py validate-modules:parameter-list-no-elements +plugins/modules/a10_service_group.py validate-modules:parameter-type-not-in-doc +plugins/modules/a10_virtual_server.py validate-modules:doc-default-does-not-match-spec +plugins/modules/a10_virtual_server.py validate-modules:doc-required-mismatch +plugins/modules/a10_virtual_server.py validate-modules:parameter-list-no-elements +plugins/modules/a10_virtual_server.py validate-modules:parameter-type-not-in-doc +plugins/modules/aireos_command.py validate-modules:collection-deprecated-version +plugins/modules/aireos_command.py validate-modules:doc-missing-type +plugins/modules/aireos_command.py validate-modules:parameter-list-no-elements +plugins/modules/aireos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/aireos_config.py validate-modules:collection-deprecated-version +plugins/modules/aireos_config.py validate-modules:doc-missing-type +plugins/modules/aireos_config.py validate-modules:parameter-list-no-elements +plugins/modules/aireos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/apconos_command.py validate-modules:parameter-list-no-elements +plugins/modules/aruba_command.py validate-modules:collection-deprecated-version +plugins/modules/aruba_command.py validate-modules:doc-missing-type +plugins/modules/aruba_command.py validate-modules:parameter-list-no-elements +plugins/modules/aruba_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/aruba_config.py validate-modules:collection-deprecated-version +plugins/modules/aruba_config.py validate-modules:doc-missing-type +plugins/modules/aruba_config.py validate-modules:parameter-list-no-elements +plugins/modules/aruba_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_actiongroupconfig.py validate-modules:doc-missing-type +plugins/modules/avi_actiongroupconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_alertconfig.py validate-modules:doc-missing-type +plugins/modules/avi_alertconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_alertemailconfig.py validate-modules:doc-missing-type +plugins/modules/avi_alertemailconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_alertscriptconfig.py validate-modules:doc-missing-type +plugins/modules/avi_alertscriptconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_alertsyslogconfig.py validate-modules:doc-missing-type +plugins/modules/avi_alertsyslogconfig.py validate-modules:parameter-list-no-elements +plugins/modules/avi_alertsyslogconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_analyticsprofile.py validate-modules:doc-missing-type +plugins/modules/avi_analyticsprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_analyticsprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_api_session.py validate-modules:doc-missing-type +plugins/modules/avi_api_session.py validate-modules:doc-required-mismatch +plugins/modules/avi_api_session.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_api_version.py validate-modules:doc-missing-type +plugins/modules/avi_api_version.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_applicationpersistenceprofile.py validate-modules:doc-missing-type +plugins/modules/avi_applicationpersistenceprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_applicationprofile.py validate-modules:doc-missing-type +plugins/modules/avi_applicationprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_authprofile.py validate-modules:doc-missing-type +plugins/modules/avi_authprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_autoscalelaunchconfig.py validate-modules:doc-missing-type +plugins/modules/avi_autoscalelaunchconfig.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_backup.py validate-modules:doc-missing-type +plugins/modules/avi_backup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_backupconfiguration.py validate-modules:doc-missing-type +plugins/modules/avi_backupconfiguration.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_certificatemanagementprofile.py validate-modules:doc-missing-type +plugins/modules/avi_certificatemanagementprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_certificatemanagementprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_cloud.py validate-modules:doc-missing-type +plugins/modules/avi_cloud.py validate-modules:parameter-list-no-elements +plugins/modules/avi_cloud.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_cloudconnectoruser.py validate-modules:doc-missing-type +plugins/modules/avi_cloudconnectoruser.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_cloudproperties.py validate-modules:doc-missing-type +plugins/modules/avi_cloudproperties.py validate-modules:parameter-list-no-elements +plugins/modules/avi_cloudproperties.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_cluster.py validate-modules:doc-missing-type +plugins/modules/avi_cluster.py validate-modules:parameter-list-no-elements +plugins/modules/avi_cluster.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_clusterclouddetails.py validate-modules:doc-missing-type +plugins/modules/avi_clusterclouddetails.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_controllerproperties.py validate-modules:doc-missing-type +plugins/modules/avi_controllerproperties.py validate-modules:parameter-list-no-elements +plugins/modules/avi_controllerproperties.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_customipamdnsprofile.py validate-modules:doc-missing-type +plugins/modules/avi_customipamdnsprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_customipamdnsprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_dnspolicy.py validate-modules:doc-missing-type +plugins/modules/avi_dnspolicy.py validate-modules:parameter-list-no-elements +plugins/modules/avi_dnspolicy.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_errorpagebody.py validate-modules:doc-missing-type +plugins/modules/avi_errorpagebody.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_errorpageprofile.py validate-modules:doc-missing-type +plugins/modules/avi_errorpageprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_errorpageprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_gslb.py validate-modules:doc-missing-type +plugins/modules/avi_gslb.py validate-modules:parameter-list-no-elements +plugins/modules/avi_gslb.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_gslbgeodbprofile.py validate-modules:doc-missing-type +plugins/modules/avi_gslbgeodbprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_gslbgeodbprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_gslbservice.py validate-modules:doc-missing-type +plugins/modules/avi_gslbservice.py validate-modules:parameter-list-no-elements +plugins/modules/avi_gslbservice.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_gslbservice_patch_member.py pylint:use-a-generator +plugins/modules/avi_gslbservice_patch_member.py validate-modules:doc-missing-type +plugins/modules/avi_gslbservice_patch_member.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_hardwaresecuritymodulegroup.py validate-modules:doc-missing-type +plugins/modules/avi_hardwaresecuritymodulegroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_healthmonitor.py validate-modules:doc-missing-type +plugins/modules/avi_healthmonitor.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_httppolicyset.py validate-modules:doc-missing-type +plugins/modules/avi_httppolicyset.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_ipaddrgroup.py validate-modules:doc-missing-type +plugins/modules/avi_ipaddrgroup.py validate-modules:parameter-list-no-elements +plugins/modules/avi_ipaddrgroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_ipamdnsproviderprofile.py validate-modules:doc-missing-type +plugins/modules/avi_ipamdnsproviderprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_l4policyset.py validate-modules:doc-missing-type +plugins/modules/avi_l4policyset.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_microservicegroup.py validate-modules:doc-missing-type +plugins/modules/avi_microservicegroup.py validate-modules:parameter-list-no-elements +plugins/modules/avi_microservicegroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_network.py validate-modules:doc-missing-type +plugins/modules/avi_network.py validate-modules:parameter-list-no-elements +plugins/modules/avi_network.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_networkprofile.py validate-modules:doc-missing-type +plugins/modules/avi_networkprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_networksecuritypolicy.py validate-modules:doc-missing-type +plugins/modules/avi_networksecuritypolicy.py validate-modules:parameter-list-no-elements +plugins/modules/avi_networksecuritypolicy.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_pkiprofile.py validate-modules:doc-missing-type +plugins/modules/avi_pkiprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_pkiprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_pool.py validate-modules:doc-missing-type +plugins/modules/avi_pool.py validate-modules:parameter-list-no-elements +plugins/modules/avi_pool.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_poolgroup.py validate-modules:doc-missing-type +plugins/modules/avi_poolgroup.py validate-modules:parameter-list-no-elements +plugins/modules/avi_poolgroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_poolgroupdeploymentpolicy.py validate-modules:doc-missing-type +plugins/modules/avi_poolgroupdeploymentpolicy.py validate-modules:parameter-list-no-elements +plugins/modules/avi_poolgroupdeploymentpolicy.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_prioritylabels.py validate-modules:doc-missing-type +plugins/modules/avi_prioritylabels.py validate-modules:parameter-list-no-elements +plugins/modules/avi_prioritylabels.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_role.py validate-modules:doc-missing-type +plugins/modules/avi_role.py validate-modules:parameter-list-no-elements +plugins/modules/avi_role.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_scheduler.py validate-modules:doc-missing-type +plugins/modules/avi_scheduler.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_seproperties.py validate-modules:doc-missing-type +plugins/modules/avi_seproperties.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_serverautoscalepolicy.py validate-modules:doc-missing-type +plugins/modules/avi_serverautoscalepolicy.py validate-modules:parameter-list-no-elements +plugins/modules/avi_serverautoscalepolicy.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_serviceengine.py validate-modules:doc-missing-type +plugins/modules/avi_serviceengine.py validate-modules:parameter-list-no-elements +plugins/modules/avi_serviceengine.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_serviceenginegroup.py validate-modules:doc-missing-type +plugins/modules/avi_serviceenginegroup.py validate-modules:parameter-list-no-elements +plugins/modules/avi_serviceenginegroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_snmptrapprofile.py validate-modules:doc-missing-type +plugins/modules/avi_snmptrapprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_snmptrapprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_sslkeyandcertificate.py validate-modules:doc-missing-type +plugins/modules/avi_sslkeyandcertificate.py validate-modules:parameter-list-no-elements +plugins/modules/avi_sslkeyandcertificate.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_sslprofile.py validate-modules:doc-missing-type +plugins/modules/avi_sslprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_sslprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_stringgroup.py validate-modules:doc-missing-type +plugins/modules/avi_stringgroup.py validate-modules:parameter-list-no-elements +plugins/modules/avi_stringgroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_systemconfiguration.py validate-modules:doc-missing-type +plugins/modules/avi_systemconfiguration.py validate-modules:parameter-list-no-elements +plugins/modules/avi_systemconfiguration.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_tenant.py validate-modules:doc-missing-type +plugins/modules/avi_tenant.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_trafficcloneprofile.py validate-modules:doc-missing-type +plugins/modules/avi_trafficcloneprofile.py validate-modules:parameter-list-no-elements +plugins/modules/avi_trafficcloneprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_user.py validate-modules:doc-missing-type +plugins/modules/avi_user.py validate-modules:parameter-list-no-elements +plugins/modules/avi_user.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_useraccount.py validate-modules:doc-missing-type +plugins/modules/avi_useraccount.py validate-modules:doc-required-mismatch +plugins/modules/avi_useraccount.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_useraccountprofile.py validate-modules:doc-missing-type +plugins/modules/avi_useraccountprofile.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_virtualservice.py validate-modules:doc-missing-type +plugins/modules/avi_virtualservice.py validate-modules:parameter-list-no-elements +plugins/modules/avi_virtualservice.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_vrfcontext.py validate-modules:doc-missing-type +plugins/modules/avi_vrfcontext.py validate-modules:parameter-list-no-elements +plugins/modules/avi_vrfcontext.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_vsdatascriptset.py validate-modules:doc-missing-type +plugins/modules/avi_vsdatascriptset.py validate-modules:parameter-list-no-elements +plugins/modules/avi_vsdatascriptset.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_vsvip.py validate-modules:doc-missing-type +plugins/modules/avi_vsvip.py validate-modules:parameter-list-no-elements +plugins/modules/avi_vsvip.py validate-modules:parameter-type-not-in-doc +plugins/modules/avi_webhook.py validate-modules:doc-missing-type +plugins/modules/avi_webhook.py validate-modules:parameter-type-not-in-doc +plugins/modules/bcf_switch.py validate-modules:doc-missing-type +plugins/modules/bcf_switch.py validate-modules:parameter-type-not-in-doc +plugins/modules/bigmon_chain.py validate-modules:doc-missing-type +plugins/modules/bigmon_chain.py validate-modules:parameter-type-not-in-doc +plugins/modules/bigmon_policy.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/bigmon_policy.py validate-modules:doc-default-does-not-match-spec +plugins/modules/bigmon_policy.py validate-modules:doc-missing-type +plugins/modules/bigmon_policy.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_aaa_server_host.py validate-modules:doc-missing-type +plugins/modules/ce_aaa_server_host.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_acl.py validate-modules:doc-missing-type +plugins/modules/ce_acl.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_acl_advance.py validate-modules:doc-missing-type +plugins/modules/ce_acl_advance.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_acl_interface.py validate-modules:doc-missing-type +plugins/modules/ce_acl_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bfd_global.py validate-modules:doc-missing-type +plugins/modules/ce_bfd_global.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bfd_session.py validate-modules:doc-missing-type +plugins/modules/ce_bfd_session.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bfd_view.py validate-modules:doc-missing-type +plugins/modules/ce_bfd_view.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bgp.py validate-modules:doc-missing-type +plugins/modules/ce_bgp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bgp_af.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_bgp_af.py validate-modules:doc-missing-type +plugins/modules/ce_bgp_af.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bgp_neighbor.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_bgp_neighbor.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_bgp_neighbor.py validate-modules:doc-missing-type +plugins/modules/ce_bgp_neighbor.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bgp_neighbor.py validate-modules:undocumented-parameter +plugins/modules/ce_bgp_neighbor_af.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_bgp_neighbor_af.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_bgp_neighbor_af.py validate-modules:doc-missing-type +plugins/modules/ce_bgp_neighbor_af.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_bgp_neighbor_af.py validate-modules:undocumented-parameter +plugins/modules/ce_command.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_command.py validate-modules:doc-missing-type +plugins/modules/ce_command.py validate-modules:parameter-list-no-elements +plugins/modules/ce_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_config.py validate-modules:doc-missing-type +plugins/modules/ce_config.py validate-modules:parameter-list-no-elements +plugins/modules/ce_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_config.py validate-modules:undocumented-parameter +plugins/modules/ce_dldp.py validate-modules:nonexistent-parameter-documented +plugins/modules/ce_dldp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_dldp.py validate-modules:undocumented-parameter +plugins/modules/ce_dldp_interface.py validate-modules:doc-missing-type +plugins/modules/ce_dldp_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_eth_trunk.py validate-modules:doc-missing-type +plugins/modules/ce_eth_trunk.py validate-modules:parameter-list-no-elements +plugins/modules/ce_eth_trunk.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_evpn_bd_vni.py validate-modules:doc-missing-type +plugins/modules/ce_evpn_bd_vni.py validate-modules:doc-required-mismatch +plugins/modules/ce_evpn_bd_vni.py validate-modules:parameter-list-no-elements +plugins/modules/ce_evpn_bd_vni.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_evpn_bgp.py validate-modules:doc-missing-type +plugins/modules/ce_evpn_bgp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_evpn_bgp_rr.py validate-modules:doc-missing-type +plugins/modules/ce_evpn_bgp_rr.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_evpn_global.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_facts.py validate-modules:parameter-list-no-elements +plugins/modules/ce_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_file_copy.py validate-modules:doc-missing-type +plugins/modules/ce_info_center_debug.py validate-modules:doc-missing-type +plugins/modules/ce_info_center_debug.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_info_center_global.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_info_center_global.py validate-modules:doc-missing-type +plugins/modules/ce_info_center_global.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_info_center_log.py validate-modules:doc-missing-type +plugins/modules/ce_info_center_log.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_info_center_trap.py validate-modules:doc-missing-type +plugins/modules/ce_info_center_trap.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_interface.py validate-modules:doc-missing-type +plugins/modules/ce_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_interface_ospf.py validate-modules:doc-missing-type +plugins/modules/ce_interface_ospf.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_ip_interface.py validate-modules:doc-missing-type +plugins/modules/ce_ip_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_is_is_view.py validate-modules:doc-required-mismatch +plugins/modules/ce_link_status.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_mlag_config.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_mlag_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_mlag_interface.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_mlag_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_mtu.py validate-modules:doc-missing-type +plugins/modules/ce_mtu.py validate-modules:doc-required-mismatch +plugins/modules/ce_mtu.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_netconf.py validate-modules:doc-missing-type +plugins/modules/ce_netstream_aging.py validate-modules:doc-missing-type +plugins/modules/ce_netstream_aging.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_netstream_export.py validate-modules:doc-missing-type +plugins/modules/ce_netstream_export.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_netstream_global.py validate-modules:doc-missing-type +plugins/modules/ce_netstream_global.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_netstream_template.py validate-modules:doc-missing-type +plugins/modules/ce_netstream_template.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_ntp.py validate-modules:doc-missing-type +plugins/modules/ce_ntp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_ntp_auth.py validate-modules:doc-missing-type +plugins/modules/ce_ntp_auth.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_ospf.py validate-modules:doc-missing-type +plugins/modules/ce_ospf.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_ospf_vrf.py validate-modules:doc-missing-type +plugins/modules/ce_ospf_vrf.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_rollback.py validate-modules:doc-missing-type +plugins/modules/ce_rollback.py validate-modules:doc-required-mismatch +plugins/modules/ce_rollback.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_sflow.py validate-modules:doc-missing-type +plugins/modules/ce_sflow.py validate-modules:parameter-list-no-elements +plugins/modules/ce_sflow.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_community.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_community.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_contact.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_contact.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_location.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_location.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_target_host.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_snmp_target_host.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_snmp_target_host.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_target_host.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_target_host.py validate-modules:undocumented-parameter +plugins/modules/ce_snmp_traps.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_snmp_traps.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_snmp_traps.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_traps.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_traps.py validate-modules:undocumented-parameter +plugins/modules/ce_snmp_user.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ce_snmp_user.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_snmp_user.py validate-modules:doc-missing-type +plugins/modules/ce_snmp_user.py validate-modules:mutually_exclusive-unknown +plugins/modules/ce_snmp_user.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_snmp_user.py validate-modules:undocumented-parameter +plugins/modules/ce_startup.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_startup.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_static_route.py validate-modules:doc-missing-type +plugins/modules/ce_static_route.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_static_route_bfd.py validate-modules:doc-required-mismatch +plugins/modules/ce_static_route_bfd.py validate-modules:parameter-list-no-elements +plugins/modules/ce_stp.py validate-modules:doc-missing-type +plugins/modules/ce_stp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_switchport.py validate-modules:doc-missing-type +plugins/modules/ce_switchport.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vlan.py validate-modules:doc-missing-type +plugins/modules/ce_vlan.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vrf.py validate-modules:doc-missing-type +plugins/modules/ce_vrf.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vrf_af.py validate-modules:doc-missing-type +plugins/modules/ce_vrf_af.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vrf_interface.py validate-modules:doc-missing-type +plugins/modules/ce_vrf_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vrrp.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ce_vrrp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vxlan_arp.py validate-modules:doc-missing-type +plugins/modules/ce_vxlan_arp.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vxlan_gateway.py validate-modules:doc-missing-type +plugins/modules/ce_vxlan_gateway.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vxlan_global.py validate-modules:doc-missing-type +plugins/modules/ce_vxlan_global.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vxlan_tunnel.py validate-modules:doc-missing-type +plugins/modules/ce_vxlan_tunnel.py validate-modules:parameter-list-no-elements +plugins/modules/ce_vxlan_tunnel.py validate-modules:parameter-type-not-in-doc +plugins/modules/ce_vxlan_vap.py validate-modules:doc-missing-type +plugins/modules/ce_vxlan_vap.py validate-modules:parameter-type-not-in-doc +plugins/modules/cv_server_provision.py validate-modules:doc-missing-type +plugins/modules/cv_server_provision.py validate-modules:doc-required-mismatch +plugins/modules/cv_server_provision.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/cnos_backup.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_backup.py validate-modules:doc-missing-type +plugins/modules/cnos_backup.py validate-modules:doc-required-mismatch +plugins/modules/cnos_backup.py validate-modules:nonexistent-parameter-documented +plugins/modules/cnos_backup.py validate-modules:undocumented-parameter +plugins/modules/cnos_backup.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_banner.py validate-modules:doc-missing-type +plugins/modules/cnos_bgp.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_bgp.py validate-modules:doc-missing-type +plugins/modules/cnos_bgp.py validate-modules:doc-required-mismatch +plugins/modules/cnos_bgp.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_command.py validate-modules:doc-missing-type +plugins/modules/cnos_command.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_conditional_command.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_conditional_command.py validate-modules:doc-missing-type +plugins/modules/cnos_conditional_command.py validate-modules:doc-required-mismatch +plugins/modules/cnos_conditional_command.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_conditional_template.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_conditional_template.py validate-modules:doc-missing-type +plugins/modules/cnos_conditional_template.py validate-modules:doc-required-mismatch +plugins/modules/cnos_conditional_template.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_config.py validate-modules:doc-missing-type +plugins/modules/cnos_config.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_config.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_factory.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_factory.py validate-modules:doc-required-mismatch +plugins/modules/cnos_factory.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_facts.py validate-modules:nonexistent-parameter-documented +plugins/modules/cnos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_facts.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_image.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_image.py validate-modules:doc-missing-type +plugins/modules/cnos_image.py validate-modules:doc-required-mismatch +plugins/modules/cnos_image.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_interface.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_interface.py validate-modules:doc-missing-type +plugins/modules/cnos_interface.py validate-modules:doc-required-mismatch +plugins/modules/cnos_interface.py validate-modules:missing-suboption-docs +plugins/modules/cnos_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_interface.py validate-modules:undocumented-parameter +plugins/modules/cnos_l2_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_l2_interface.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_l2_interface.py validate-modules:doc-missing-type +plugins/modules/cnos_l2_interface.py validate-modules:doc-required-mismatch +plugins/modules/cnos_l2_interface.py validate-modules:missing-suboption-docs +plugins/modules/cnos_l2_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_l2_interface.py validate-modules:undocumented-parameter +plugins/modules/cnos_l3_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_l3_interface.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_l3_interface.py validate-modules:doc-missing-type +plugins/modules/cnos_l3_interface.py validate-modules:doc-required-mismatch +plugins/modules/cnos_l3_interface.py validate-modules:missing-suboption-docs +plugins/modules/cnos_l3_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_l3_interface.py validate-modules:undocumented-parameter +plugins/modules/cnos_linkagg.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_linkagg.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_linkagg.py validate-modules:doc-missing-type +plugins/modules/cnos_linkagg.py validate-modules:doc-required-mismatch +plugins/modules/cnos_linkagg.py validate-modules:missing-suboption-docs +plugins/modules/cnos_linkagg.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_linkagg.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_linkagg.py validate-modules:undocumented-parameter +plugins/modules/cnos_lldp.py validate-modules:doc-missing-type +plugins/modules/cnos_logging.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_logging.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_logging.py validate-modules:doc-missing-type +plugins/modules/cnos_logging.py validate-modules:missing-suboption-docs +plugins/modules/cnos_logging.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_logging.py validate-modules:undocumented-parameter +plugins/modules/cnos_reload.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_reload.py validate-modules:doc-required-mismatch +plugins/modules/cnos_reload.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_rollback.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_rollback.py validate-modules:doc-missing-type +plugins/modules/cnos_rollback.py validate-modules:doc-required-mismatch +plugins/modules/cnos_rollback.py validate-modules:nonexistent-parameter-documented +plugins/modules/cnos_rollback.py validate-modules:undocumented-parameter +plugins/modules/cnos_rollback.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_save.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_save.py validate-modules:doc-required-mismatch +plugins/modules/cnos_save.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_showrun.py validate-modules:doc-required-mismatch +plugins/modules/cnos_showrun.py validate-modules:nonexistent-parameter-documented +plugins/modules/cnos_showrun.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_static_route.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_static_route.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_static_route.py validate-modules:doc-missing-type +plugins/modules/cnos_static_route.py validate-modules:doc-required-mismatch +plugins/modules/cnos_static_route.py validate-modules:missing-suboption-docs +plugins/modules/cnos_static_route.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_static_route.py validate-modules:undocumented-parameter +plugins/modules/cnos_system.py validate-modules:doc-missing-type +plugins/modules/cnos_system.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_system.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_template.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_template.py validate-modules:doc-missing-type +plugins/modules/cnos_template.py validate-modules:doc-required-mismatch +plugins/modules/cnos_template.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_user.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_user.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_user.py validate-modules:doc-missing-type +plugins/modules/cnos_user.py validate-modules:missing-suboption-docs +plugins/modules/cnos_user.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_user.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_user.py validate-modules:undocumented-parameter +plugins/modules/cnos_vlag.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_vlag.py validate-modules:doc-missing-type +plugins/modules/cnos_vlag.py validate-modules:doc-required-mismatch +plugins/modules/cnos_vlag.py yamllint:unparsable-with-libyaml +plugins/modules/cnos_vlan.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_vlan.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_vlan.py validate-modules:doc-missing-type +plugins/modules/cnos_vlan.py validate-modules:doc-required-mismatch +plugins/modules/cnos_vlan.py validate-modules:missing-suboption-docs +plugins/modules/cnos_vlan.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_vlan.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_vlan.py validate-modules:undocumented-parameter +plugins/modules/cnos_vrf.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cnos_vrf.py validate-modules:doc-elements-mismatch +plugins/modules/cnos_vrf.py validate-modules:doc-missing-type +plugins/modules/cnos_vrf.py validate-modules:doc-required-mismatch +plugins/modules/cnos_vrf.py validate-modules:missing-suboption-docs +plugins/modules/cnos_vrf.py validate-modules:parameter-list-no-elements +plugins/modules/cnos_vrf.py validate-modules:parameter-type-not-in-doc +plugins/modules/cnos_vrf.py validate-modules:undocumented-parameter +plugins/modules/nclu.py validate-modules:parameter-list-no-elements +plugins/modules/nclu.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeos_command.py validate-modules:doc-missing-type +plugins/modules/edgeos_command.py validate-modules:parameter-list-no-elements +plugins/modules/edgeos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeos_config.py validate-modules:doc-missing-type +plugins/modules/edgeos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/edgeos_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeswitch_facts.py validate-modules:parameter-list-no-elements +plugins/modules/edgeswitch_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeswitch_vlan.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/edgeswitch_vlan.py validate-modules:doc-elements-mismatch +plugins/modules/edgeswitch_vlan.py validate-modules:doc-missing-type +plugins/modules/edgeswitch_vlan.py validate-modules:doc-required-mismatch +plugins/modules/edgeswitch_vlan.py validate-modules:missing-suboption-docs +plugins/modules/edgeswitch_vlan.py validate-modules:parameter-list-no-elements +plugins/modules/edgeswitch_vlan.py validate-modules:parameter-type-not-in-doc +plugins/modules/edgeswitch_vlan.py validate-modules:undocumented-parameter +plugins/modules/enos_command.py validate-modules:doc-missing-type +plugins/modules/enos_command.py validate-modules:nonexistent-parameter-documented +plugins/modules/enos_command.py validate-modules:parameter-list-no-elements +plugins/modules/enos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/enos_config.py validate-modules:doc-missing-type +plugins/modules/enos_config.py validate-modules:nonexistent-parameter-documented +plugins/modules/enos_config.py validate-modules:parameter-list-no-elements +plugins/modules/enos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/enos_facts.py validate-modules:nonexistent-parameter-documented +plugins/modules/enos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/enos_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/enos_facts.py yamllint:unparsable-with-libyaml +plugins/modules/eric_eccli_command.py validate-modules:parameter-list-no-elements +plugins/modules/exos_command.py validate-modules:doc-missing-type +plugins/modules/exos_command.py validate-modules:parameter-list-no-elements +plugins/modules/exos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/exos_config.py validate-modules:doc-missing-type +plugins/modules/exos_config.py validate-modules:parameter-list-no-elements +plugins/modules/exos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/exos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/exos_l2_interfaces.py validate-modules:parameter-list-no-elements +plugins/modules/icx_command.py validate-modules:parameter-list-no-elements +plugins/modules/icx_config.py validate-modules:parameter-list-no-elements +plugins/modules/icx_facts.py validate-modules:parameter-list-no-elements +plugins/modules/icx_interface.py validate-modules:doc-required-mismatch +plugins/modules/icx_l3_interface.py validate-modules:doc-required-mismatch +plugins/modules/icx_linkagg.py validate-modules:doc-elements-mismatch +plugins/modules/icx_linkagg.py validate-modules:doc-required-mismatch +plugins/modules/icx_linkagg.py validate-modules:parameter-list-no-elements +plugins/modules/icx_lldp.py validate-modules:doc-elements-mismatch +plugins/modules/icx_lldp.py validate-modules:parameter-list-no-elements +plugins/modules/icx_logging.py validate-modules:doc-elements-mismatch +plugins/modules/icx_logging.py validate-modules:parameter-list-no-elements +plugins/modules/icx_static_route.py validate-modules:doc-required-mismatch +plugins/modules/icx_system.py validate-modules:doc-elements-mismatch +plugins/modules/icx_system.py validate-modules:parameter-list-no-elements +plugins/modules/icx_user.py validate-modules:doc-required-mismatch +plugins/modules/icx_vlan.py validate-modules:doc-elements-mismatch +plugins/modules/icx_vlan.py validate-modules:doc-required-mismatch +plugins/modules/icx_vlan.py validate-modules:parameter-list-no-elements +plugins/modules/dladm_etherstub.py validate-modules:doc-missing-type +plugins/modules/dladm_iptun.py validate-modules:doc-missing-type +plugins/modules/dladm_iptun.py validate-modules:parameter-type-not-in-doc +plugins/modules/dladm_linkprop.py validate-modules:doc-missing-type +plugins/modules/dladm_linkprop.py validate-modules:no-default-for-required-parameter +plugins/modules/dladm_linkprop.py validate-modules:parameter-type-not-in-doc +plugins/modules/dladm_vlan.py validate-modules:doc-default-does-not-match-spec +plugins/modules/dladm_vlan.py validate-modules:doc-missing-type +plugins/modules/dladm_vlan.py validate-modules:doc-required-mismatch +plugins/modules/dladm_vlan.py validate-modules:parameter-type-not-in-doc +plugins/modules/dladm_vnic.py validate-modules:doc-default-does-not-match-spec +plugins/modules/flowadm.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/flowadm.py validate-modules:doc-missing-type +plugins/modules/ipadm_addr.py validate-modules:doc-missing-type +plugins/modules/ipadm_addr.py validate-modules:parameter-type-not-in-doc +plugins/modules/ipadm_addrprop.py validate-modules:doc-missing-type +plugins/modules/ipadm_addrprop.py validate-modules:no-default-for-required-parameter +plugins/modules/ipadm_if.py validate-modules:doc-missing-type +plugins/modules/ipadm_ifprop.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ipadm_ifprop.py validate-modules:doc-missing-type +plugins/modules/ipadm_ifprop.py validate-modules:no-default-for-required-parameter +plugins/modules/ipadm_prop.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/ipadm_prop.py validate-modules:doc-missing-type +plugins/modules/ig_config.py validate-modules:doc-missing-type +plugins/modules/ig_config.py validate-modules:doc-required-mismatch +plugins/modules/ig_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/ig_config.py validate-modules:return-syntax-error +plugins/modules/ig_unit_information.py validate-modules:doc-required-mismatch +plugins/modules/ig_unit_information.py validate-modules:parameter-type-not-in-doc +plugins/modules/ironware_command.py validate-modules:doc-missing-type +plugins/modules/ironware_command.py validate-modules:nonexistent-parameter-documented +plugins/modules/ironware_command.py validate-modules:parameter-list-no-elements +plugins/modules/ironware_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/ironware_config.py validate-modules:doc-missing-type +plugins/modules/ironware_config.py validate-modules:nonexistent-parameter-documented +plugins/modules/ironware_config.py validate-modules:parameter-list-no-elements +plugins/modules/ironware_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/ironware_facts.py validate-modules:nonexistent-parameter-documented +plugins/modules/ironware_facts.py validate-modules:parameter-list-no-elements +plugins/modules/ironware_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/iap_start_workflow.py validate-modules:doc-required-mismatch +plugins/modules/iap_token.py validate-modules:parameter-type-not-in-doc +plugins/modules/netact_cm_command.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/netact_cm_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_cs_action.py pylint:condition-evals-to-constant # Should be fixed +plugins/modules/netscaler_cs_action.py validate-modules:nonexistent-parameter-documented +plugins/modules/netscaler_cs_action.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_cs_policy.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_cs_vserver.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/netscaler_cs_vserver.py validate-modules:nonexistent-parameter-documented +plugins/modules/netscaler_cs_vserver.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_cs_vserver.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_cs_vserver.py validate-modules:undocumented-parameter +plugins/modules/netscaler_gslb_service.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_gslb_service.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_gslb_site.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_gslb_vserver.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_gslb_vserver.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_gslb_vserver.py validate-modules:undocumented-parameter +plugins/modules/netscaler_lb_monitor.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/netscaler_lb_monitor.py validate-modules:nonexistent-parameter-documented +plugins/modules/netscaler_lb_monitor.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_lb_monitor.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_lb_vserver.py validate-modules:nonexistent-parameter-documented +plugins/modules/netscaler_lb_vserver.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_lb_vserver.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_nitro_request.py pylint:ansible-bad-function +plugins/modules/netscaler_nitro_request.py validate-modules:doc-missing-type +plugins/modules/netscaler_nitro_request.py validate-modules:doc-required-mismatch +plugins/modules/netscaler_nitro_request.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_nitro_request.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_save_config.py validate-modules:doc-missing-type +plugins/modules/netscaler_save_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_server.py validate-modules:doc-default-does-not-match-spec +plugins/modules/netscaler_server.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_service.py validate-modules:nonexistent-parameter-documented +plugins/modules/netscaler_service.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_service.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_servicegroup.py validate-modules:parameter-list-no-elements +plugins/modules/netscaler_servicegroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/netscaler_ssl_certkey.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_access_list.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_access_list.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_access_list_ip.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_access_list_ip.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_admin_service.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_admin_session_timeout.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_admin_syslog.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_connection_stats_settings.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_cpu_class.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_cpu_class.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_cpu_mgmt_class.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_dhcp_filter.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_dscp_map.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_dscp_map.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_dscp_map_pri_map.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_fabric_local.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_fabric_local.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_igmp_snooping.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_igmp_snooping.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_ipv6security_raguard.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_ipv6security_raguard_port.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_ipv6security_raguard_vlan.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_log_audit_exception.py validate-modules:doc-required-mismatch +plugins/modules/pn_log_audit_exception.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_port_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_port_config.py validate-modules:required_one_of-unknown +plugins/modules/pn_port_cos_bw.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_port_cos_rate_setting.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_prefix_list.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_prefix_list_network.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_role.py validate-modules:doc-required-mismatch +plugins/modules/pn_role.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_snmp_community.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_snmp_community.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_snmp_trap_sink.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_snmp_vacm.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_stp.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_stp_port.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_switch_setup.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_user.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vflow_table_profile.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_bgp.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_bgp.py validate-modules:parameter-type-not-in-doc +plugins/modules/pn_vrouter_bgp_network.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_interface_ip.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_loopback_interface.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_ospf.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_ospf6.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_packet_relay.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vrouter_pim_config.py validate-modules:doc-required-mismatch +plugins/modules/pn_vrouter_pim_config.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/pn_vtep.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/nos_command.py validate-modules:doc-missing-type +plugins/modules/nos_command.py validate-modules:parameter-list-no-elements +plugins/modules/nos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/nos_config.py validate-modules:doc-missing-type +plugins/modules/nos_config.py validate-modules:parameter-list-no-elements +plugins/modules/nos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/nos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/nos_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/nuage_vspk.py validate-modules:doc-required-mismatch +plugins/modules/nuage_vspk.py validate-modules:missing-suboption-docs +plugins/modules/nuage_vspk.py validate-modules:parameter-list-no-elements +plugins/modules/nuage_vspk.py validate-modules:parameter-type-not-in-doc +plugins/modules/nuage_vspk.py validate-modules:undocumented-parameter +plugins/modules/opx_cps.py validate-modules:doc-required-mismatch +plugins/modules/opx_cps.py validate-modules:parameter-type-not-in-doc +plugins/modules/ordnance_config.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ordnance_config.py validate-modules:doc-missing-type +plugins/modules/ordnance_config.py validate-modules:doc-required-mismatch +plugins/modules/ordnance_config.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/ordnance_config.py validate-modules:parameter-list-no-elements +plugins/modules/ordnance_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/ordnance_config.py validate-modules:undocumented-parameter +plugins/modules/ordnance_config.py yamllint:unparsable-with-libyaml +plugins/modules/ordnance_facts.py validate-modules:doc-default-does-not-match-spec +plugins/modules/ordnance_facts.py validate-modules:doc-missing-type +plugins/modules/ordnance_facts.py validate-modules:doc-required-mismatch +plugins/modules/ordnance_facts.py validate-modules:invalid-ansiblemodule-schema +plugins/modules/ordnance_facts.py validate-modules:parameter-list-no-elements +plugins/modules/ordnance_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/ordnance_facts.py validate-modules:undocumented-parameter +plugins/modules/ordnance_facts.py yamllint:unparsable-with-libyaml +plugins/modules/vdirect_commit.py validate-modules:doc-missing-type +plugins/modules/vdirect_commit.py validate-modules:parameter-list-no-elements +plugins/modules/vdirect_commit.py validate-modules:parameter-type-not-in-doc +plugins/modules/vdirect_file.py validate-modules:doc-missing-type +plugins/modules/vdirect_file.py validate-modules:parameter-type-not-in-doc +plugins/modules/vdirect_runnable.py validate-modules:doc-missing-type +plugins/modules/vdirect_runnable.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_command.py validate-modules:doc-missing-type +plugins/modules/slxos_command.py validate-modules:parameter-list-no-elements +plugins/modules/slxos_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_config.py validate-modules:doc-missing-type +plugins/modules/slxos_config.py validate-modules:parameter-list-no-elements +plugins/modules/slxos_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_facts.py validate-modules:parameter-list-no-elements +plugins/modules/slxos_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/slxos_interface.py validate-modules:doc-elements-mismatch +plugins/modules/slxos_interface.py validate-modules:doc-missing-type +plugins/modules/slxos_interface.py validate-modules:doc-required-mismatch +plugins/modules/slxos_interface.py validate-modules:missing-suboption-docs +plugins/modules/slxos_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_interface.py validate-modules:undocumented-parameter +plugins/modules/slxos_l2_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/slxos_l2_interface.py validate-modules:doc-elements-mismatch +plugins/modules/slxos_l2_interface.py validate-modules:doc-missing-type +plugins/modules/slxos_l2_interface.py validate-modules:doc-required-mismatch +plugins/modules/slxos_l2_interface.py validate-modules:missing-suboption-docs +plugins/modules/slxos_l2_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_l2_interface.py validate-modules:undocumented-parameter +plugins/modules/slxos_l3_interface.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/slxos_l3_interface.py validate-modules:doc-elements-mismatch +plugins/modules/slxos_l3_interface.py validate-modules:doc-missing-type +plugins/modules/slxos_l3_interface.py validate-modules:doc-required-mismatch +plugins/modules/slxos_l3_interface.py validate-modules:missing-suboption-docs +plugins/modules/slxos_l3_interface.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_l3_interface.py validate-modules:undocumented-parameter +plugins/modules/slxos_linkagg.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/slxos_linkagg.py validate-modules:doc-elements-mismatch +plugins/modules/slxos_linkagg.py validate-modules:doc-missing-type +plugins/modules/slxos_linkagg.py validate-modules:doc-required-mismatch +plugins/modules/slxos_linkagg.py validate-modules:missing-suboption-docs +plugins/modules/slxos_linkagg.py validate-modules:parameter-list-no-elements +plugins/modules/slxos_linkagg.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_linkagg.py validate-modules:undocumented-parameter +plugins/modules/slxos_lldp.py validate-modules:doc-missing-type +plugins/modules/slxos_vlan.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/slxos_vlan.py validate-modules:doc-elements-mismatch +plugins/modules/slxos_vlan.py validate-modules:doc-missing-type +plugins/modules/slxos_vlan.py validate-modules:doc-required-mismatch +plugins/modules/slxos_vlan.py validate-modules:missing-suboption-docs +plugins/modules/slxos_vlan.py validate-modules:parameter-list-no-elements +plugins/modules/slxos_vlan.py validate-modules:parameter-type-not-in-doc +plugins/modules/slxos_vlan.py validate-modules:undocumented-parameter +plugins/modules/sros_command.py validate-modules:collection-deprecated-version +plugins/modules/sros_command.py validate-modules:doc-missing-type +plugins/modules/sros_command.py validate-modules:parameter-list-no-elements +plugins/modules/sros_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/sros_config.py validate-modules:collection-deprecated-version +plugins/modules/sros_config.py validate-modules:doc-missing-type +plugins/modules/sros_config.py validate-modules:nonexistent-parameter-documented +plugins/modules/sros_config.py validate-modules:parameter-list-no-elements +plugins/modules/sros_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/sros_rollback.py validate-modules:collection-deprecated-version +plugins/modules/sros_rollback.py validate-modules:doc-missing-type +plugins/modules/sros_rollback.py validate-modules:parameter-type-not-in-doc +plugins/modules/voss_command.py validate-modules:doc-missing-type +plugins/modules/voss_command.py validate-modules:parameter-list-no-elements +plugins/modules/voss_command.py validate-modules:parameter-type-not-in-doc +plugins/modules/voss_config.py validate-modules:doc-missing-type +plugins/modules/voss_config.py validate-modules:parameter-list-no-elements +plugins/modules/voss_config.py validate-modules:parameter-type-not-in-doc +plugins/modules/voss_facts.py validate-modules:parameter-list-no-elements +plugins/modules/voss_facts.py validate-modules:parameter-type-not-in-doc +tests/unit/plugins/modules/test_edgeswitch_facts.py pylint:use-maxsplit-arg +tests/unit/plugins/modules/test_edgeswitch_vlan.py pylint:use-maxsplit-arg +tests/unit/plugins/modules/test_icx_ping.py pylint:use-maxsplit-arg +tests/unit/plugins/modules/test_ironware_config.py pylint:arguments-renamed +tests/unit/plugins/modules/test_ironware_facts.py pylint:use-maxsplit-arg +tests/unit/plugins/modules/test_netscaler_cs_action.py pylint:invalid-class-object +tests/unit/plugins/modules/test_netscaler_cs_vserver.py pylint:invalid-class-object +tests/unit/plugins/modules/test_netscaler_lb_vserver.py pylint:invalid-class-object +tests/unit/plugins/modules/test_netscaler_server.py pylint:invalid-class-object +tests/unit/plugins/modules/test_netscaler_service.py pylint:invalid-class-object +tests/unit/plugins/modules/test_netscaler_servicegroup.py pylint:invalid-class-object +tests/unit/plugins/modules/test_netscaler_ssl_certkey.py pylint:invalid-class-object +tests/unit/plugins/modules/test_nos_facts.py pylint:use-maxsplit-arg +tests/unit/plugins/modules/test_slxos_facts.py pylint:use-maxsplit-arg +tests/unit/plugins/modules/test_voss_facts.py pylint:use-maxsplit-arg diff --git a/ansible_collections/community/network/tests/unit/__init__.py b/ansible_collections/community/network/tests/unit/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/__init__.py diff --git a/ansible_collections/community/network/tests/unit/compat/__init__.py b/ansible_collections/community/network/tests/unit/compat/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/compat/__init__.py diff --git a/ansible_collections/community/network/tests/unit/compat/builtins.py b/ansible_collections/community/network/tests/unit/compat/builtins.py new file mode 100644 index 000000000..f60ee6782 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/compat/builtins.py @@ -0,0 +1,33 @@ +# (c) 2014, Toshio Kuratomi <tkuratomi@ansible.com> +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +# +# Compat for python2.7 +# + +# One unittest needs to import builtins via __import__() so we need to have +# the string that represents it +try: + import __builtin__ +except ImportError: + BUILTINS = 'builtins' +else: + BUILTINS = '__builtin__' diff --git a/ansible_collections/community/network/tests/unit/compat/mock.py b/ansible_collections/community/network/tests/unit/compat/mock.py new file mode 100644 index 000000000..0972cd2e8 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/compat/mock.py @@ -0,0 +1,122 @@ +# (c) 2014, Toshio Kuratomi <tkuratomi@ansible.com> +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +''' +Compat module for Python3.x's unittest.mock module +''' +import sys + +# Python 2.7 + +# Note: Could use the pypi mock library on python3.x as well as python2.x. It +# is the same as the python3 stdlib mock library + +try: + # Allow wildcard import because we really do want to import all of mock's + # symbols into this compat shim + # pylint: disable=wildcard-import,unused-wildcard-import + from unittest.mock import * +except ImportError: + # Python 2 + # pylint: disable=wildcard-import,unused-wildcard-import + try: + from mock import * + except ImportError: + print('You need the mock library installed on python2.x to run tests') + + +# Prior to 3.4.4, mock_open cannot handle binary read_data +if sys.version_info >= (3,) and sys.version_info < (3, 4, 4): + file_spec = None + + def _iterate_read_data(read_data): + # Helper for mock_open: + # Retrieve lines from read_data via a generator so that separate calls to + # readline, read, and readlines are properly interleaved + sep = b'\n' if isinstance(read_data, bytes) else '\n' + data_as_list = [l + sep for l in read_data.split(sep)] + + if data_as_list[-1] == sep: + # If the last line ended in a newline, the list comprehension will have an + # extra entry that's just a newline. Remove this. + data_as_list = data_as_list[:-1] + else: + # If there wasn't an extra newline by itself, then the file being + # emulated doesn't have a newline to end the last line remove the + # newline that our naive format() added + data_as_list[-1] = data_as_list[-1][:-1] + + for line in data_as_list: + yield line + + def mock_open(mock=None, read_data=''): + """ + A helper function to create a mock to replace the use of `open`. It works + for `open` called directly or used as a context manager. + + The `mock` argument is the mock object to configure. If `None` (the + default) then a `MagicMock` will be created for you, with the API limited + to methods or attributes available on standard file handles. + + `read_data` is a string for the `read` methoddline`, and `readlines` of the + file handle to return. This is an empty string by default. + """ + def _readlines_side_effect(*args, **kwargs): + if handle.readlines.return_value is not None: + return handle.readlines.return_value + return list(_data) + + def _read_side_effect(*args, **kwargs): + if handle.read.return_value is not None: + return handle.read.return_value + return type(read_data)().join(_data) + + def _readline_side_effect(): + if handle.readline.return_value is not None: + while True: + yield handle.readline.return_value + for line in _data: + yield line + + global file_spec + if file_spec is None: + import _io + file_spec = list(set(dir(_io.TextIOWrapper)).union(set(dir(_io.BytesIO)))) + + if mock is None: + mock = MagicMock(name='open', spec=open) + + handle = MagicMock(spec=file_spec) + handle.__enter__.return_value = handle + + _data = _iterate_read_data(read_data) + + handle.write.return_value = None + handle.read.return_value = None + handle.readline.return_value = None + handle.readlines.return_value = None + + handle.read.side_effect = _read_side_effect + handle.readline.side_effect = _readline_side_effect() + handle.readlines.side_effect = _readlines_side_effect + + mock.return_value = handle + return mock diff --git a/ansible_collections/community/network/tests/unit/compat/unittest.py b/ansible_collections/community/network/tests/unit/compat/unittest.py new file mode 100644 index 000000000..98f08ad6a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/compat/unittest.py @@ -0,0 +1,38 @@ +# (c) 2014, Toshio Kuratomi <tkuratomi@ansible.com> +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +''' +Compat module for Python2.7's unittest module +''' + +import sys + +# Allow wildcard import because we really do want to import all of +# unittests's symbols into this compat shim +# pylint: disable=wildcard-import,unused-wildcard-import +if sys.version_info < (2, 7): + try: + # Need unittest2 on python2.6 + from unittest2 import * + except ImportError: + print('You need unittest2 installed on python2.6.x to run tests') +else: + from unittest import * diff --git a/ansible_collections/community/network/tests/unit/mock/__init__.py b/ansible_collections/community/network/tests/unit/mock/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/mock/__init__.py diff --git a/ansible_collections/community/network/tests/unit/mock/loader.py b/ansible_collections/community/network/tests/unit/mock/loader.py new file mode 100644 index 000000000..00a584127 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/mock/loader.py @@ -0,0 +1,116 @@ +# (c) 2012-2014, Michael DeHaan <michael.dehaan@gmail.com> +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os + +from ansible.errors import AnsibleParserError +from ansible.parsing.dataloader import DataLoader +from ansible.module_utils._text import to_bytes, to_text + + +class DictDataLoader(DataLoader): + + def __init__(self, file_mapping=None): + file_mapping = {} if file_mapping is None else file_mapping + assert type(file_mapping) == dict + + super(DictDataLoader, self).__init__() + + self._file_mapping = file_mapping + self._build_known_directories() + self._vault_secrets = None + + def load_from_file(self, path, cache=True, unsafe=False): + path = to_text(path) + if path in self._file_mapping: + return self.load(self._file_mapping[path], path) + return None + + # TODO: the real _get_file_contents returns a bytestring, so we actually convert the + # unicode/text it's created with to utf-8 + def _get_file_contents(self, file_name): + file_name = to_text(file_name) + if file_name in self._file_mapping: + return (to_bytes(self._file_mapping[file_name]), False) + else: + raise AnsibleParserError("file not found: %s" % file_name) + + def path_exists(self, path): + path = to_text(path) + return path in self._file_mapping or path in self._known_directories + + def is_file(self, path): + path = to_text(path) + return path in self._file_mapping + + def is_directory(self, path): + path = to_text(path) + return path in self._known_directories + + def list_directory(self, path): + ret = [] + path = to_text(path) + for x in (list(self._file_mapping.keys()) + self._known_directories): + if x.startswith(path): + if os.path.dirname(x) == path: + ret.append(os.path.basename(x)) + return ret + + def is_executable(self, path): + # FIXME: figure out a way to make paths return true for this + return False + + def _add_known_directory(self, directory): + if directory not in self._known_directories: + self._known_directories.append(directory) + + def _build_known_directories(self): + self._known_directories = [] + for path in self._file_mapping: + dirname = os.path.dirname(path) + while dirname not in ('/', ''): + self._add_known_directory(dirname) + dirname = os.path.dirname(dirname) + + def push(self, path, content): + rebuild_dirs = False + if path not in self._file_mapping: + rebuild_dirs = True + + self._file_mapping[path] = content + + if rebuild_dirs: + self._build_known_directories() + + def pop(self, path): + if path in self._file_mapping: + del self._file_mapping[path] + self._build_known_directories() + + def clear(self): + self._file_mapping = dict() + self._known_directories = [] + + def get_basedir(self): + return os.getcwd() + + def set_vault_secrets(self, vault_secrets): + self._vault_secrets = vault_secrets diff --git a/ansible_collections/community/network/tests/unit/mock/path.py b/ansible_collections/community/network/tests/unit/mock/path.py new file mode 100644 index 000000000..bd420c510 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/mock/path.py @@ -0,0 +1,8 @@ +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import MagicMock +from ansible.utils.path import unfrackpath + + +mock_unfrackpath_noop = MagicMock(spec_set=unfrackpath, side_effect=lambda x, *args, **kwargs: x) diff --git a/ansible_collections/community/network/tests/unit/mock/procenv.py b/ansible_collections/community/network/tests/unit/mock/procenv.py new file mode 100644 index 000000000..c79e8a905 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/mock/procenv.py @@ -0,0 +1,90 @@ +# (c) 2016, Matt Davis <mdavis@ansible.com> +# (c) 2016, Toshio Kuratomi <tkuratomi@ansible.com> +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import sys +import json + +from contextlib import contextmanager +from io import BytesIO, StringIO +from ansible_collections.community.network.tests.unit.compat import unittest +from ansible.module_utils.six import PY3 +from ansible.module_utils._text import to_bytes + + +@contextmanager +def swap_stdin_and_argv(stdin_data='', argv_data=tuple()): + """ + context manager that temporarily masks the test runner's values for stdin and argv + """ + real_stdin = sys.stdin + real_argv = sys.argv + + if PY3: + fake_stream = StringIO(stdin_data) + fake_stream.buffer = BytesIO(to_bytes(stdin_data)) + else: + fake_stream = BytesIO(to_bytes(stdin_data)) + + try: + sys.stdin = fake_stream + sys.argv = argv_data + + yield + finally: + sys.stdin = real_stdin + sys.argv = real_argv + + +@contextmanager +def swap_stdout(): + """ + context manager that temporarily replaces stdout for tests that need to verify output + """ + old_stdout = sys.stdout + + if PY3: + fake_stream = StringIO() + else: + fake_stream = BytesIO() + + try: + sys.stdout = fake_stream + + yield fake_stream + finally: + sys.stdout = old_stdout + + +class ModuleTestCase(unittest.TestCase): + def setUp(self, module_args=None): + if module_args is None: + module_args = {'_ansible_remote_tmp': '/tmp', '_ansible_keep_remote_files': False} + + args = json.dumps(dict(ANSIBLE_MODULE_ARGS=module_args)) + + # unittest doesn't have a clean place to use a context manager, so we have to enter/exit manually + self.stdin_swap = swap_stdin_and_argv(stdin_data=args) + self.stdin_swap.__enter__() + + def tearDown(self): + # unittest doesn't have a clean place to use a context manager, so we have to enter/exit manually + self.stdin_swap.__exit__(None, None, None) diff --git a/ansible_collections/community/network/tests/unit/mock/vault_helper.py b/ansible_collections/community/network/tests/unit/mock/vault_helper.py new file mode 100644 index 000000000..dcce9c784 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/mock/vault_helper.py @@ -0,0 +1,39 @@ +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible.module_utils._text import to_bytes + +from ansible.parsing.vault import VaultSecret + + +class TextVaultSecret(VaultSecret): + '''A secret piece of text. ie, a password. Tracks text encoding. + + The text encoding of the text may not be the default text encoding so + we keep track of the encoding so we encode it to the same bytes.''' + + def __init__(self, text, encoding=None, errors=None, _bytes=None): + super(TextVaultSecret, self).__init__() + self.text = text + self.encoding = encoding or 'utf-8' + self._bytes = _bytes + self.errors = errors or 'strict' + + @property + def bytes(self): + '''The text encoded with encoding, unless we specifically set _bytes.''' + return self._bytes or to_bytes(self.text, encoding=self.encoding, errors=self.errors) diff --git a/ansible_collections/community/network/tests/unit/mock/yaml_helper.py b/ansible_collections/community/network/tests/unit/mock/yaml_helper.py new file mode 100644 index 000000000..bf0aa8d8e --- /dev/null +++ b/ansible_collections/community/network/tests/unit/mock/yaml_helper.py @@ -0,0 +1,124 @@ +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +import io +import yaml + +from ansible.module_utils.six import PY3 +from ansible.parsing.yaml.loader import AnsibleLoader +from ansible.parsing.yaml.dumper import AnsibleDumper + + +class YamlTestUtils(object): + """Mixin class to combine with a unittest.TestCase subclass.""" + def _loader(self, stream): + """Vault related tests will want to override this. + + Vault cases should setup a AnsibleLoader that has the vault password.""" + return AnsibleLoader(stream) + + def _dump_stream(self, obj, stream, dumper=None): + """Dump to a py2-unicode or py3-string stream.""" + if PY3: + return yaml.dump(obj, stream, Dumper=dumper) + else: + return yaml.dump(obj, stream, Dumper=dumper, encoding=None) + + def _dump_string(self, obj, dumper=None): + """Dump to a py2-unicode or py3-string""" + if PY3: + return yaml.dump(obj, Dumper=dumper) + else: + return yaml.dump(obj, Dumper=dumper, encoding=None) + + def _dump_load_cycle(self, obj): + # Each pass though a dump or load revs the 'generation' + # obj to yaml string + string_from_object_dump = self._dump_string(obj, dumper=AnsibleDumper) + + # wrap a stream/file like StringIO around that yaml + stream_from_object_dump = io.StringIO(string_from_object_dump) + loader = self._loader(stream_from_object_dump) + # load the yaml stream to create a new instance of the object (gen 2) + obj_2 = loader.get_data() + + # dump the gen 2 objects directory to strings + string_from_object_dump_2 = self._dump_string(obj_2, + dumper=AnsibleDumper) + + # The gen 1 and gen 2 yaml strings + self.assertEqual(string_from_object_dump, string_from_object_dump_2) + # the gen 1 (orig) and gen 2 py object + self.assertEqual(obj, obj_2) + + # again! gen 3... load strings into py objects + stream_3 = io.StringIO(string_from_object_dump_2) + loader_3 = self._loader(stream_3) + obj_3 = loader_3.get_data() + + string_from_object_dump_3 = self._dump_string(obj_3, dumper=AnsibleDumper) + + self.assertEqual(obj, obj_3) + # should be transitive, but... + self.assertEqual(obj_2, obj_3) + self.assertEqual(string_from_object_dump, string_from_object_dump_3) + + def _old_dump_load_cycle(self, obj): + '''Dump the passed in object to yaml, load it back up, dump again, compare.''' + stream = io.StringIO() + + yaml_string = self._dump_string(obj, dumper=AnsibleDumper) + self._dump_stream(obj, stream, dumper=AnsibleDumper) + + yaml_string_from_stream = stream.getvalue() + + # reset stream + stream.seek(0) + + loader = self._loader(stream) + # loader = AnsibleLoader(stream, vault_password=self.vault_password) + obj_from_stream = loader.get_data() + + stream_from_string = io.StringIO(yaml_string) + loader2 = self._loader(stream_from_string) + # loader2 = AnsibleLoader(stream_from_string, vault_password=self.vault_password) + obj_from_string = loader2.get_data() + + stream_obj_from_stream = io.StringIO() + stream_obj_from_string = io.StringIO() + + if PY3: + yaml.dump(obj_from_stream, stream_obj_from_stream, Dumper=AnsibleDumper) + yaml.dump(obj_from_stream, stream_obj_from_string, Dumper=AnsibleDumper) + else: + yaml.dump(obj_from_stream, stream_obj_from_stream, Dumper=AnsibleDumper, encoding=None) + yaml.dump(obj_from_stream, stream_obj_from_string, Dumper=AnsibleDumper, encoding=None) + + yaml_string_stream_obj_from_stream = stream_obj_from_stream.getvalue() + yaml_string_stream_obj_from_string = stream_obj_from_string.getvalue() + + stream_obj_from_stream.seek(0) + stream_obj_from_string.seek(0) + + if PY3: + yaml_string_obj_from_stream = yaml.dump(obj_from_stream, Dumper=AnsibleDumper) + yaml_string_obj_from_string = yaml.dump(obj_from_string, Dumper=AnsibleDumper) + else: + yaml_string_obj_from_stream = yaml.dump(obj_from_stream, Dumper=AnsibleDumper, encoding=None) + yaml_string_obj_from_string = yaml.dump(obj_from_string, Dumper=AnsibleDumper, encoding=None) + + assert yaml_string == yaml_string_obj_from_stream + assert yaml_string == yaml_string_obj_from_stream == yaml_string_obj_from_string + assert (yaml_string == yaml_string_obj_from_stream == yaml_string_obj_from_string == yaml_string_stream_obj_from_stream == + yaml_string_stream_obj_from_string) + assert obj == obj_from_stream + assert obj == obj_from_string + assert obj == yaml_string_obj_from_stream + assert obj == yaml_string_obj_from_string + assert obj == obj_from_stream == obj_from_string == yaml_string_obj_from_stream == yaml_string_obj_from_string + return {'obj': obj, + 'yaml_string': yaml_string, + 'yaml_string_from_stream': yaml_string_from_stream, + 'obj_from_stream': obj_from_stream, + 'obj_from_string': obj_from_string, + 'yaml_string_obj_from_string': yaml_string_obj_from_string} diff --git a/ansible_collections/community/network/tests/unit/plugins/__init__.py b/ansible_collections/community/network/tests/unit/plugins/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/__init__.py diff --git a/ansible_collections/community/network/tests/unit/plugins/cliconf/__init__.py b/ansible_collections/community/network/tests/unit/plugins/cliconf/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/cliconf/__init__.py diff --git a/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/__init__.py b/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/__init__.py diff --git a/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/ios/show_version b/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/ios/show_version new file mode 100644 index 000000000..eadd3d3ad --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/ios/show_version @@ -0,0 +1,54 @@ +Cisco IOS XE Software, Version 16.06.01 +Cisco IOS Software [Everest], Virtual XE Software (X86_64_LINUX_IOSD-UNIVERSALK9-M), Version 16.6.1, RELEASE SOFTWARE (fc2) +Technical Support: http://www.cisco.com/techsupport +Copyright (c) 1986-2017 by Cisco Systems, Inc. +Compiled Sat 22-Jul-17 05:51 by mcpre + + +Cisco IOS-XE software, Copyright (c) 2005-2017 by cisco Systems, Inc. +All rights reserved. Certain components of Cisco IOS-XE software are +licensed under the GNU General Public License ("GPL") Version 2.0. The +software code licensed under GPL Version 2.0 is free software that comes +with ABSOLUTELY NO WARRANTY. You can redistribute and/or modify such +GPL code under the terms of GPL Version 2.0. For more details, see the +documentation or "License Notice" file accompanying the IOS-XE software, +or the applicable URL provided on the flyer accompanying the IOS-XE +software. + + +ROM: IOS-XE ROMMON + +an-csr-01 uptime is 1 day, 16 hours, 15 minutes +Uptime for this control processor is 1 day, 16 hours, 16 minutes +System returned to ROM by reload +System image file is "bootflash:packages.conf" +Last reload reason: Reload Command + + + +This product contains cryptographic features and is subject to United +States and local country laws governing import, export, transfer and +use. Delivery of Cisco cryptographic products does not imply +third-party authority to import, export, distribute or use encryption. +Importers, exporters, distributors and users are responsible for +compliance with U.S. and local country laws. By using this product you +agree to comply with applicable laws and regulations. If you are unable +to comply with U.S. and local laws, return this product immediately. + +A summary of U.S. laws governing Cisco cryptographic products may be found at: +http://www.cisco.com/wwl/export/crypto/tool/stqrg.html + +If you require further assistance please contact us by sending email to +export@cisco.com. + +License Level: ax +License Type: Default. No valid license found. +Next reload license Level: ax + +cisco CSR1000V (VXE) processor (revision VXE) with 1225511K/3075K bytes of memory. +Processor board ID 9I5BX4UHSO4 +3 Gigabit Ethernet interfaces +32768K bytes of non-volatile configuration memory. +3018776K bytes of physical memory. +16162815K bytes of virtual hard disk at bootflash:. +0K bytes of WebUI ODM Files at webui:. diff --git a/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/nos/show_chassis b/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/nos/show_chassis new file mode 100644 index 000000000..af51cbaff --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/nos/show_chassis @@ -0,0 +1,30 @@ + +Chassis Name: BR-VDX6740 +switchType: 131 + +FAN Unit: 1 +Time Awake: 0 days + +FAN Unit: 2 +Time Awake: 0 days + +POWER SUPPLY Unit: 1 +Factory Part Num: 23-1000043-01 +Factory Serial Num: +Time Awake: 0 days + +POWER SUPPLY Unit: 2 +Factory Part Num: 23-1000043-01 +Factory Serial Num: +Time Awake: 0 days + +CHASSIS/WWN Unit: 1 +Power Consume Factor: 0 +Factory Part Num: 40-1000927-06 +Factory Serial Num: CPL2541K01E +Manufacture: Day: 11 Month: 8 Year: 14 +Update: Day: 18 Month: 7 Year: 2018 +Time Alive: 1116 days +Time Awake: 0 days + +Airflow direction : Port side INTAKE diff --git a/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/nos/show_running-config b/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/nos/show_running-config new file mode 100644 index 000000000..8a4f631fe --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/nos/show_running-config @@ -0,0 +1,549 @@ +diag post rbridge-id 104 enable +ntp server 10.10.10.1 use-vrf mgmt-vrf +logging raslog console INFO +logging auditlog class SECURITY +logging auditlog class CONFIGURATION +logging auditlog class FIRMWARE +logging syslog-facility local LOG_LOCAL7 +logging syslog-client localip CHASSIS_IP +switch-attributes 104 + chassis-name VDX6740 + host-name LEAF4 +! +no support autoupload enable +line vty + exec-timeout 10 +! +zoning enabled-configuration cfg-name "" +zoning enabled-configuration default-zone-access allaccess +zoning enabled-configuration cfg-action cfg-save +dpod 104/0/1 + reserve +! +dpod 104/0/2 +! +dpod 104/0/3 +! +dpod 104/0/4 +! +dpod 104/0/5 +! +dpod 104/0/6 +! +dpod 104/0/7 +! +dpod 104/0/8 +! +dpod 104/0/9 +! +dpod 104/0/10 +! +dpod 104/0/11 +! +dpod 104/0/12 +! +dpod 104/0/13 +! +dpod 104/0/14 +! +dpod 104/0/15 +! +dpod 104/0/16 +! +dpod 104/0/17 +! +dpod 104/0/18 +! +dpod 104/0/19 +! +dpod 104/0/20 +! +dpod 104/0/21 +! +dpod 104/0/22 +! +dpod 104/0/23 +! +dpod 104/0/24 +! +dpod 104/0/25 +! +dpod 104/0/26 +! +dpod 104/0/27 +! +dpod 104/0/28 +! +dpod 104/0/29 +! +dpod 104/0/30 +! +dpod 104/0/31 +! +dpod 104/0/32 +! +dpod 104/0/33 +! +dpod 104/0/34 +! +dpod 104/0/35 +! +dpod 104/0/36 +! +dpod 104/0/37 +! +dpod 104/0/38 +! +dpod 104/0/39 +! +dpod 104/0/40 +! +dpod 104/0/41 +! +dpod 104/0/42 +! +dpod 104/0/43 +! +dpod 104/0/44 +! +dpod 104/0/45 +! +dpod 104/0/46 +! +dpod 104/0/47 +! +dpod 104/0/48 +! +dpod 104/0/49 +! +dpod 104/0/50 +! +dpod 104/0/51 +! +dpod 104/0/52 +! +role name admin desc Administrator +role name user desc User +aaa authentication login local +aaa accounting exec default start-stop none +aaa accounting commands default start-stop none +service password-encryption +username admin password "BwrsDbB+tABWGWpINOVKoQ==\n" encryption-level 7 role admin desc Administrator +username user password "BwrsDbB+tABWGWpINOVKoQ==\n" encryption-level 7 role user desc User +ip access-list extended test + seq 10 permit ip host 1.1.1.1 any log +! +snmp-server contact "Field Support." +snmp-server location "End User Premise." +snmp-server sys-descr "Extreme VDX Switch." +snmp-server enable trap +snmp-server community private groupname admin +snmp-server community public groupname user +snmp-server view All 1 included +snmp-server group admin v1 read All write All notify All +snmp-server group public v1 read All +snmp-server group public v2c read All +snmp-server group user v1 read All +snmp-server group user v2c read All +hardware + connector-group 104/0/1 + speed LowMixed + ! + connector-group 104/0/3 + speed LowMixed + ! + connector-group 104/0/5 + speed LowMixed + ! + connector-group 104/0/6 + speed LowMixed + ! +! +cee-map default + precedence 1 + priority-group-table 1 weight 40 pfc on + priority-group-table 15.0 pfc off + priority-group-table 15.1 pfc off + priority-group-table 15.2 pfc off + priority-group-table 15.3 pfc off + priority-group-table 15.4 pfc off + priority-group-table 15.5 pfc off + priority-group-table 15.6 pfc off + priority-group-table 15.7 pfc off + priority-group-table 2 weight 60 pfc off + priority-table 2 2 2 1 2 2 2 15.0 + remap fabric-priority priority 0 + remap lossless-priority priority 0 +! +fcoe + fabric-map default + vlan 1002 + san-mode local + priority 3 + virtual-fabric 128 + fcmap 0E:FC:00 + advertisement interval 8000 + keep-alive timeout + ! +! +interface Vlan 1 +! +fabric route mcast rbridge-id 104 +! +protocol lldp + advertise dcbx-fcoe-app-tlv + advertise dcbx-fcoe-logical-link-tlv + advertise dcbx-tlv + advertise bgp-auto-nbr-tlv + advertise optional-tlv management-address + advertise optional-tlv system-name + system-description Extreme-VDX-VCS 120 +! +vlan dot1q tag native +port-profile UpgradedVlanProfile + vlan-profile + switchport + switchport mode trunk + switchport trunk allowed vlan all + ! +! +port-profile default + vlan-profile + switchport + switchport mode trunk + switchport trunk native-vlan 1 + ! +! +port-profile-domain default + port-profile UpgradedVlanProfile +! +class-map cee +! +class-map default +! +rbridge-id 104 + switch-attributes chassis-name VDX6740 + switch-attributes host-name LEAF4 + vrf mgmt-vrf + address-family ipv4 unicast + ip route 0.0.0.0/0 10.26.0.1 + ! + address-family ipv6 unicast + ! + ! + system-monitor fan threshold marginal-threshold 1 down-threshold 2 + system-monitor fan alert state removed action raslog + system-monitor power threshold marginal-threshold 1 down-threshold 2 + system-monitor power alert state removed action raslog + system-monitor temp threshold marginal-threshold 1 down-threshold 2 + system-monitor cid-card threshold marginal-threshold 1 down-threshold 2 + system-monitor cid-card alert state none action none + system-monitor sfp alert state none action none + system-monitor compact-flash threshold marginal-threshold 1 down-threshold 0 + system-monitor MM threshold marginal-threshold 1 down-threshold 0 + system-monitor LineCard threshold marginal-threshold 1 down-threshold 2 + system-monitor LineCard alert state none action none + system-monitor SFM threshold marginal-threshold 1 down-threshold 2 + resource-monitor cpu enable + resource-monitor memory enable threshold 100 action raslog + resource-monitor process memory enable alarm 500 critical 600 + no protocol vrrp + no protocol vrrp-extended + hardware-profile tcam default + hardware-profile route-table default maximum_paths 8 openflow off + hardware-profile kap default + fabric neighbor-discovery + clock timezone America/Los_Angeles + ag + enable + counter reliability 25 + timeout fnm 120 + pg 0 + modes lb + rename pg0 + ! + ! + telnet server use-vrf default-vrf + telnet server use-vrf mgmt-vrf + ssh server key rsa 2048 + ssh server key ecdsa 256 + ssh server key dsa + ssh server use-vrf default-vrf + ssh server use-vrf mgmt-vrf + http server use-vrf default-vrf + http server use-vrf mgmt-vrf + fcoe + fcoe-enodes 0 + ! +! +interface Management 104/0 + no tcp burstrate + ip icmp echo-reply + no ip address dhcp + ip address 10.26.7.226/17 + ipv6 icmpv6 echo-reply + no ipv6 address autoconfig + no ipv6 address dhcp + vrf forwarding mgmt-vrf + no shutdown +! +interface TenGigabitEthernet 104/0/1 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/2 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/3 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/4 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/5 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/6 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/7 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/8 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/9 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/10 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/11 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/12 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/13 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/14 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/15 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/16 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/17 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/18 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/19 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/20 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/21 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/22 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/23 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/24 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/25 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/26 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/27 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/28 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/29 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/30 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/31 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/32 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/33 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/34 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/35 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/36 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/37 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/38 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/39 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/40 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/41 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/42 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/43 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/44 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/45 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/46 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/47 + fabric isl enable + fabric trunk enable + no shutdown +! +interface TenGigabitEthernet 104/0/48 + fabric isl enable + fabric trunk enable + no shutdown +! +interface FortyGigabitEthernet 104/0/49 + fabric isl enable + fabric trunk enable + no shutdown +! +interface FortyGigabitEthernet 104/0/50 + fabric isl enable + fabric trunk enable + no shutdown +! +interface FortyGigabitEthernet 104/0/51 + fabric isl enable + fabric trunk enable + no shutdown +! +interface FortyGigabitEthernet 104/0/52 + fabric isl enable + fabric trunk enable + no shutdown +! diff --git a/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/nos/show_version b/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/nos/show_version new file mode 100644 index 000000000..1accd8191 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/nos/show_version @@ -0,0 +1,17 @@ +Network Operating System Software +Network Operating System Version: 7.2.0 +Copyright (c) 1995-2017 Brocade Communications Systems, Inc. +Firmware name: 7.2.0 +Build Time: 10:52:47 Jul 10, 2017 +Install Time: 01:32:03 Jan 5, 2018 +Kernel: 2.6.34.6 + +BootProm: 1.0.1 +Control Processor: e500mc with 4096 MB of memory + +Slot Name Primary/Secondary Versions Status +--------------------------------------------------------------------------- +SW/0 NOS 7.2.0 ACTIVE* + 7.2.0 +SW/1 NOS 7.2.0 STANDBY + 7.2.0 diff --git a/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/slxos/show_chassis b/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/slxos/show_chassis new file mode 100644 index 000000000..1f7f0c51b --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/slxos/show_chassis @@ -0,0 +1,40 @@ + +Chassis Name: BR-SLX9140 +switchType: 3001 + +FAN Unit: 1 +Time Awake: 36 days + +FAN Unit: 2 +Time Awake: 36 days + +FAN Unit: 3 +Time Awake: 36 days + +FAN Unit: 5 +Time Awake: 36 days + +FAN Unit: 6 +Time Awake: 36 days + +POWER SUPPLY Unit: 1 +Factory Part Num: 11-1111111-11 +Factory Serial Num: ASERIALNUMB +Time Awake: 36 days + +POWER SUPPLY Unit: 2 +Factory Part Num: 11-1111111-11 +Factory Serial Num: ASERIALNUMB +Time Awake: 36 days + +CHASSIS/WWN Unit: 1 +Power Consume Factor: 0 +Factory Part Num: 11-1111111-11 +Factory Serial Num: ASERIALNUMB +Manufacture: Day: 12 Month: 1 Year: 2017 +Update: Day: 5 Month: 4 Year: 2018 +Time Alive: 277 days +Time Awake: 36 days + +Airflow direction : Port side INTAKE + diff --git a/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/slxos/show_running-config b/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/slxos/show_running-config new file mode 100644 index 000000000..b2e540d97 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/slxos/show_running-config @@ -0,0 +1,624 @@ +root enable +host-table aging-mode conversational +clock timezone Europe/Warsaw +hardware + profile tcam default + profile overlay-visibility default + profile route-table default maximum_paths 8 + system-mode default +! +http server use-vrf default-vrf +http server use-vrf mgmt-vrf +node-id 1 +! +ntp server 172.16.10.2 use-vrf mgmt-vrf +! +logging raslog console INFO +logging syslog-server 10.1.5.11 use-vrf mgmt-vrf +! +logging auditlog class SECURITY +logging auditlog class CONFIGURATION +logging auditlog class FIRMWARE +logging syslog-facility local LOG_LOCAL0 +logging syslog-client localip CHASSIS_IP +switch-attributes chassis-name SLX9140-LEAF2 +switch-attributes host-name DC2LEAF2 +no support autoupload enable +support ffdc +resource-monitor cpu enable threshold 90 action raslog +resource-monitor memory enable threshold 100 action raslog +resource-monitor process memory enable alarm 1000 critical 1200 +system-monitor fan threshold marginal-threshold 1 down-threshold 2 +system-monitor fan alert state removed action raslog +system-monitor power threshold marginal-threshold 1 down-threshold 2 +system-monitor power alert state removed action raslog +system-monitor temp threshold marginal-threshold 1 down-threshold 2 +system-monitor cid-card threshold marginal-threshold 1 down-threshold 2 +system-monitor cid-card alert state none action none +system-monitor compact-flash threshold marginal-threshold 1 down-threshold 0 +system-monitor MM threshold marginal-threshold 1 down-threshold 0 +system-monitor LineCard threshold marginal-threshold 1 down-threshold 2 +system-monitor LineCard alert state none action none +system-monitor SFM threshold marginal-threshold 1 down-threshold 2 +telemetry server use-vrf mgmt-vrf + transport tcp + port 50051 + activate +! +telemetry profile system-utilization default_system_utilization_statistics + interval 60 + add total-system-memory + add total-used-memory + add total-free-memory + add cached-memory + add buffers + add user-free-memory + add kernel-free-memory + add total-swap-memory + add total-free-swap-memory + add total-used-swap-memory + add user-process + add system-process + add niced-process + add iowait + add hw-interrupt + add sw-interrupt + add idle-state + add steal-time + add uptime +! +telemetry profile interface default_interface_statistics + interval 30 + add out-pkts + add in-pkts + add out-unicast-pkts + add in-unicast-pkts + add out-broadcast-pkts + add in-broadcast-pkts + add out-multicast-pkts + add in-multicast-pkts + add out-pkts-per-second + add in-pkts-per-second + add out-bandwidth + add in-bandwidth + add out-octets + add in-octets + add out-errors + add in-errors + add out-crc-errors + add in-crc-errors + add out-discards + add in-discards +! +line vty + exec-timeout 10 +! +threshold-monitor Buffer limit 70 +vrf mgmt-vrf + address-family ipv4 unicast + ip route 0.0.0.0/0 172.168.192.1 + ! + address-family ipv6 unicast + ! +! +ssh server key rsa 2048 +ssh server key ecdsa 256 +ssh server key dsa +ssh server use-vrf default-vrf +ssh server use-vrf mgmt-vrf +telnet server use-vrf default-vrf +telnet server use-vrf mgmt-vrf +role name admin desc Administrator +role name user desc User +aaa authentication login local +aaa accounting exec default start-stop none +aaa accounting commands default start-stop none +service password-encryption +username admin password "AINTNOPARTYLIKEAHOTELPARTYCAUSEAHOTELPARTYDONTSLEEPNOONEWOULDEVERACTUALLYTYPETHISWHYAREYOUHERE\n" encryption-level 7 role admin desc Administrator +cee-map default + precedence 1 + priority-group-table 1 weight 40 pfc on + priority-group-table 15.0 pfc off + priority-group-table 15.1 pfc off + priority-group-table 15.2 pfc off + priority-group-table 15.3 pfc off + priority-group-table 15.4 pfc off + priority-group-table 15.5 pfc off + priority-group-table 15.6 pfc off + priority-group-table 15.7 pfc off + priority-group-table 2 weight 60 pfc off + priority-table 2 2 2 1 2 2 2 15.0 + remap lossless-priority priority 0 +! +mac access-list extended M1 + seq 10 permit any any +! +vlan 1 + ip igmp snooping startup-query-interval 100 + ipv6 mld snooping startup-query-interval 100 +! +vlan 100 +! +vlan 200 +! +vlan 1001 + router-interface Ve 1001 + description Thomas-Test-Cluster +! +qos map cos-mutation all-zero-map + map cos 0 to cos 0 + map cos 1 to cos 0 + map cos 2 to cos 0 + map cos 3 to cos 0 + map cos 4 to cos 0 + map cos 5 to cos 0 + map cos 6 to cos 0 + map cos 7 to cos 0 +! +qos map cos-mutation default + map cos 0 to cos 0 + map cos 1 to cos 1 + map cos 2 to cos 2 + map cos 3 to cos 3 + map cos 4 to cos 4 + map cos 5 to cos 5 + map cos 6 to cos 6 + map cos 7 to cos 7 +! +qos map cos-traffic-class all-zero-map + map cos 0 to traffic-class 0 + map cos 1 to traffic-class 0 + map cos 2 to traffic-class 0 + map cos 3 to traffic-class 0 + map cos 4 to traffic-class 0 + map cos 5 to traffic-class 0 + map cos 6 to traffic-class 0 + map cos 7 to traffic-class 0 +! +qos map cos-traffic-class default + map cos 0 to traffic-class 1 + map cos 1 to traffic-class 0 + map cos 2 to traffic-class 2 + map cos 3 to traffic-class 3 + map cos 4 to traffic-class 4 + map cos 5 to traffic-class 5 + map cos 6 to traffic-class 6 + map cos 7 to traffic-class 7 +! +qos map cos-dscp all-zero-map + map cos 0 to dscp 0 + map cos 1 to dscp 0 + map cos 2 to dscp 0 + map cos 3 to dscp 0 + map cos 4 to dscp 0 + map cos 5 to dscp 0 + map cos 6 to dscp 0 + map cos 7 to dscp 0 +! +qos map cos-dscp default + map cos 0 to dscp 0 + map cos 1 to dscp 8 + map cos 2 to dscp 16 + map cos 3 to dscp 24 + map cos 4 to dscp 32 + map cos 5 to dscp 40 + map cos 6 to dscp 48 + map cos 7 to dscp 56 +! +qos map traffic-class-cos all-zero-map + map traffic-class 0 to cos 0 + map traffic-class 1 to cos 0 + map traffic-class 2 to cos 0 + map traffic-class 3 to cos 0 + map traffic-class 4 to cos 0 + map traffic-class 5 to cos 0 + map traffic-class 6 to cos 0 + map traffic-class 7 to cos 0 +! +qos map traffic-class-cos default + map traffic-class 0 to cos 0 + map traffic-class 1 to cos 1 + map traffic-class 2 to cos 2 + map traffic-class 3 to cos 3 + map traffic-class 4 to cos 4 + map traffic-class 5 to cos 5 + map traffic-class 6 to cos 6 + map traffic-class 7 to cos 7 +! +qos map traffic-class-mutation all-zero-map + map traffic-class 0 to traffic-class 0 + map traffic-class 1 to traffic-class 0 + map traffic-class 2 to traffic-class 0 + map traffic-class 3 to traffic-class 0 + map traffic-class 4 to traffic-class 0 + map traffic-class 5 to traffic-class 0 + map traffic-class 6 to traffic-class 0 + map traffic-class 7 to traffic-class 0 +! +qos map traffic-class-mutation default + map traffic-class 0 to traffic-class 0 + map traffic-class 1 to traffic-class 1 + map traffic-class 2 to traffic-class 2 + map traffic-class 3 to traffic-class 3 + map traffic-class 4 to traffic-class 4 + map traffic-class 5 to traffic-class 5 + map traffic-class 6 to traffic-class 6 + map traffic-class 7 to traffic-class 7 +! +qos map traffic-class-dscp all-zero-map + map traffic-class 0 to dscp 0 + map traffic-class 1 to dscp 0 + map traffic-class 2 to dscp 0 + map traffic-class 3 to dscp 0 + map traffic-class 4 to dscp 0 + map traffic-class 5 to dscp 0 + map traffic-class 6 to dscp 0 + map traffic-class 7 to dscp 0 +! +qos map traffic-class-dscp default + map traffic-class 0 to dscp 0 + map traffic-class 1 to dscp 8 + map traffic-class 2 to dscp 16 + map traffic-class 3 to dscp 24 + map traffic-class 4 to dscp 32 + map traffic-class 5 to dscp 40 + map traffic-class 6 to dscp 48 + map traffic-class 7 to dscp 56 +! +qos map dscp-mutation all-zero-map + map dscp 0-63 to dscp 0 +! +qos map dscp-mutation default + map dscp 0 to dscp 0 + map dscp 1 to dscp 1 + map dscp 10 to dscp 10 + map dscp 11 to dscp 11 + map dscp 12 to dscp 12 + map dscp 13 to dscp 13 + map dscp 14 to dscp 14 + map dscp 15 to dscp 15 + map dscp 16 to dscp 16 + map dscp 17 to dscp 17 + map dscp 18 to dscp 18 + map dscp 19 to dscp 19 + map dscp 2 to dscp 2 + map dscp 20 to dscp 20 + map dscp 21 to dscp 21 + map dscp 22 to dscp 22 + map dscp 23 to dscp 23 + map dscp 24 to dscp 24 + map dscp 25 to dscp 25 + map dscp 26 to dscp 26 + map dscp 27 to dscp 27 + map dscp 28 to dscp 28 + map dscp 29 to dscp 29 + map dscp 3 to dscp 3 + map dscp 30 to dscp 30 + map dscp 31 to dscp 31 + map dscp 32 to dscp 32 + map dscp 33 to dscp 33 + map dscp 34 to dscp 34 + map dscp 35 to dscp 35 + map dscp 36 to dscp 36 + map dscp 37 to dscp 37 + map dscp 38 to dscp 38 + map dscp 39 to dscp 39 + map dscp 4 to dscp 4 + map dscp 40 to dscp 40 + map dscp 41 to dscp 41 + map dscp 42 to dscp 42 + map dscp 43 to dscp 43 + map dscp 44 to dscp 44 + map dscp 45 to dscp 45 + map dscp 46 to dscp 46 + map dscp 47 to dscp 47 + map dscp 48 to dscp 48 + map dscp 49 to dscp 49 + map dscp 5 to dscp 5 + map dscp 50 to dscp 50 + map dscp 51 to dscp 51 + map dscp 52 to dscp 52 + map dscp 53 to dscp 53 + map dscp 54 to dscp 54 + map dscp 55 to dscp 55 + map dscp 56 to dscp 56 + map dscp 57 to dscp 57 + map dscp 58 to dscp 58 + map dscp 59 to dscp 59 + map dscp 6 to dscp 6 + map dscp 60 to dscp 60 + map dscp 61 to dscp 61 + map dscp 62 to dscp 62 + map dscp 63 to dscp 63 + map dscp 7 to dscp 7 + map dscp 8 to dscp 8 + map dscp 9 to dscp 9 +! +qos map dscp-traffic-class all-zero-map + map dscp 0-63 to traffic-class 0 +! +qos map dscp-traffic-class default + map dscp 0-7 to traffic-class 0 + map dscp 16-23 to traffic-class 2 + map dscp 24-31 to traffic-class 3 + map dscp 32-39 to traffic-class 4 + map dscp 40-47 to traffic-class 5 + map dscp 48-55 to traffic-class 6 + map dscp 56-63 to traffic-class 7 + map dscp 8-15 to traffic-class 1 +! +qos map dscp-cos all-zero-map + map dscp 0-63 to cos 0 +! +qos map dscp-cos default + map dscp 0-7 to cos 0 + map dscp 16-23 to cos 2 + map dscp 24-31 to cos 3 + map dscp 32-39 to cos 4 + map dscp 40-47 to cos 5 + map dscp 48-55 to cos 6 + map dscp 56-63 to cos 7 + map dscp 8-15 to cos 1 +! +protocol lldp + advertise optional-tlv management-address + system-description Brocade BR-SLX9140 Router +! +vlan dot1q tag native +police-remark-profile default +! +class-map BD-100 +! +class-map C1 + match access-group M1 +! +class-map cee +! +class-map default +! +policy-map P1 + class C1 + police cir 1000000 + ! +! +policy-map P2 + class default + police cir 12121212 + ! +! +no protocol vrrp +no protocol vrrp-extended +router bgp + local-as 65301 + capability as4-enable + bfd interval 300 min-rx 300 multiplier 3 + neighbor leaf_group peer-group + neighbor leaf_group remote-as 65500 + neighbor leaf_group bfd + neighbor 10.220.4.3 remote-as 65500 + neighbor 10.220.4.3 peer-group leaf_group + address-family ipv4 unicast + network 172.32.252.5/32 + maximum-paths 8 + ! + address-family ipv6 unicast + ! + address-family l2vpn evpn + ! +! +interface Loopback 1 + ip address 172.16.128.6/32 + no shutdown +! +interface Loopback 2 + ip address 172.16.129.5/32 + no shutdown +! +interface Management 0 + no tcp burstrate + no shutdown + vrf forwarding mgmt-vrf + ip address dhcp +! +interface Ethernet 0/1 + speed 25000 + fec mode disabled + switchport + switchport mode access + switchport access vlan 1 + no shutdown +! +interface Ethernet 0/2 + no shutdown +! +interface Ethernet 0/3 + speed 25000 + fec mode RS-FEC + no shutdown +! +interface Ethernet 0/4 + shutdown +! +interface Ethernet 0/5 + service-policy in P1 + no shutdown +! +interface Ethernet 0/6 + mtu 1548 + description L2 Interface + no shutdown +! +interface Ethernet 0/7 + mtu 1548 + description L2 Interface + no shutdown +! +interface Ethernet 0/8 + switchport + switchport mode trunk + switchport trunk allowed vlan add 100,200 + switchport trunk tag native-vlan + shutdown +! +interface Ethernet 0/9 + shutdown +! +interface Ethernet 0/10 + no shutdown +! +interface Ethernet 0/11 + no shutdown +! +interface Ethernet 0/12 + no shutdown +! +interface Ethernet 0/13 + no shutdown +! +interface Ethernet 0/14 + no shutdown +! +interface Ethernet 0/15 + shutdown +! +interface Ethernet 0/16 + shutdown +! +interface Ethernet 0/17 + shutdown +! +interface Ethernet 0/18 + shutdown +! +interface Ethernet 0/19 + shutdown +! +interface Ethernet 0/20 + shutdown +! +interface Ethernet 0/21 + shutdown +! +interface Ethernet 0/22 + shutdown +! +interface Ethernet 0/23 + shutdown +! +interface Ethernet 0/24 + shutdown +! +interface Ethernet 0/25 + shutdown +! +interface Ethernet 0/26 + shutdown +! +interface Ethernet 0/27 + shutdown +! +interface Ethernet 0/28 + shutdown +! +interface Ethernet 0/29 + shutdown +! +interface Ethernet 0/30 + shutdown +! +interface Ethernet 0/31 + shutdown +! +interface Ethernet 0/32 + shutdown +! +interface Ethernet 0/33 + shutdown +! +interface Ethernet 0/34 + shutdown +! +interface Ethernet 0/35 + shutdown +! +interface Ethernet 0/36 + shutdown +! +interface Ethernet 0/37 + shutdown +! +interface Ethernet 0/38 + shutdown +! +interface Ethernet 0/39 + shutdown +! +interface Ethernet 0/40 + shutdown +! +interface Ethernet 0/41 + shutdown +! +interface Ethernet 0/42 + shutdown +! +interface Ethernet 0/43 + shutdown +! +interface Ethernet 0/44 + shutdown +! +interface Ethernet 0/45 + shutdown +! +interface Ethernet 0/46 + shutdown +! +interface Ethernet 0/47 + shutdown +! +interface Ethernet 0/48 + shutdown +! +interface Ethernet 0/49 + shutdown +! +interface Ethernet 0/50 + fec mode RS-FEC + no shutdown +! +interface Ethernet 0/51 + fec mode RS-FEC + no shutdown +! +interface Ethernet 0/52 + fec mode RS-FEC + no shutdown +! +interface Ethernet 0/53 + fec mode RS-FEC + no shutdown +! +interface Ethernet 0/54 + fec mode disabled + no shutdown +! +interface Port-channel 200 + switchport + switchport mode access + switchport access vlan 200 + shutdown +! +interface Port-channel 1024 + insight enable + no shutdown +! +monitor session 1 + source ethernet 0/1 destination port-channel 1024 direction both +! +monitor session 2 +! +bridge-domain 100 p2mp +! +cluster MCT1 1 +! diff --git a/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/slxos/show_startup-config b/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/slxos/show_startup-config new file mode 100644 index 000000000..b2e540d97 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/slxos/show_startup-config @@ -0,0 +1,624 @@ +root enable +host-table aging-mode conversational +clock timezone Europe/Warsaw +hardware + profile tcam default + profile overlay-visibility default + profile route-table default maximum_paths 8 + system-mode default +! +http server use-vrf default-vrf +http server use-vrf mgmt-vrf +node-id 1 +! +ntp server 172.16.10.2 use-vrf mgmt-vrf +! +logging raslog console INFO +logging syslog-server 10.1.5.11 use-vrf mgmt-vrf +! +logging auditlog class SECURITY +logging auditlog class CONFIGURATION +logging auditlog class FIRMWARE +logging syslog-facility local LOG_LOCAL0 +logging syslog-client localip CHASSIS_IP +switch-attributes chassis-name SLX9140-LEAF2 +switch-attributes host-name DC2LEAF2 +no support autoupload enable +support ffdc +resource-monitor cpu enable threshold 90 action raslog +resource-monitor memory enable threshold 100 action raslog +resource-monitor process memory enable alarm 1000 critical 1200 +system-monitor fan threshold marginal-threshold 1 down-threshold 2 +system-monitor fan alert state removed action raslog +system-monitor power threshold marginal-threshold 1 down-threshold 2 +system-monitor power alert state removed action raslog +system-monitor temp threshold marginal-threshold 1 down-threshold 2 +system-monitor cid-card threshold marginal-threshold 1 down-threshold 2 +system-monitor cid-card alert state none action none +system-monitor compact-flash threshold marginal-threshold 1 down-threshold 0 +system-monitor MM threshold marginal-threshold 1 down-threshold 0 +system-monitor LineCard threshold marginal-threshold 1 down-threshold 2 +system-monitor LineCard alert state none action none +system-monitor SFM threshold marginal-threshold 1 down-threshold 2 +telemetry server use-vrf mgmt-vrf + transport tcp + port 50051 + activate +! +telemetry profile system-utilization default_system_utilization_statistics + interval 60 + add total-system-memory + add total-used-memory + add total-free-memory + add cached-memory + add buffers + add user-free-memory + add kernel-free-memory + add total-swap-memory + add total-free-swap-memory + add total-used-swap-memory + add user-process + add system-process + add niced-process + add iowait + add hw-interrupt + add sw-interrupt + add idle-state + add steal-time + add uptime +! +telemetry profile interface default_interface_statistics + interval 30 + add out-pkts + add in-pkts + add out-unicast-pkts + add in-unicast-pkts + add out-broadcast-pkts + add in-broadcast-pkts + add out-multicast-pkts + add in-multicast-pkts + add out-pkts-per-second + add in-pkts-per-second + add out-bandwidth + add in-bandwidth + add out-octets + add in-octets + add out-errors + add in-errors + add out-crc-errors + add in-crc-errors + add out-discards + add in-discards +! +line vty + exec-timeout 10 +! +threshold-monitor Buffer limit 70 +vrf mgmt-vrf + address-family ipv4 unicast + ip route 0.0.0.0/0 172.168.192.1 + ! + address-family ipv6 unicast + ! +! +ssh server key rsa 2048 +ssh server key ecdsa 256 +ssh server key dsa +ssh server use-vrf default-vrf +ssh server use-vrf mgmt-vrf +telnet server use-vrf default-vrf +telnet server use-vrf mgmt-vrf +role name admin desc Administrator +role name user desc User +aaa authentication login local +aaa accounting exec default start-stop none +aaa accounting commands default start-stop none +service password-encryption +username admin password "AINTNOPARTYLIKEAHOTELPARTYCAUSEAHOTELPARTYDONTSLEEPNOONEWOULDEVERACTUALLYTYPETHISWHYAREYOUHERE\n" encryption-level 7 role admin desc Administrator +cee-map default + precedence 1 + priority-group-table 1 weight 40 pfc on + priority-group-table 15.0 pfc off + priority-group-table 15.1 pfc off + priority-group-table 15.2 pfc off + priority-group-table 15.3 pfc off + priority-group-table 15.4 pfc off + priority-group-table 15.5 pfc off + priority-group-table 15.6 pfc off + priority-group-table 15.7 pfc off + priority-group-table 2 weight 60 pfc off + priority-table 2 2 2 1 2 2 2 15.0 + remap lossless-priority priority 0 +! +mac access-list extended M1 + seq 10 permit any any +! +vlan 1 + ip igmp snooping startup-query-interval 100 + ipv6 mld snooping startup-query-interval 100 +! +vlan 100 +! +vlan 200 +! +vlan 1001 + router-interface Ve 1001 + description Thomas-Test-Cluster +! +qos map cos-mutation all-zero-map + map cos 0 to cos 0 + map cos 1 to cos 0 + map cos 2 to cos 0 + map cos 3 to cos 0 + map cos 4 to cos 0 + map cos 5 to cos 0 + map cos 6 to cos 0 + map cos 7 to cos 0 +! +qos map cos-mutation default + map cos 0 to cos 0 + map cos 1 to cos 1 + map cos 2 to cos 2 + map cos 3 to cos 3 + map cos 4 to cos 4 + map cos 5 to cos 5 + map cos 6 to cos 6 + map cos 7 to cos 7 +! +qos map cos-traffic-class all-zero-map + map cos 0 to traffic-class 0 + map cos 1 to traffic-class 0 + map cos 2 to traffic-class 0 + map cos 3 to traffic-class 0 + map cos 4 to traffic-class 0 + map cos 5 to traffic-class 0 + map cos 6 to traffic-class 0 + map cos 7 to traffic-class 0 +! +qos map cos-traffic-class default + map cos 0 to traffic-class 1 + map cos 1 to traffic-class 0 + map cos 2 to traffic-class 2 + map cos 3 to traffic-class 3 + map cos 4 to traffic-class 4 + map cos 5 to traffic-class 5 + map cos 6 to traffic-class 6 + map cos 7 to traffic-class 7 +! +qos map cos-dscp all-zero-map + map cos 0 to dscp 0 + map cos 1 to dscp 0 + map cos 2 to dscp 0 + map cos 3 to dscp 0 + map cos 4 to dscp 0 + map cos 5 to dscp 0 + map cos 6 to dscp 0 + map cos 7 to dscp 0 +! +qos map cos-dscp default + map cos 0 to dscp 0 + map cos 1 to dscp 8 + map cos 2 to dscp 16 + map cos 3 to dscp 24 + map cos 4 to dscp 32 + map cos 5 to dscp 40 + map cos 6 to dscp 48 + map cos 7 to dscp 56 +! +qos map traffic-class-cos all-zero-map + map traffic-class 0 to cos 0 + map traffic-class 1 to cos 0 + map traffic-class 2 to cos 0 + map traffic-class 3 to cos 0 + map traffic-class 4 to cos 0 + map traffic-class 5 to cos 0 + map traffic-class 6 to cos 0 + map traffic-class 7 to cos 0 +! +qos map traffic-class-cos default + map traffic-class 0 to cos 0 + map traffic-class 1 to cos 1 + map traffic-class 2 to cos 2 + map traffic-class 3 to cos 3 + map traffic-class 4 to cos 4 + map traffic-class 5 to cos 5 + map traffic-class 6 to cos 6 + map traffic-class 7 to cos 7 +! +qos map traffic-class-mutation all-zero-map + map traffic-class 0 to traffic-class 0 + map traffic-class 1 to traffic-class 0 + map traffic-class 2 to traffic-class 0 + map traffic-class 3 to traffic-class 0 + map traffic-class 4 to traffic-class 0 + map traffic-class 5 to traffic-class 0 + map traffic-class 6 to traffic-class 0 + map traffic-class 7 to traffic-class 0 +! +qos map traffic-class-mutation default + map traffic-class 0 to traffic-class 0 + map traffic-class 1 to traffic-class 1 + map traffic-class 2 to traffic-class 2 + map traffic-class 3 to traffic-class 3 + map traffic-class 4 to traffic-class 4 + map traffic-class 5 to traffic-class 5 + map traffic-class 6 to traffic-class 6 + map traffic-class 7 to traffic-class 7 +! +qos map traffic-class-dscp all-zero-map + map traffic-class 0 to dscp 0 + map traffic-class 1 to dscp 0 + map traffic-class 2 to dscp 0 + map traffic-class 3 to dscp 0 + map traffic-class 4 to dscp 0 + map traffic-class 5 to dscp 0 + map traffic-class 6 to dscp 0 + map traffic-class 7 to dscp 0 +! +qos map traffic-class-dscp default + map traffic-class 0 to dscp 0 + map traffic-class 1 to dscp 8 + map traffic-class 2 to dscp 16 + map traffic-class 3 to dscp 24 + map traffic-class 4 to dscp 32 + map traffic-class 5 to dscp 40 + map traffic-class 6 to dscp 48 + map traffic-class 7 to dscp 56 +! +qos map dscp-mutation all-zero-map + map dscp 0-63 to dscp 0 +! +qos map dscp-mutation default + map dscp 0 to dscp 0 + map dscp 1 to dscp 1 + map dscp 10 to dscp 10 + map dscp 11 to dscp 11 + map dscp 12 to dscp 12 + map dscp 13 to dscp 13 + map dscp 14 to dscp 14 + map dscp 15 to dscp 15 + map dscp 16 to dscp 16 + map dscp 17 to dscp 17 + map dscp 18 to dscp 18 + map dscp 19 to dscp 19 + map dscp 2 to dscp 2 + map dscp 20 to dscp 20 + map dscp 21 to dscp 21 + map dscp 22 to dscp 22 + map dscp 23 to dscp 23 + map dscp 24 to dscp 24 + map dscp 25 to dscp 25 + map dscp 26 to dscp 26 + map dscp 27 to dscp 27 + map dscp 28 to dscp 28 + map dscp 29 to dscp 29 + map dscp 3 to dscp 3 + map dscp 30 to dscp 30 + map dscp 31 to dscp 31 + map dscp 32 to dscp 32 + map dscp 33 to dscp 33 + map dscp 34 to dscp 34 + map dscp 35 to dscp 35 + map dscp 36 to dscp 36 + map dscp 37 to dscp 37 + map dscp 38 to dscp 38 + map dscp 39 to dscp 39 + map dscp 4 to dscp 4 + map dscp 40 to dscp 40 + map dscp 41 to dscp 41 + map dscp 42 to dscp 42 + map dscp 43 to dscp 43 + map dscp 44 to dscp 44 + map dscp 45 to dscp 45 + map dscp 46 to dscp 46 + map dscp 47 to dscp 47 + map dscp 48 to dscp 48 + map dscp 49 to dscp 49 + map dscp 5 to dscp 5 + map dscp 50 to dscp 50 + map dscp 51 to dscp 51 + map dscp 52 to dscp 52 + map dscp 53 to dscp 53 + map dscp 54 to dscp 54 + map dscp 55 to dscp 55 + map dscp 56 to dscp 56 + map dscp 57 to dscp 57 + map dscp 58 to dscp 58 + map dscp 59 to dscp 59 + map dscp 6 to dscp 6 + map dscp 60 to dscp 60 + map dscp 61 to dscp 61 + map dscp 62 to dscp 62 + map dscp 63 to dscp 63 + map dscp 7 to dscp 7 + map dscp 8 to dscp 8 + map dscp 9 to dscp 9 +! +qos map dscp-traffic-class all-zero-map + map dscp 0-63 to traffic-class 0 +! +qos map dscp-traffic-class default + map dscp 0-7 to traffic-class 0 + map dscp 16-23 to traffic-class 2 + map dscp 24-31 to traffic-class 3 + map dscp 32-39 to traffic-class 4 + map dscp 40-47 to traffic-class 5 + map dscp 48-55 to traffic-class 6 + map dscp 56-63 to traffic-class 7 + map dscp 8-15 to traffic-class 1 +! +qos map dscp-cos all-zero-map + map dscp 0-63 to cos 0 +! +qos map dscp-cos default + map dscp 0-7 to cos 0 + map dscp 16-23 to cos 2 + map dscp 24-31 to cos 3 + map dscp 32-39 to cos 4 + map dscp 40-47 to cos 5 + map dscp 48-55 to cos 6 + map dscp 56-63 to cos 7 + map dscp 8-15 to cos 1 +! +protocol lldp + advertise optional-tlv management-address + system-description Brocade BR-SLX9140 Router +! +vlan dot1q tag native +police-remark-profile default +! +class-map BD-100 +! +class-map C1 + match access-group M1 +! +class-map cee +! +class-map default +! +policy-map P1 + class C1 + police cir 1000000 + ! +! +policy-map P2 + class default + police cir 12121212 + ! +! +no protocol vrrp +no protocol vrrp-extended +router bgp + local-as 65301 + capability as4-enable + bfd interval 300 min-rx 300 multiplier 3 + neighbor leaf_group peer-group + neighbor leaf_group remote-as 65500 + neighbor leaf_group bfd + neighbor 10.220.4.3 remote-as 65500 + neighbor 10.220.4.3 peer-group leaf_group + address-family ipv4 unicast + network 172.32.252.5/32 + maximum-paths 8 + ! + address-family ipv6 unicast + ! + address-family l2vpn evpn + ! +! +interface Loopback 1 + ip address 172.16.128.6/32 + no shutdown +! +interface Loopback 2 + ip address 172.16.129.5/32 + no shutdown +! +interface Management 0 + no tcp burstrate + no shutdown + vrf forwarding mgmt-vrf + ip address dhcp +! +interface Ethernet 0/1 + speed 25000 + fec mode disabled + switchport + switchport mode access + switchport access vlan 1 + no shutdown +! +interface Ethernet 0/2 + no shutdown +! +interface Ethernet 0/3 + speed 25000 + fec mode RS-FEC + no shutdown +! +interface Ethernet 0/4 + shutdown +! +interface Ethernet 0/5 + service-policy in P1 + no shutdown +! +interface Ethernet 0/6 + mtu 1548 + description L2 Interface + no shutdown +! +interface Ethernet 0/7 + mtu 1548 + description L2 Interface + no shutdown +! +interface Ethernet 0/8 + switchport + switchport mode trunk + switchport trunk allowed vlan add 100,200 + switchport trunk tag native-vlan + shutdown +! +interface Ethernet 0/9 + shutdown +! +interface Ethernet 0/10 + no shutdown +! +interface Ethernet 0/11 + no shutdown +! +interface Ethernet 0/12 + no shutdown +! +interface Ethernet 0/13 + no shutdown +! +interface Ethernet 0/14 + no shutdown +! +interface Ethernet 0/15 + shutdown +! +interface Ethernet 0/16 + shutdown +! +interface Ethernet 0/17 + shutdown +! +interface Ethernet 0/18 + shutdown +! +interface Ethernet 0/19 + shutdown +! +interface Ethernet 0/20 + shutdown +! +interface Ethernet 0/21 + shutdown +! +interface Ethernet 0/22 + shutdown +! +interface Ethernet 0/23 + shutdown +! +interface Ethernet 0/24 + shutdown +! +interface Ethernet 0/25 + shutdown +! +interface Ethernet 0/26 + shutdown +! +interface Ethernet 0/27 + shutdown +! +interface Ethernet 0/28 + shutdown +! +interface Ethernet 0/29 + shutdown +! +interface Ethernet 0/30 + shutdown +! +interface Ethernet 0/31 + shutdown +! +interface Ethernet 0/32 + shutdown +! +interface Ethernet 0/33 + shutdown +! +interface Ethernet 0/34 + shutdown +! +interface Ethernet 0/35 + shutdown +! +interface Ethernet 0/36 + shutdown +! +interface Ethernet 0/37 + shutdown +! +interface Ethernet 0/38 + shutdown +! +interface Ethernet 0/39 + shutdown +! +interface Ethernet 0/40 + shutdown +! +interface Ethernet 0/41 + shutdown +! +interface Ethernet 0/42 + shutdown +! +interface Ethernet 0/43 + shutdown +! +interface Ethernet 0/44 + shutdown +! +interface Ethernet 0/45 + shutdown +! +interface Ethernet 0/46 + shutdown +! +interface Ethernet 0/47 + shutdown +! +interface Ethernet 0/48 + shutdown +! +interface Ethernet 0/49 + shutdown +! +interface Ethernet 0/50 + fec mode RS-FEC + no shutdown +! +interface Ethernet 0/51 + fec mode RS-FEC + no shutdown +! +interface Ethernet 0/52 + fec mode RS-FEC + no shutdown +! +interface Ethernet 0/53 + fec mode RS-FEC + no shutdown +! +interface Ethernet 0/54 + fec mode disabled + no shutdown +! +interface Port-channel 200 + switchport + switchport mode access + switchport access vlan 200 + shutdown +! +interface Port-channel 1024 + insight enable + no shutdown +! +monitor session 1 + source ethernet 0/1 destination port-channel 1024 direction both +! +monitor session 2 +! +bridge-domain 100 p2mp +! +cluster MCT1 1 +! diff --git a/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/slxos/show_version b/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/slxos/show_version new file mode 100644 index 000000000..0d648378a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/slxos/show_version @@ -0,0 +1,18 @@ +SLX-OS Operating System Software +SLX-OS Operating System Version: 17s.1.02 +Copyright (c) 1995-2018 Brocade Communications Systems, Inc. +Firmware name: 17s.1.02 +Build Time: 00:06:59 Sep 28, 2017 +Install Time: 15:58:29 Feb 9, 2018 +Kernel: 2.6.34.6 +Host Version: Ubuntu 14.04 LTS +Host Kernel: Linux 3.14.17 + +Control Processor: QEMU Virtual CPU version 2.0.0 + +System Uptime: 34days 4hrs 41mins 53secs + +Slot Name Primary/Secondary Versions Status +--------------------------------------------------------------------------- +SW/0 SLX-OS 17s.1.02 ACTIVE* + 17s.1.02 diff --git a/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/weos4/show_running-config b/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/weos4/show_running-config new file mode 100644 index 000000000..d73cb0202 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/weos4/show_running-config @@ -0,0 +1,98 @@ +# \\/ Westermo WeOS v4.21.2, CLI Format v1.21 +# Wolverine DDW-226, art.no. 3642-0240-015 ser.no. 9992 + +aaa + username admin hash $1$r6mXNVvD$JaDxe9xNk/MI7Ebdk7B0q. + end + +system + hostname weos4-router + location "Rack1" + contact "Contact" + timezone Europe/Amsterdam + end + +fdb + end + +alarm + trigger 1 frnt + ring 1 + severity active warning inactive notice + condition low + action 2 + end + action 1 + target snmp log led digout + end + action 2 + target snmp log + end + end + +port 2/1 + speed-duplex auto + end +port 2/2-2/4 + no enable + speed-duplex auto + end + +port 1/1-1/2 + no enable + no co + emf + end + +port serial 1/1 + enable + speed 9600 + parity even + end + +no spanning-tree + +vlan 1 + name vlan1 + untagged ALL + end + +iface lo inet static + address 172.16.255.2/32 secondary + end + +iface vlan1 inet static + distance 1 + primary + management ssh http https ipconfig snmp + address 172.16.1.2/24 + end + +ip + route default 172.16.1.1 + no forwarding + end + +snmp-server + end + +sntp + server 172.16.1.1 + end + +ntp + end + +logging + console + end + +seroip 1 + enable + mode peer + listen vlan1:9000 + dynamic-peer + port 1/1 + frame-delay 15 + end + diff --git a/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/weos4/show_system-information b/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/weos4/show_system-information new file mode 100644 index 000000000..de8cbdd02 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/cliconf/fixtures/weos4/show_system-information @@ -0,0 +1,50 @@ + +System Information +=============================================================================== + +System Name : weos4-router +System Contact : Contact +System Location : Rack1 +System Timezone : Europe/Amsterdam + +Product Family : Wolverine Model : DDW-226 +Architecture : mxc Base MAC Address : 00:07:7c:00:00:00 +Platform : Basis Class : Extended +Article number : 3642-0240-015 Serial Number : 1234 +Boot loader ver. : 4.11 Active firmware : Main +Main firmware ver. : 4.21.2 Backup firmware ver: 4.21.2 +Manufacturing date : Feb 8, 2016 + +Card #1 ====================================================================== +Type : CPU +Chipset : MV88E6097 r2 +Article no : 5013-0630 +Revision : 3 +Batch id : 160208-00000000-00007 +Channel interfaces : 1 +Bandwidth limit : Disabled (for CPU channels) +FPGA version : 9104 +USB : N/A + +Card #2 ====================================================================== +Type : DSL RS TURBO +Chipset : MV88E6097 r2 +Article no : 5013-0740 +Revision : 3 +Batch id : 160205-00000000-00015 +FPGA version : 9104 TURBO support + +Card #3 ====================================================================== +Type : BACKPLANE +Chipset : N/A +Article no : 5013-0520 +Revision : 1 +Batch id : 160208-01674638-00001 + +Card #4 ====================================================================== +Type : POWER +Chipset : N/A +Article no : 5013-0200 +Revision : 6 +Batch id : 160217-00000000-00020 + diff --git a/ansible_collections/community/network/tests/unit/plugins/cliconf/test_nos.py b/ansible_collections/community/network/tests/unit/plugins/cliconf/test_nos.py new file mode 100644 index 000000000..b3e3ed34d --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/cliconf/test_nos.py @@ -0,0 +1,137 @@ +# +# (c) 2018 Extreme Networks Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from os import path +import json + +from mock import MagicMock, call + +from ansible_collections.community.network.tests.unit.compat import unittest +from ansible_collections.community.network.plugins.cliconf import nos + +FIXTURE_DIR = b'%s/fixtures/nos' % ( + path.dirname(path.abspath(__file__)).encode('utf-8') +) + + +def _connection_side_effect(*args, **kwargs): + try: + if args: + value = args[0] + else: + value = kwargs.get('command') + + fixture_path = path.abspath( + b'%s/%s' % (FIXTURE_DIR, b'_'.join(value.split(b' '))) + ) + with open(fixture_path, 'rb') as file_desc: + return file_desc.read() + except (OSError, IOError): + if args: + value = args[0] + return value + elif kwargs.get('command'): + value = kwargs.get('command') + return value + + return 'Nope' + + +class TestPluginCLIConfNOS(unittest.TestCase): + """ Test class for NOS CLI Conf Methods + """ + def setUp(self): + self._mock_connection = MagicMock() + self._mock_connection.send.side_effect = _connection_side_effect + self._cliconf = nos.Cliconf(self._mock_connection) + self.maxDiff = None + + def tearDown(self): + pass + + def test_get_device_info(self): + """ Test get_device_info + """ + device_info = self._cliconf.get_device_info() + + mock_device_info = { + 'network_os': 'nos', + 'network_os_model': 'BR-VDX6740', + 'network_os_version': '7.2.0', + } + + self.assertEqual(device_info, mock_device_info) + + def test_get_config(self): + """ Test get_config + """ + running_config = self._cliconf.get_config() + + fixture_path = path.abspath(b'%s/show_running-config' % FIXTURE_DIR) + with open(fixture_path, 'rb') as file_desc: + mock_running_config = file_desc.read() + self.assertEqual(running_config, mock_running_config) + + def test_edit_config(self): + """ Test edit_config + """ + test_config_command = b'this\nis\nthe\nsong\nthat\nnever\nends' + + self._cliconf.edit_config(test_config_command) + + send_calls = [] + + for command in [b'configure terminal', test_config_command, b'end']: + send_calls.append(call( + command=command, + prompt_retry_check=False, + sendonly=False, + newline=True, + check_all=False + )) + + self._mock_connection.send.assert_has_calls(send_calls) + + def test_get_capabilities(self): + """ Test get_capabilities + """ + capabilities = json.loads(self._cliconf.get_capabilities()) + mock_capabilities = { + 'network_api': 'cliconf', + 'rpc': [ + 'get_config', + 'edit_config', + 'get_capabilities', + 'get', + 'enable_response_logging', + 'disable_response_logging' + ], + 'device_info': { + 'network_os_model': 'BR-VDX6740', + 'network_os_version': '7.2.0', + 'network_os': 'nos' + } + } + + self.assertEqual( + mock_capabilities, + capabilities + ) diff --git a/ansible_collections/community/network/tests/unit/plugins/cliconf/test_slxos.py b/ansible_collections/community/network/tests/unit/plugins/cliconf/test_slxos.py new file mode 100644 index 000000000..4551351cc --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/cliconf/test_slxos.py @@ -0,0 +1,144 @@ +# +# (c) 2018 Extreme Networks Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from os import path +import json + +from mock import MagicMock, call + +from ansible_collections.community.network.tests.unit.compat import unittest +from ansible_collections.community.network.plugins.cliconf import slxos + +FIXTURE_DIR = b'%s/fixtures/slxos' % ( + path.dirname(path.abspath(__file__)).encode('utf-8') +) + + +def _connection_side_effect(*args, **kwargs): + try: + if args: + value = args[0] + else: + value = kwargs.get('command') + + fixture_path = path.abspath( + b'%s/%s' % (FIXTURE_DIR, b'_'.join(value.split(b' '))) + ) + with open(fixture_path, 'rb') as file_desc: + return file_desc.read() + except (OSError, IOError): + if args: + value = args[0] + return value + elif kwargs.get('command'): + value = kwargs.get('command') + return value + + return 'Nope' + + +class TestPluginCLIConfSLXOS(unittest.TestCase): + """ Test class for SLX-OS CLI Conf Methods + """ + def setUp(self): + self._mock_connection = MagicMock() + self._mock_connection.send.side_effect = _connection_side_effect + self._cliconf = slxos.Cliconf(self._mock_connection) + self.maxDiff = None + + def tearDown(self): + pass + + def test_get_device_info(self): + """ Test get_device_info + """ + device_info = self._cliconf.get_device_info() + + mock_device_info = { + 'network_os': 'slxos', + 'network_os_model': 'BR-SLX9140', + 'network_os_version': '17s.1.02', + } + + self.assertEqual(device_info, mock_device_info) + + def test_get_config(self): + """ Test get_config + """ + running_config = self._cliconf.get_config() + + fixture_path = path.abspath(b'%s/show_running-config' % FIXTURE_DIR) + with open(fixture_path, 'rb') as file_desc: + mock_running_config = file_desc.read() + self.assertEqual(running_config, mock_running_config) + + startup_config = self._cliconf.get_config() + + fixture_path = path.abspath(b'%s/show_running-config' % FIXTURE_DIR) + with open(fixture_path, 'rb') as file_desc: + mock_startup_config = file_desc.read() + self.assertEqual(startup_config, mock_startup_config) + + def test_edit_config(self): + """ Test edit_config + """ + test_config_command = b'this\nis\nthe\nsong\nthat\nnever\nends' + + self._cliconf.edit_config(test_config_command) + + send_calls = [] + + for command in [b'configure terminal', test_config_command, b'end']: + send_calls.append(call( + command=command, + prompt_retry_check=False, + sendonly=False, + newline=True, + check_all=False + )) + + self._mock_connection.send.assert_has_calls(send_calls) + + def test_get_capabilities(self): + """ Test get_capabilities + """ + capabilities = json.loads(self._cliconf.get_capabilities()) + mock_capabilities = { + 'network_api': 'cliconf', + 'rpc': [ + 'get_config', + 'edit_config', + 'get_capabilities', + 'get', + 'enable_response_logging', + 'disable_response_logging' + ], + 'device_info': { + 'network_os_model': 'BR-SLX9140', + 'network_os_version': '17s.1.02', + 'network_os': 'slxos' + } + } + + self.assertEqual( + mock_capabilities, + capabilities + ) diff --git a/ansible_collections/community/network/tests/unit/plugins/cliconf/test_weos4.py b/ansible_collections/community/network/tests/unit/plugins/cliconf/test_weos4.py new file mode 100644 index 000000000..9c26a40a7 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/cliconf/test_weos4.py @@ -0,0 +1,167 @@ +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) +# Copyright (c) 2020 Ernst Oudhof, ernst@mailfrom.nl +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from os import path +import json + +from mock import MagicMock, call + +from ansible_collections.community.network.tests.unit.compat import unittest +from ansible_collections.community.network.plugins.cliconf import weos4 + +FIXTURE_DIR = b'%s/fixtures/weos4' % ( + path.dirname(path.abspath(__file__)).encode('utf-8') +) + + +def _connection_side_effect(*args, **kwargs): + try: + if args: + value = args[0] + else: + value = kwargs.get('command') + + fixture_path = path.abspath( + b'%s/%s' % (FIXTURE_DIR, b'_'.join(value.split(b' '))) + ) + with open(fixture_path, 'rb') as file_desc: + return file_desc.read() + except (OSError, IOError): + if args: + value = args[0] + return value + elif kwargs.get('command'): + value = kwargs.get('command') + return value + + return 'Nope' + + +class TestPluginCLIConfWEOS4(unittest.TestCase): + """ Test class for WeOS4 CLI Conf Methods + """ + def setUp(self): + self._mock_connection = MagicMock() + self._mock_connection.send.side_effect = _connection_side_effect + self._cliconf = weos4.Cliconf(self._mock_connection) + self.maxDiff = None + + def tearDown(self): + pass + + def test_get_device_info(self): + """ Test get_device_info + """ + device_info = self._cliconf.get_device_info() + + mock_device_info = { + 'network_os': 'weos4', + 'network_os_hostname': 'weos4-router', + 'network_os_model': 'DDW-226', + 'network_os_version': '4.21.2', + } + + self.assertEqual(device_info, mock_device_info) + + def test_get_config(self): + """ Test get_config + """ + running_config = self._cliconf.get_config() + + fixture_path = path.abspath(b'%s/show_running-config' % FIXTURE_DIR) + with open(fixture_path, 'rb') as file_desc: + mock_running_config = file_desc.read() + self.assertEqual(running_config, mock_running_config) + + def test_get_diff(self): + """ Test diff_config + """ + test_diff_candidate = b'ip\n\tfirewall\n\t\tenable' + mock_diff = { + 'config_diff': 'ip\nfirewall\nenable\nend\nend', + } + + diff = self._cliconf.get_diff(test_diff_candidate) + + self.assertEqual(diff, mock_diff) + + def test_edit_config(self): + """ Test edit_config + """ + test_config_command = b'ip\nfirewall\nenable\nend\nend' + + self._cliconf.edit_config(test_config_command) + + send_calls = [] + + for command in [b'configure terminal', test_config_command, b'leave']: + send_calls.append(call( + command=command, + prompt_retry_check=False, + sendonly=False, + newline=True, + check_all=False + )) + + self._mock_connection.send.assert_has_calls(send_calls) + + def test_get_capabilities(self): + """ Test get_capabilities + """ + capabilities = json.loads(self._cliconf.get_capabilities()) + mock_capabilities = { + 'network_api': 'cliconf', + 'rpc': [ + 'get_config', + 'edit_config', + 'get_capabilities', + 'get', + 'enable_response_logging', + 'disable_response_logging', + 'get_diff', + 'run_commands', + ], + 'device_info': { + 'network_os': 'weos4', + 'network_os_hostname': 'weos4-router', + 'network_os_model': 'DDW-226', + 'network_os_version': '4.21.2', + }, + 'device_operations': { + 'supports_commit': False, + 'supports_commit_comment': False, + 'supports_defaults': False, + 'supports_diff_ignore_lines': True, + 'supports_diff_match': True, + 'supports_diff_replace': True, + 'supports_generate_diff': True, + 'supports_multiline_delimiter': False, + 'supports_onbox_diff': False, + 'supports_replace': True, + 'supports_rollback': False, + }, + 'diff_match': [ + 'line', + 'strict', + 'exact', + 'none', + ], + 'diff_replace': [ + 'line', + 'block', + 'config', + ], + 'format': [ + 'text', + ], + 'output': [ + ], + + } + + self.assertEqual( + mock_capabilities, + capabilities + ) diff --git a/ansible_collections/community/network/tests/unit/plugins/httpapi/__init__.py b/ansible_collections/community/network/tests/unit/plugins/httpapi/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/httpapi/__init__.py diff --git a/ansible_collections/community/network/tests/unit/plugins/httpapi/test_ftd.py b/ansible_collections/community/network/tests/unit/plugins/httpapi/test_ftd.py new file mode 100644 index 000000000..9c7ae6295 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/httpapi/test_ftd.py @@ -0,0 +1,416 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +import json + +from ansible.module_utils.six.moves.urllib.error import HTTPError +from ansible_collections.community.network.tests.unit.compat import mock +from ansible_collections.community.network.tests.unit.compat import unittest +from ansible_collections.community.network.tests.unit.compat.mock import mock_open, patch + +from ansible.errors import AnsibleConnectionFailure +from ansible.module_utils.connection import ConnectionError +from ansible_collections.community.network.plugins.module_utils.network.ftd.common import HTTPMethod, ResponseParams +from ansible_collections.community.network.plugins.module_utils.network.ftd.fdm_swagger_client import SpecProp, FdmSwaggerParser +from ansible.module_utils.six import BytesIO, PY3, StringIO +from ansible_collections.community.network.plugins.httpapi.ftd import HttpApi, BASE_HEADERS, TOKEN_PATH_TEMPLATE, DEFAULT_API_VERSIONS + + +if PY3: + BUILTINS_NAME = 'builtins' +else: + BUILTINS_NAME = '__builtin__' + + +class FakeFtdHttpApiPlugin(HttpApi): + def __init__(self, conn): + super(FakeFtdHttpApiPlugin, self).__init__(conn) + self.hostvars = { + 'token_path': '/testLoginUrl', + 'spec_path': '/testSpecUrl' + } + + def get_option(self, var): + return self.hostvars[var] + + def set_option(self, option, value): + self.hostvars[option] = value + + +class TestFtdHttpApi(unittest.TestCase): + + def setUp(self): + self.connection_mock = mock.Mock() + self.ftd_plugin = FakeFtdHttpApiPlugin(self.connection_mock) + self.ftd_plugin.access_token = 'ACCESS_TOKEN' + self.ftd_plugin._load_name = 'httpapi' + + def test_login_should_request_tokens_when_no_refresh_token(self): + self.connection_mock.send.return_value = self._connection_response( + {'access_token': 'ACCESS_TOKEN', 'refresh_token': 'REFRESH_TOKEN'} + ) + + self.ftd_plugin.login('foo', 'bar') + + assert 'ACCESS_TOKEN' == self.ftd_plugin.access_token + assert 'REFRESH_TOKEN' == self.ftd_plugin.refresh_token + assert {'Authorization': 'Bearer ACCESS_TOKEN'} == self.ftd_plugin.connection._auth + expected_body = json.dumps({'grant_type': 'password', 'username': 'foo', 'password': 'bar'}) + self.connection_mock.send.assert_called_once_with(mock.ANY, expected_body, headers=mock.ANY, method=mock.ANY) + + def test_login_should_update_tokens_when_refresh_token_exists(self): + self.ftd_plugin.refresh_token = 'REFRESH_TOKEN' + self.connection_mock.send.return_value = self._connection_response( + {'access_token': 'NEW_ACCESS_TOKEN', 'refresh_token': 'NEW_REFRESH_TOKEN'} + ) + + self.ftd_plugin.login('foo', 'bar') + + assert 'NEW_ACCESS_TOKEN' == self.ftd_plugin.access_token + assert 'NEW_REFRESH_TOKEN' == self.ftd_plugin.refresh_token + assert {'Authorization': 'Bearer NEW_ACCESS_TOKEN'} == self.ftd_plugin.connection._auth + expected_body = json.dumps({'grant_type': 'refresh_token', 'refresh_token': 'REFRESH_TOKEN'}) + self.connection_mock.send.assert_called_once_with(mock.ANY, expected_body, headers=mock.ANY, method=mock.ANY) + + def test_login_should_use_env_variable_when_set(self): + temp_token_path = self.ftd_plugin.hostvars['token_path'] + self.ftd_plugin.hostvars['token_path'] = '/testFakeLoginUrl' + self.connection_mock.send.return_value = self._connection_response( + {'access_token': 'ACCESS_TOKEN', 'refresh_token': 'REFRESH_TOKEN'} + ) + + self.ftd_plugin.login('foo', 'bar') + + self.connection_mock.send.assert_called_once_with('/testFakeLoginUrl', mock.ANY, headers=mock.ANY, + method=mock.ANY) + self.ftd_plugin.hostvars['token_path'] = temp_token_path + + def test_login_raises_exception_when_no_refresh_token_and_no_credentials(self): + with self.assertRaises(AnsibleConnectionFailure) as res: + self.ftd_plugin.login(None, None) + assert 'Username and password are required' in str(res.exception) + + def test_login_raises_exception_when_invalid_response(self): + self.connection_mock.send.return_value = self._connection_response( + {'no_access_token': 'ACCESS_TOKEN'} + ) + + with self.assertRaises(ConnectionError) as res: + self.ftd_plugin.login('foo', 'bar') + + assert 'Server returned response without token info during connection authentication' in str(res.exception) + + def test_login_raises_exception_when_http_error(self): + self.connection_mock.send.side_effect = HTTPError('http://testhost.com', 400, '', {}, + StringIO('{"message": "Failed to authenticate user"}')) + + with self.assertRaises(ConnectionError) as res: + self.ftd_plugin.login('foo', 'bar') + + assert 'Failed to authenticate user' in str(res.exception) + + def test_logout_should_revoke_tokens(self): + self.ftd_plugin.access_token = 'ACCESS_TOKEN_TO_REVOKE' + self.ftd_plugin.refresh_token = 'REFRESH_TOKEN_TO_REVOKE' + self.connection_mock.send.return_value = self._connection_response(None) + + self.ftd_plugin.logout() + + assert self.ftd_plugin.access_token is None + assert self.ftd_plugin.refresh_token is None + expected_body = json.dumps({'grant_type': 'revoke_token', 'access_token': 'ACCESS_TOKEN_TO_REVOKE', + 'token_to_revoke': 'REFRESH_TOKEN_TO_REVOKE'}) + self.connection_mock.send.assert_called_once_with(mock.ANY, expected_body, headers=mock.ANY, method=mock.ANY) + + def test_send_request_should_send_correct_request(self): + exp_resp = {'id': '123', 'name': 'foo'} + self.connection_mock.send.return_value = self._connection_response(exp_resp) + + resp = self.ftd_plugin.send_request('/test/{objId}', HTTPMethod.PUT, + body_params={'name': 'foo'}, + path_params={'objId': '123'}, + query_params={'at': 0}) + + assert {ResponseParams.SUCCESS: True, ResponseParams.STATUS_CODE: 200, + ResponseParams.RESPONSE: exp_resp} == resp + self.connection_mock.send.assert_called_once_with('/test/123?at=0', '{"name": "foo"}', method=HTTPMethod.PUT, + headers=BASE_HEADERS) + + def test_send_request_should_return_empty_dict_when_no_response_data(self): + self.connection_mock.send.return_value = self._connection_response(None) + + resp = self.ftd_plugin.send_request('/test', HTTPMethod.GET) + + assert {ResponseParams.SUCCESS: True, ResponseParams.STATUS_CODE: 200, ResponseParams.RESPONSE: {}} == resp + self.connection_mock.send.assert_called_once_with('/test', None, method=HTTPMethod.GET, + headers=BASE_HEADERS) + + def test_send_request_should_return_error_info_when_http_error_raises(self): + self.connection_mock.send.side_effect = HTTPError('http://testhost.com', 500, '', {}, + StringIO('{"errorMessage": "ERROR"}')) + + resp = self.ftd_plugin.send_request('/test', HTTPMethod.GET) + + assert {ResponseParams.SUCCESS: False, ResponseParams.STATUS_CODE: 500, + ResponseParams.RESPONSE: {'errorMessage': 'ERROR'}} == resp + + def test_send_request_raises_exception_when_invalid_response(self): + self.connection_mock.send.return_value = self._connection_response('nonValidJson') + + with self.assertRaises(ConnectionError) as res: + self.ftd_plugin.send_request('/test', HTTPMethod.GET) + + assert 'Invalid JSON response' in str(res.exception) + + def test_handle_httperror_should_update_tokens_and_retry_on_auth_errors(self): + self.ftd_plugin.refresh_token = 'REFRESH_TOKEN' + self.connection_mock.send.return_value = self._connection_response( + {'access_token': 'NEW_ACCESS_TOKEN', 'refresh_token': 'NEW_REFRESH_TOKEN'} + ) + + retry = self.ftd_plugin.handle_httperror(HTTPError('http://testhost.com', 401, '', {}, None)) + + assert retry + assert 'NEW_ACCESS_TOKEN' == self.ftd_plugin.access_token + assert 'NEW_REFRESH_TOKEN' == self.ftd_plugin.refresh_token + + def test_handle_httperror_should_not_retry_on_non_auth_errors(self): + assert not self.ftd_plugin.handle_httperror(HTTPError('http://testhost.com', 500, '', {}, None)) + + def test_handle_httperror_should_not_retry_when_ignoring_http_errors(self): + self.ftd_plugin._ignore_http_errors = True + assert not self.ftd_plugin.handle_httperror(HTTPError('http://testhost.com', 401, '', {}, None)) + + @patch('os.path.isdir', mock.Mock(return_value=False)) + def test_download_file(self): + self.connection_mock.send.return_value = self._connection_response('File content') + + open_mock = mock_open() + with patch('%s.open' % BUILTINS_NAME, open_mock): + self.ftd_plugin.download_file('/files/1', '/tmp/test.txt') + + open_mock.assert_called_once_with('/tmp/test.txt', 'wb') + open_mock().write.assert_called_once_with(b'File content') + + @patch('os.path.isdir', mock.Mock(return_value=True)) + def test_download_file_should_extract_filename_from_headers(self): + filename = 'test_file.txt' + response = mock.Mock() + response.info.return_value = {'Content-Disposition': 'attachment; filename="%s"' % filename} + dummy, response_data = self._connection_response('File content') + self.connection_mock.send.return_value = response, response_data + + open_mock = mock_open() + with patch('%s.open' % BUILTINS_NAME, open_mock): + self.ftd_plugin.download_file('/files/1', '/tmp/') + + open_mock.assert_called_once_with('/tmp/%s' % filename, 'wb') + open_mock().write.assert_called_once_with(b'File content') + + @patch('os.path.basename', mock.Mock(return_value='test.txt')) + @patch('ansible_collections.community.network.plugins.httpapi.ftd.encode_multipart_formdata', + mock.Mock(return_value=('--Encoded data--', 'multipart/form-data'))) + def test_upload_file(self): + self.connection_mock.send.return_value = self._connection_response({'id': '123'}) + + open_mock = mock_open() + with patch('%s.open' % BUILTINS_NAME, open_mock): + resp = self.ftd_plugin.upload_file('/tmp/test.txt', '/files') + + assert {'id': '123'} == resp + exp_headers = dict(BASE_HEADERS) + exp_headers['Content-Length'] = len('--Encoded data--') + exp_headers['Content-Type'] = 'multipart/form-data' + self.connection_mock.send.assert_called_once_with('/files', data='--Encoded data--', + headers=exp_headers, method=HTTPMethod.POST) + open_mock.assert_called_once_with('/tmp/test.txt', 'rb') + + @patch('os.path.basename', mock.Mock(return_value='test.txt')) + @patch('ansible_collections.community.network.plugins.httpapi.ftd.encode_multipart_formdata', + mock.Mock(return_value=('--Encoded data--', 'multipart/form-data'))) + def test_upload_file_raises_exception_when_invalid_response(self): + self.connection_mock.send.return_value = self._connection_response('invalidJsonResponse') + + open_mock = mock_open() + with patch('%s.open' % BUILTINS_NAME, open_mock): + with self.assertRaises(ConnectionError) as res: + self.ftd_plugin.upload_file('/tmp/test.txt', '/files') + + assert 'Invalid JSON response' in str(res.exception) + + @patch.object(FdmSwaggerParser, 'parse_spec') + def test_get_operation_spec(self, parse_spec_mock): + self.connection_mock.send.return_value = self._connection_response(None) + parse_spec_mock.return_value = { + SpecProp.OPERATIONS: {'testOp': 'Specification for testOp'} + } + + assert 'Specification for testOp' == self.ftd_plugin.get_operation_spec('testOp') + assert self.ftd_plugin.get_operation_spec('nonExistingTestOp') is None + + @patch.object(FdmSwaggerParser, 'parse_spec') + def test_get_model_spec(self, parse_spec_mock): + self.connection_mock.send.return_value = self._connection_response(None) + parse_spec_mock.return_value = { + SpecProp.MODELS: {'TestModel': 'Specification for TestModel'} + } + + assert 'Specification for TestModel' == self.ftd_plugin.get_model_spec('TestModel') + assert self.ftd_plugin.get_model_spec('NonExistingTestModel') is None + + @patch.object(FdmSwaggerParser, 'parse_spec') + def test_get_operation_spec_by_model_name(self, parse_spec_mock): + self.connection_mock.send.return_value = self._connection_response(None) + operation1 = {'modelName': 'TestModel'} + op_model_name_is_none = {'modelName': None} + op_without_model_name = {'url': 'testUrl'} + + parse_spec_mock.return_value = { + SpecProp.MODEL_OPERATIONS: { + 'TestModel': { + 'testOp1': operation1, + 'testOp2': 'spec2' + }, + 'TestModel2': { + 'testOp10': 'spec10', + 'testOp20': 'spec20' + } + }, + SpecProp.OPERATIONS: { + 'testOp1': operation1, + 'testOp10': { + 'modelName': 'TestModel2' + }, + 'testOpWithoutModelName': op_without_model_name, + 'testOpModelNameIsNone': op_model_name_is_none + } + } + + assert {'testOp1': operation1, 'testOp2': 'spec2'} == self.ftd_plugin.get_operation_specs_by_model_name( + 'TestModel') + assert None is self.ftd_plugin.get_operation_specs_by_model_name( + 'testOpModelNameIsNone') + + assert None is self.ftd_plugin.get_operation_specs_by_model_name( + 'testOpWithoutModelName') + + assert self.ftd_plugin.get_operation_specs_by_model_name('nonExistingOperation') is None + + @staticmethod + def _connection_response(response, status=200): + response_mock = mock.Mock() + response_mock.getcode.return_value = status + response_text = json.dumps(response) if type(response) is dict else response + response_data = BytesIO(response_text.encode() if response_text else ''.encode()) + return response_mock, response_data + + def test_get_list_of_supported_api_versions_with_failed_http_request(self): + error_msg = "Invalid Credentials" + fp = mock.MagicMock() + fp.read.return_value = '{{"error-msg": "{0}"}}'.format(error_msg) + send_mock = mock.MagicMock(side_effect=HTTPError('url', 400, 'msg', 'hdrs', fp)) + with mock.patch.object(self.ftd_plugin.connection, 'send', send_mock): + with self.assertRaises(ConnectionError) as res: + self.ftd_plugin._get_supported_api_versions() + + assert error_msg in str(res.exception) + + def test_get_list_of_supported_api_versions_with_buggy_response(self): + error_msg = "Non JSON value" + http_response_mock = mock.MagicMock() + http_response_mock.getvalue.return_value = error_msg + + send_mock = mock.MagicMock(return_value=(None, http_response_mock)) + + with mock.patch.object(self.ftd_plugin.connection, 'send', send_mock): + with self.assertRaises(ConnectionError) as res: + self.ftd_plugin._get_supported_api_versions() + assert error_msg in str(res.exception) + + def test_get_list_of_supported_api_versions_with_positive_response(self): + http_response_mock = mock.MagicMock() + http_response_mock.getvalue.return_value = '{"supportedVersions": ["v1"]}' + + send_mock = mock.MagicMock(return_value=(None, http_response_mock)) + with mock.patch.object(self.ftd_plugin.connection, 'send', send_mock): + supported_versions = self.ftd_plugin._get_supported_api_versions() + assert supported_versions == ['v1'] + + @patch('ansible_collections.community.network.plugins.httpapi.ftd.HttpApi._get_api_token_path', mock.MagicMock(return_value=None)) + @patch('ansible_collections.community.network.plugins.httpapi.ftd.HttpApi._get_known_token_paths') + def test_lookup_login_url_with_empty_response(self, get_known_token_paths_mock): + payload = mock.MagicMock() + get_known_token_paths_mock.return_value = [] + self.assertRaises( + ConnectionError, + self.ftd_plugin._lookup_login_url, + payload + ) + + @patch('ansible_collections.community.network.plugins.httpapi.ftd.HttpApi._get_known_token_paths') + @patch('ansible_collections.community.network.plugins.httpapi.ftd.HttpApi._send_login_request') + def test_lookup_login_url_with_failed_request(self, api_request_mock, get_known_token_paths_mock): + payload = mock.MagicMock() + url = mock.MagicMock() + get_known_token_paths_mock.return_value = [url] + api_request_mock.side_effect = ConnectionError('Error message') + with mock.patch.object(self.ftd_plugin.connection, 'queue_message') as display_mock: + self.assertRaises( + ConnectionError, + self.ftd_plugin._lookup_login_url, + payload + ) + assert display_mock.called + + @patch('ansible_collections.community.network.plugins.httpapi.ftd.HttpApi._get_api_token_path', mock.MagicMock(return_value=None)) + @patch('ansible_collections.community.network.plugins.httpapi.ftd.HttpApi._get_known_token_paths') + @patch('ansible_collections.community.network.plugins.httpapi.ftd.HttpApi._send_login_request') + @patch('ansible_collections.community.network.plugins.httpapi.ftd.HttpApi._set_api_token_path') + def test_lookup_login_url_with_positive_result(self, set_api_token_mock, api_request_mock, + get_known_token_paths_mock): + payload = mock.MagicMock() + url = mock.MagicMock() + get_known_token_paths_mock.return_value = [url] + response_mock = mock.MagicMock() + api_request_mock.return_value = response_mock + + resp = self.ftd_plugin._lookup_login_url(payload) + + set_api_token_mock.assert_called_once_with(url) + assert resp == response_mock + + @patch('ansible_collections.community.network.plugins.httpapi.ftd.HttpApi._get_supported_api_versions') + def test_get_known_token_paths_with_positive_response(self, get_list_of_supported_api_versions_mock): + test_versions = ['v1', 'v2'] + get_list_of_supported_api_versions_mock.return_value = test_versions + result = self.ftd_plugin._get_known_token_paths() + assert result == [TOKEN_PATH_TEMPLATE.format(version) for version in test_versions] + + @patch('ansible_collections.community.network.plugins.httpapi.ftd.HttpApi._get_supported_api_versions') + def test_get_known_token_paths_with_failed_api_call(self, get_list_of_supported_api_versions_mock): + get_list_of_supported_api_versions_mock.side_effect = ConnectionError('test error message') + result = self.ftd_plugin._get_known_token_paths() + assert result == [TOKEN_PATH_TEMPLATE.format(version) for version in DEFAULT_API_VERSIONS] + + def test_set_api_token_path(self): + url = mock.MagicMock() + self.ftd_plugin._set_api_token_path(url) + assert self.ftd_plugin._get_api_token_path() == url diff --git a/ansible_collections/community/network/tests/unit/plugins/lookup/__init__.py b/ansible_collections/community/network/tests/unit/plugins/lookup/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/lookup/__init__.py diff --git a/ansible_collections/community/network/tests/unit/plugins/lookup/fixtures/avi.json b/ansible_collections/community/network/tests/unit/plugins/lookup/fixtures/avi.json new file mode 100644 index 000000000..ae89ca689 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/lookup/fixtures/avi.json @@ -0,0 +1,104 @@ +{ + "mock_single_obj": { + "_last_modified": "", + "cloud_ref": "https://192.0.2.132/api/cloud/cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "dhcp_enabled": true, + "exclude_discovered_subnets": false, + "name": "PG-123", + "synced_from_se": true, + "tenant_ref": "https://192.0.2.132/api/tenant/admin", + "url": "https://192.0.2.132/api/network/dvportgroup-2084-cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "uuid": "dvportgroup-2084-cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "vcenter_dvs": true, + "vimgrnw_ref": "https://192.0.2.132/api/vimgrnwruntime/dvportgroup-2084-cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "vrf_context_ref": "https://192.0.2.132/api/vrfcontext/vrfcontext-31f1b55f-319c-44eb-862f-69d79ffdf295" + }, + "mock_multiple_obj": { + "results": [ + { + "_last_modified": "", + "cloud_ref": "https://192.0.2.132/api/cloud/cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "dhcp_enabled": true, + "exclude_discovered_subnets": false, + "name": "J-PG-0682", + "synced_from_se": true, + "tenant_ref": "https://192.0.2.132/api/tenant/admin", + "url": "https://192.0.2.132/api/network/dvportgroup-2084-cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "uuid": "dvportgroup-2084-cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "vcenter_dvs": true, + "vimgrnw_ref": "https://192.0.2.132/api/vimgrnwruntime/dvportgroup-2084-cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "vrf_context_ref": "https://192.0.2.132/api/vrfcontext/vrfcontext-31f1b55f-319c-44eb-862f-69d79ffdf295" + }, + { + "_last_modified": "", + "cloud_ref": "https://192.0.2.132/api/cloud/cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "dhcp_enabled": true, + "exclude_discovered_subnets": false, + "name": "J-PG-0231", + "synced_from_se": true, + "tenant_ref": "https://192.0.2.132/api/tenant/admin", + "url": "https://192.0.2.132/api/network/dvportgroup-1627-cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "uuid": "dvportgroup-1627-cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "vcenter_dvs": true, + "vimgrnw_ref": "https://192.0.2.132/api/vimgrnwruntime/dvportgroup-1627-cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "vrf_context_ref": "https://192.0.2.132/api/vrfcontext/vrfcontext-31f1b55f-319c-44eb-862f-69d79ffdf295" + }, + { + "_last_modified": "", + "cloud_ref": "https://192.0.2.132/api/cloud/cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "dhcp_enabled": true, + "exclude_discovered_subnets": false, + "name": "J-PG-0535", + "synced_from_se": true, + "tenant_ref": "https://192.0.2.132/api/tenant/admin", + "url": "https://192.0.2.132/api/network/dvportgroup-1934-cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "uuid": "dvportgroup-1934-cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "vcenter_dvs": true, + "vimgrnw_ref": "https://192.0.2.132/api/vimgrnwruntime/dvportgroup-1934-cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "vrf_context_ref": "https://192.0.2.132/api/vrfcontext/vrfcontext-31f1b55f-319c-44eb-862f-69d79ffdf295" + }, + { + "_last_modified": "", + "cloud_ref": "https://192.0.2.132/api/cloud/cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "dhcp_enabled": true, + "exclude_discovered_subnets": false, + "name": "J-PG-0094", + "synced_from_se": true, + "tenant_ref": "https://192.0.2.132/api/tenant/admin", + "url": "https://192.0.2.132/api/network/dvportgroup-1458-cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "uuid": "dvportgroup-1458-cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "vcenter_dvs": true, + "vimgrnw_ref": "https://192.0.2.132/api/vimgrnwruntime/dvportgroup-1458-cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "vrf_context_ref": "https://192.0.2.132/api/vrfcontext/vrfcontext-31f1b55f-319c-44eb-862f-69d79ffdf295" + }, + { + "_last_modified": "", + "cloud_ref": "https://192.0.2.132/api/cloud/cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "dhcp_enabled": true, + "exclude_discovered_subnets": false, + "name": "J-PG-0437", + "synced_from_se": true, + "tenant_ref": "https://192.0.2.132/api/tenant/admin", + "url": "https://192.0.2.132/api/network/dvportgroup-1836-cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "uuid": "dvportgroup-1836-cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "vcenter_dvs": true, + "vimgrnw_ref": "https://192.0.2.132/api/vimgrnwruntime/dvportgroup-1836-cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "vrf_context_ref": "https://192.0.2.132/api/vrfcontext/vrfcontext-31f1b55f-319c-44eb-862f-69d79ffdf295" + }, + { + "_last_modified": "", + "cloud_ref": "https://192.0.2.132/api/cloud/cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "dhcp_enabled": true, + "exclude_discovered_subnets": false, + "name": "J-PG-0673", + "synced_from_se": true, + "tenant_ref": "https://192.0.2.132/api/tenant/admin", + "url": "https://192.0.2.132/api/network/dvportgroup-2075-cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "uuid": "dvportgroup-2075-cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "vcenter_dvs": true, + "vimgrnw_ref": "https://192.0.2.132/api/vimgrnwruntime/dvportgroup-2075-cloud-4d063be1-99c2-44cf-8b28-977bd970524c", + "vrf_context_ref": "https://192.0.2.132/api/vrfcontext/vrfcontext-31f1b55f-319c-44eb-862f-69d79ffdf295" + } + ] + } +} diff --git a/ansible_collections/community/network/tests/unit/plugins/lookup/test_avi.py b/ansible_collections/community/network/tests/unit/plugins/lookup/test_avi.py new file mode 100644 index 000000000..9989bbaf4 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/lookup/test_avi.py @@ -0,0 +1,92 @@ +# -*- coding: utf-8 -*- +# (c) 2019, Sandeep Bandi <sandeepb@avinetworks.com> +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os +import pytest +import json + +from ansible_collections.community.network.tests.unit.compat.mock import patch, MagicMock + +from ansible.errors import AnsibleError +from ansible.plugins.loader import lookup_loader +from ansible_collections.community.network.plugins.lookup import avi + + +try: + import builtins as __builtin__ +except ImportError: + import __builtin__ + + +fixture_path = os.path.join(os.path.dirname(__file__), 'fixtures') + +with open(fixture_path + '/avi.json') as json_file: + data = json.load(json_file) + + +@pytest.fixture +def dummy_credentials(): + dummy_credentials = {} + dummy_credentials['controller'] = "192.0.2.13" + dummy_credentials['username'] = "admin" + dummy_credentials['password'] = "password" + dummy_credentials['api_version'] = "17.2.14" + dummy_credentials['tenant'] = 'admin' + return dummy_credentials + + +@pytest.fixture +def super_switcher(scope="function", autouse=True): + # Mocking the inbuilt super as it is used in ApiSession initialization + original_super = __builtin__.super + __builtin__.super = MagicMock() + yield + # Revert the super to default state + __builtin__.super = original_super + + +def test_lookup_multiple_obj(dummy_credentials): + avi_lookup = lookup_loader.get('community.network.avi') + avi_mock = MagicMock() + avi_mock.return_value.get.return_value.json.return_value = data["mock_multiple_obj"] + with patch.object(avi, 'ApiSession', avi_mock): + retval = avi_lookup.run([], {}, avi_credentials=dummy_credentials, + obj_type="network") + assert retval == data["mock_multiple_obj"]["results"] + + +def test_lookup_single_obj(dummy_credentials): + avi_lookup = lookup_loader.get('community.network.avi') + avi_mock = MagicMock() + avi_mock.return_value.get_object_by_name.return_value = data["mock_single_obj"] + with patch.object(avi, 'ApiSession', avi_mock): + retval = avi_lookup.run([], {}, avi_credentials=dummy_credentials, + obj_type="network", obj_name='PG-123') + assert retval[0] == data["mock_single_obj"] + + +def test_invalid_lookup(dummy_credentials): + avi_lookup = lookup_loader.get('community.network.avi') + avi_mock = MagicMock() + with pytest.raises(AnsibleError): + with patch.object(avi, 'ApiSession', avi_mock): + avi_lookup.run([], {}, avi_credentials=dummy_credentials) diff --git a/ansible_collections/community/network/tests/unit/plugins/module_utils/network/__init__.py b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/__init__.py diff --git a/ansible_collections/community/network/tests/unit/plugins/module_utils/network/avi/__init__.py b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/avi/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/avi/__init__.py diff --git a/ansible_collections/community/network/tests/unit/plugins/module_utils/network/avi/test_avi_api_utils.py b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/avi/test_avi_api_utils.py new file mode 100644 index 000000000..105ea62e1 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/avi/test_avi_api_utils.py @@ -0,0 +1,703 @@ +''' +Created on Aug 16, 2016 + +@author: grastogi +''' + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +import unittest +from ansible_collections.community.network.plugins.module_utils.network.avi.ansible_utils import \ + cleanup_absent_fields, avi_obj_cmp + + +class TestAviApiUtils(unittest.TestCase): + + def test_avi_obj_cmp(self): + obj = {'name': 'testpool'} + existing_obj = { + 'lb_algorithm': 'LB_ALGORITHM_LEAST_CONNECTIONS', + 'use_service_port': False, + 'server_auto_scale': False, + 'host_check_enabled': False, + 'enabled': True, + 'capacity_estimation': False, + 'fewest_tasks_feedback_delay': 10, + '_last_modified': '1471377748747040', + 'cloud_ref': 'https://192.0.2.42/api/cloud/cloud-afe8bf2c-9821-4272-9bc6-67634c84bec9', + 'vrf_ref': 'https://192.0.2.42/api/vrfcontext/vrfcontext-0e8ce760-fed2-4650-9397-5b3e4966376e', + 'inline_health_monitor': True, + 'default_server_port': 80, + 'request_queue_depth': 128, + 'graceful_disable_timeout': 1, + 'server_count': 0, + 'sni_enabled': True, + 'request_queue_enabled': False, + 'name': 'testpool', + 'max_concurrent_connections_per_server': 0, + 'url': 'https://192.0.2.42/api/pool/pool-20084ee1-872e-4103-98e1-899103e2242a', + 'tenant_ref': 'https://192.0.2.42/api/tenant/admin', + 'uuid': 'pool-20084ee1-872e-4103-98e1-899103e2242a', + 'connection_ramp_duration': 10} + + diff = avi_obj_cmp(obj, existing_obj) + assert diff + + def test_avi_obj_cmp_w_refs(self): + obj = {'name': 'testpool', + 'health_monitor_refs': ['/api/healthmonitor?name=System-HTTP'], + 'enabled': True} + existing_obj = { + 'lb_algorithm': 'LB_ALGORITHM_LEAST_CONNECTIONS', + 'use_service_port': False, + 'server_auto_scale': False, + 'host_check_enabled': False, + 'enabled': True, + 'capacity_estimation': False, + 'fewest_tasks_feedback_delay': 10, + '_last_modified': '1471377748747040', + 'cloud_ref': 'https://192.0.2.42/api/cloud/cloud-afe8bf2c-9821-4272-9bc6-67634c84bec9', + 'vrf_ref': 'https://192.0.2.42/api/vrfcontext/vrfcontext-0e8ce760-fed2-4650-9397-5b3e4966376e', + 'inline_health_monitor': True, + 'default_server_port': 80, + 'request_queue_depth': 128, + 'graceful_disable_timeout': 1, + 'server_count': 0, + 'sni_enabled': True, + 'request_queue_enabled': False, + 'name': 'testpool', + 'max_concurrent_connections_per_server': 0, + 'url': 'https://192.0.2.42/api/pool/pool-20084ee1-872e-4103-98e1-899103e2242a', + 'tenant_ref': 'https://192.0.2.42/api/tenant/admin', + 'uuid': 'pool-20084ee1-872e-4103-98e1-899103e2242a', + 'connection_ramp_duration': 10, + 'health_monitor_refs': [ + "https://192.0.2.42/api/healthmonitor/healthmonitor-6d07b57f-126b-476c-baba-a8c8c8b06dc9#System-HTTP"], + } + + diff = avi_obj_cmp(obj, existing_obj) + assert diff + + obj = {'name': 'testpool', + 'health_monitor_refs': ['/api/healthmonitor?name=System-HTTP'], + 'server_count': 1} + diff = avi_obj_cmp(obj, existing_obj) + assert not diff + + obj = {'name': 'testpool', + 'health_monitor_refs': ['api/healthmonitor?name=System-HTTP'], + 'server_count': 0} + diff = avi_obj_cmp(obj, existing_obj) + assert not diff + obj = {'name': 'testpool', + 'health_monitor_refs': ['healthmonitor-6d07b57f-126b-476c-baba-a8c8c8b06dc9'], + 'server_count': 0} + diff = avi_obj_cmp(obj, existing_obj) + assert diff + obj = {'name': 'testpool#asdfasf', + 'health_monitor_refs': ['api/healthmonitor?name=System-HTTP'], + 'server_count': 0} + diff = avi_obj_cmp(obj, existing_obj) + assert not diff + obj = {'name': 'testpool', + 'health_monitor_refs': ['/api/healthmonitor?name=System-HTTP#'], + 'server_count': 0} + diff = avi_obj_cmp(obj, existing_obj) + assert not diff + + def test_avi_obj_cmp_empty_list(self): + obj = {'name': 'testpool', + 'health_monitor_refs': [], + 'enabled': True} + existing_obj = { + 'lb_algorithm': 'LB_ALGORITHM_LEAST_CONNECTIONS', + 'use_service_port': False, + 'server_auto_scale': False, + 'host_check_enabled': False, + 'enabled': True, + 'capacity_estimation': False, + 'fewest_tasks_feedback_delay': 10, + '_last_modified': '1471377748747040', + 'cloud_ref': 'https://192.0.2.42/api/cloud/cloud-afe8bf2c-9821-4272-9bc6-67634c84bec9', + 'vrf_ref': 'https://192.0.2.42/api/vrfcontext/vrfcontext-0e8ce760-fed2-4650-9397-5b3e4966376e', + 'inline_health_monitor': True, + 'default_server_port': 80, + 'request_queue_depth': 128, + 'graceful_disable_timeout': 1, + 'server_count': 0, + 'sni_enabled': True, + 'request_queue_enabled': False, + 'name': 'testpool', + 'max_concurrent_connections_per_server': 0, + 'url': 'https://192.0.2.42/api/pool/pool-20084ee1-872e-4103-98e1-899103e2242a', + 'tenant_ref': 'https://192.0.2.42/api/tenant/admin', + 'uuid': 'pool-20084ee1-872e-4103-98e1-899103e2242a', + 'connection_ramp_duration': 10 + } + diff = avi_obj_cmp(obj, existing_obj) + assert diff + + def test_avi_obj_cmp_w_refs_n_name(self): + existing_obj = { + 'use_service_port': False, + 'server_auto_scale': False, + 'host_check_enabled': False, + 'enabled': True, + 'capacity_estimation': False, + 'fewest_tasks_feedback_delay': 10, + '_last_modified': '1471377748747040', + 'cloud_ref': 'https://192.0.2.42/api/cloud/cloud-afe8bf2c-9821-4272-9bc6-67634c84bec9', + 'vrf_ref': 'https://192.0.2.42/api/vrfcontext/vrfcontext-0e8ce760-fed2-4650-9397-5b3e4966376e', + 'inline_health_monitor': True, + 'default_server_port': 80, + 'request_queue_depth': 128, + 'graceful_disable_timeout': 1, + 'server_count': 0, + 'sni_enabled': True, + 'request_queue_enabled': False, + 'name': 'testpool', + 'max_concurrent_connections_per_server': 0, + 'url': 'https://192.0.2.42/api/pool/pool-20084ee1-872e-4103-98e1-899103e2242a', + 'tenant_ref': 'https://192.0.2.42/api/tenant/admin', + 'uuid': 'pool-20084ee1-872e-4103-98e1-899103e2242a', + 'connection_ramp_duration': 10, + 'health_monitor_refs': [ + "https://192.0.2.42/api/healthmonitor/healthmonitor-6d07b57f-126b-476c-baba-a8c8c8b06dc9#System-HTTP", + "https://192.0.2.42/api/healthmonitor/healthmonitor-6d07b57f-126b-476c-baba-a8c8c8b06dc8", + ], + } + + obj = {'name': 'testpool', + 'health_monitor_refs': ['https://192.0.2.42/api/healthmonitor/healthmonitor-6d07b57f-126b-476c-baba-a8c8c8b06dc9', + "https://192.0.2.42/api/healthmonitor/healthmonitor-6d07b57f-126b-476c-baba-a8c8c8b06dc8"], + 'server_count': 0} + diff = avi_obj_cmp(obj, existing_obj) + assert diff + + obj = {'name': 'testpool', + 'health_monitor_refs': [ + 'https://192.0.2.42/api/healthmonitor/healthmonitor-6d07b57f-126b-476c-baba-a8c8c8b06dc9#System-HTTP', + "https://192.0.2.42/api/healthmonitor/healthmonitor-6d07b57f-126b-476c-baba-a8c8c8b06dc8"], + 'server_count': 0} + diff = avi_obj_cmp(obj, existing_obj) + assert diff + + obj = {'name': 'testpool', + 'health_monitor_refs': [ + 'https://192.0.2.42/api/healthmonitor/healthmonitor-6d07b57f-126b-476c-baba-a8c8c8b06dc9#System-HTTP', + "https://192.0.2.42/api/healthmonitor/healthmonitor-6d07b57f-126b-476c-baba-a8c8c8b06dc8#System-HTTP2"], + 'server_count': 0, + 'cloud_ref': 'https://192.0.2.42/api/cloud/cloud-afe8bf2c-9821-4272-9bc6-67634c84bec9#Default-Cloud', + } + diff = avi_obj_cmp(obj, existing_obj) + assert diff + + def test_avi_list_update(self): + existing_obj = { + 'services': [ + { + "enable_ssl": False, + "port_range_end": 80, + "port": 80 + }, + { + "enable_ssl": False, + "port_range_end": 443, + "port": 443 + } + ], + "name": "vs-health-test", + "url": "https://192.0.2.42/api/virtualservice/virtualservice-526c55c2-df89-40b9-9de6-e45a472290aa", + } + + obj = { + 'services': [ + { + "enable_ssl": False, + "port_range_end": 80, + "port": 80 + } + ] + } + + diff = avi_obj_cmp(obj, existing_obj) + assert not diff + + obj = { + 'services': [ + { + "enable_ssl": False, + "port_range_end": 80, + "port": 80 + }, + { + "enable_ssl": False, + "port_range_end": 443, + "port": 80 + } + ], + "name": "vs-health-test", + "url": "https://192.0.2.42/api/virtualservice/virtualservice-526c55c2-df89-40b9-9de6-e45a472290aa", + } + + diff = avi_obj_cmp(obj, existing_obj) + assert not diff + + def test_cleanup_abset(self): + obj = {'x': 10, + 'y': {'state': 'absent'}, + 'z': {'a': {'state': 'absent'}}, + 'l': [{'y1': {'state': 'absent'}}], + 'z1': {'a': {'state': 'absent'}, 'b': {}, 'c': 42}, + 'empty': []} + + obj = cleanup_absent_fields(obj) + + assert 'y' not in obj + assert 'z' not in obj + assert 'l' not in obj + assert 'z1' in obj + assert 'b' not in obj['z1'] + assert 'a' not in obj['z1'] + assert 'empty' not in obj + + def test_complex_obj(self): + + obj = { + 'lb_algorithm': 'LB_ALGORITHM_ROUND_ROBIN', + 'use_service_port': False, 'server_auto_scale': False, + 'host_check_enabled': False, + 'tenant_ref': 'https://192.0.2.42/api/tenant/admin#admin', + 'capacity_estimation': False, + 'servers': [{ + 'hostname': 'grastogi-server6', 'ratio': 1, + 'ip': {'type': 'V4', 'addr': '198.51.100.62'}, + 'discovered_networks': [{ + 'subnet': [{ + 'ip_addr': { + 'type': 'V4', + 'addr': '198.51.100.0' + }, + 'mask': 24 + }], + 'network_ref': 'https://192.0.2.42/api/network/dvportgroup-53975-10.10.2.10#PG-964' + }], + 'enabled': True, 'nw_ref': 'https://192.0.2.42/api/vimgrnwruntime/dvportgroup-53975-10.10.2.10#PG-964', + 'verify_network': False, + 'static': False, + 'resolve_server_by_dns': False, + 'external_uuid': 'vm-4230615e-bc0b-3d33-3929-1c7328575993', + 'vm_ref': 'https://192.0.2.42/api/vimgrvmruntime/vm-4230615e-bc0b-3d33-3929-1c7328575993#grastogi-server6' + }, { + 'hostname': 'grastogi-server6', + 'ratio': 1, + 'ip': { + 'type': 'V4', + 'addr': '198.51.100.61' + }, + 'discovered_networks': [{ + 'subnet': [{ + 'ip_addr': { + 'type': 'V4', + 'addr': '198.51.100.0' + }, + 'mask': 24 + }], + 'network_ref': 'https://192.0.2.42/api/network/dvportgroup-53975-10.10.2.10#PG-964' + }], + 'enabled': True, + 'nw_ref': 'https://192.0.2.42/api/vimgrnwruntime/dvportgroup-53975-10.10.2.10#PG-964', + 'verify_network': False, + 'static': False, + 'resolve_server_by_dns': False, + 'external_uuid': 'vm-4230615e-bc0b-3d33-3929-1c7328575993', + 'vm_ref': 'https://192.0.2.42/api/vimgrvmruntime/vm-4230615e-bc0b-3d33-3929-1c7328575993#grastogi-server6' + }, { + 'hostname': 'grastogi-server6', + 'ratio': 1, + 'ip': { + 'type': 'V4', + 'addr': '198.51.100.65' + }, + 'discovered_networks': [{ + 'subnet': [{ + 'ip_addr': { + 'type': 'V4', + 'addr': '198.51.100.0' + }, 'mask': 24 + }], + 'network_ref': 'https://192.0.2.42/api/network/dvportgroup-53975-10.10.2.10#PG-964' + }], + 'enabled': True, + 'verify_network': False, + 'static': False, + 'resolve_server_by_dns': False + }], + 'fewest_tasks_feedback_delay': 10, + '_last_modified': '1473292763246107', + 'cloud_ref': 'https://192.0.2.42/api/cloud/cloud-e0696a58-8b72-4026-923c-9a87c38a2489#Default-Cloud', + 'vrf_ref': 'https://192.0.2.42/api/vrfcontext/vrfcontext-33dfbcd7-867c-4e3e-acf7-96bf679d5a0d#global', + 'inline_health_monitor': True, + 'default_server_port': 8000, + 'request_queue_depth': 128, + 'graceful_disable_timeout': 1, + 'sni_enabled': True, + 'server_count': 3, + 'uuid': 'pool-09201181-747e-41ea-872d-e9a7df71b726', + 'request_queue_enabled': False, + 'name': 'p1', + 'max_concurrent_connections_per_server': 0, + 'url': 'https://192.0.2.42/api/pool/pool-09201181-747e-41ea-872d-e9a7df71b726#p1', + 'enabled': True, + 'connection_ramp_duration': 10} + + existing_obj = { + 'lb_algorithm': 'LB_ALGORITHM_ROUND_ROBIN', + 'use_service_port': False, + 'server_auto_scale': False, + 'host_check_enabled': False, + 'tenant_ref': 'https://192.0.2.42/api/tenant/admin', + 'capacity_estimation': False, + 'servers': [{ + 'hostname': 'grastogi-server6', 'ratio': 1, + 'ip': { + 'type': 'V4', + 'addr': '198.51.100.62' + }, + 'discovered_networks': [{ + 'subnet': [{ + 'mask': 24, + 'ip_addr': { + 'type': 'V4', + 'addr': '198.51.100.0' + } + }], + 'network_ref': 'https://192.0.2.42/api/network/dvportgroup-53975-10.10.2.10' + }], + 'enabled': True, + 'nw_ref': 'https://192.0.2.42/api/vimgrnwruntime/dvportgroup-53975-10.10.2.10', + 'verify_network': False, + 'static': False, + 'resolve_server_by_dns': False, + 'external_uuid': 'vm-4230615e-bc0b-3d33-3929-1c7328575993', + 'vm_ref': 'https://192.0.2.42/api/vimgrvmruntime/vm-4230615e-bc0b-3d33-3929-1c7328575993' + }, { + 'hostname': 'grastogi-server6', + 'ratio': 1, + 'ip': { + 'type': 'V4', + 'addr': '198.51.100.61' + }, + 'discovered_networks': [{ + 'subnet': [{ + 'mask': 24, + 'ip_addr': { + 'type': 'V4', + 'addr': '198.51.100.0' + } + }], + 'network_ref': 'https://192.0.2.42/api/network/dvportgroup-53975-10.10.2.10' + }], + 'enabled': True, + 'nw_ref': 'https://192.0.2.42/api/vimgrnwruntime/dvportgroup-53975-10.10.2.10', + 'verify_network': False, + 'static': False, + 'resolve_server_by_dns': False, + 'external_uuid': 'vm-4230615e-bc0b-3d33-3929-1c7328575993', + 'vm_ref': 'https://192.0.2.42/api/vimgrvmruntime/vm-4230615e-bc0b-3d33-3929-1c7328575993' + }, { + 'hostname': 'grastogi-server6', + 'ratio': 1, + 'ip': { + 'type': 'V4', + 'addr': '198.51.100.65' + }, + 'discovered_networks': [{ + 'subnet': [{ + 'mask': 24, + 'ip_addr': { + 'type': 'V4', + 'addr': '198.51.100.0' + } + }], + 'network_ref': 'https://192.0.2.42/api/network/dvportgroup-53975-10.10.2.10' + }], + 'enabled': True, + 'nw_ref': 'https://192.0.2.42/api/vimgrnwruntime/dvportgroup-53975-10.10.2.10', + 'verify_network': False, + 'static': False, + 'resolve_server_by_dns': False, + 'external_uuid': 'vm-4230615e-bc0b-3d33-3929-1c7328575993', + 'vm_ref': 'https://192.0.2.42/api/vimgrvmruntime/vm-4230615e-bc0b-3d33-3929-1c7328575993' + }], + 'fewest_tasks_feedback_delay': 10, + 'cloud_ref': 'https://192.0.2.42/api/cloud/cloud-e0696a58-8b72-4026-923c-9a87c38a2489', + 'vrf_ref': 'https://192.0.2.42/api/vrfcontext/vrfcontext-33dfbcd7-867c-4e3e-acf7-96bf679d5a0d', + 'inline_health_monitor': True, + 'default_server_port': 8000, + 'request_queue_depth': 128, + 'graceful_disable_timeout': 1, + 'sni_enabled': True, + 'server_count': 3, + 'uuid': 'pool-09201181-747e-41ea-872d-e9a7df71b726', + 'request_queue_enabled': False, + 'name': 'p1', + 'max_concurrent_connections_per_server': 0, + 'url': 'https://192.0.2.42/api/pool/pool-09201181-747e-41ea-872d-e9a7df71b726', + 'enabled': True, + 'connection_ramp_duration': 10 + } + + diff = avi_obj_cmp(obj, existing_obj) + assert diff + + def testAWSVs(self): + existing_obj = { + 'network_profile_ref': 'https://12.97.16.202/api/networkprofile/networkprofile-9a0a9896-6876-44c8-a3ee-512a968905f2#System-TCP-Proxy', + 'port_uuid': 'eni-4144e73c', + 'weight': 1, + 'availability_zone': 'us-west-2a', + 'enabled': True, + 'flow_dist': 'LOAD_AWARE', + 'subnet_uuid': 'subnet-91f0b6f4', + 'delay_fairness': False, + 'avi_allocated_vip': True, + 'vrf_context_ref': 'https://12.97.16.202/api/vrfcontext/vrfcontext-722b280d-b555-4d82-9b35-af9442c0cb86#global', + 'subnet': { + 'ip_addr': { + 'type': 'V4', + 'addr': '198.51.100.0' + }, + 'mask': 24 + }, + 'cloud_type': 'CLOUD_AWS', 'uuid': 'virtualservice-a5f49b99-22c8-42e6-aa65-3ca5f1e36b9e', + 'network_ref': 'https://12.97.16.202/api/network/subnet-91f0b6f4', + 'cloud_ref': 'https://12.97.16.202/api/cloud/cloud-49829414-c704-43ca-9dff-05b9e8474dcb#AWS Cloud', + 'avi_allocated_fip': False, + 'se_group_ref': 'https://12.97.16.202/api/serviceenginegroup/serviceenginegroup-3bef6320-5a2d-4801-85c4-ef4f9841f235#Default-Group', + 'scaleout_ecmp': False, + 'max_cps_per_client': 0, + 'type': 'VS_TYPE_NORMAL', + 'analytics_profile_ref': 'https://12.97.16.202/api/analyticsprofile/analyticsprofile-70f8b06f-7b6a-4500-b829-c869bbca2009#System-Analytics-Profile', + 'use_bridge_ip_as_vip': False, + 'application_profile_ref': 'https://12.97.16.202/api/applicationprofile/applicationprofile-103cbc31-cac5-46ab-8e66-bbbb2c8f551f#System-HTTP', + 'auto_allocate_floating_ip': False, + 'services': [{ + 'enable_ssl': False, + 'port_range_end': 80, + 'port': 80 + }], + 'active_standby_se_tag': 'ACTIVE_STANDBY_SE_1', + 'ip_address': { + 'type': 'V4', + 'addr': '198.51.100.33' + }, + 'ign_pool_net_reach': False, + 'east_west_placement': False, + 'limit_doser': False, + 'name': 'wwwawssit.ebiz.verizon.com', + 'url': 'https://12.97.16.202/api/virtualservice/virtualservice-a5f49b99-22c8-42e6-aa65-3ca5f1e36b9e#wwwawssit.ebiz.verizon.com', + 'ssl_sess_cache_avg_size': 1024, + 'enable_autogw': True, + 'auto_allocate_ip': True, + 'tenant_ref': 'https://12.97.16.202/api/tenant/tenant-f52f7a3e-6876-4bb9-b8f7-3cab636dadf2#Sales', + 'remove_listening_port_on_vs_down': False + } + obj = {'auto_allocate_ip': True, 'subnet_uuid': 'subnet-91f0b6f4', 'cloud_ref': '/api/cloud?name=AWS Cloud', 'services': [{'port': 80}], + 'name': 'wwwawssit.ebiz.verizon.com'} + + diff = avi_obj_cmp(obj, existing_obj) + assert diff + + def testhttppolicy(self): + existing_obj = { + "http_request_policy": { + "rules": [{ + "enable": True, + "index": 0, + "match": { + "path": { + "match_case": "INSENSITIVE", + "match_criteria": "CONTAINS", + "match_str": ["xvz", "rst"] + } + }, + "name": "blah", + "switching_action": { + "action": "HTTP_SWITCHING_SELECT_POOL", + "pool_ref": "https://12.97.16.202/api/pool/pool-d7f6f5e7-bd26-49ad-aeed-965719eb140b#abc", + "status_code": "HTTP_LOCAL_RESPONSE_STATUS_CODE_200" + } + }] + }, + "is_internal_policy": False, + "name": "blah", + "tenant_ref": "https://12.97.16.202/api/tenant/tenant-f52f7a3e-6876-4bb9-b8f7-3cab636dadf2#Sales", + "url": "https://12.97.16.202/api/httppolicyset/httppolicyset-ffd8354b-671b-48d5-92cc-69a9057aad0c#blah", + "uuid": "httppolicyset-ffd8354b-671b-48d5-92cc-69a9057aad0c" + } + + obj = { + "http_request_policy": { + "rules": [{ + "enable": True, + "index": "0", + "match": { + "path": { + "match_case": "INSENSITIVE", + "match_criteria": "CONTAINS", + "match_str": ["xvz", "rst"] + } + }, + "name": "blah", + "switching_action": { + "action": "HTTP_SWITCHING_SELECT_POOL", + "pool_ref": "/api/pool?name=abc", + "status_code": "HTTP_LOCAL_RESPONSE_STATUS_CODE_200" + } + }] + }, + "is_internal_policy": False, + "tenant": "Sales" + } + diff = avi_obj_cmp(obj, existing_obj) + assert diff + + def testCleanupFields(self): + obj = {'name': 'testpool', + 'scalar_field': {'state': 'absent'}, + 'list_fields': [{'x': '1'}, {'y': {'state': 'absent'}}]} + + cleanup_absent_fields(obj) + assert 'scalar_field' not in obj + for elem in obj['list_fields']: + assert 'y' not in elem + + def testGSLB(self): + obj = { + 'domain_names': ['cloud5.avi.com', 'cloud6.avi.com'], + 'health_monitor_scope': 'GSLB_SERVICE_HEALTH_MONITOR_ALL_MEMBERS', + 'groups': [{ + 'priority': 20, + 'members': [{ + 'ip': { + 'type': 'V4', + 'addr': '198.51.100.1' + }, + 'enabled': True, 'ratio': 1 + }, { + 'ip': { + 'type': 'V4', + 'addr': '198.51.100.10' + }, + 'enabled': True, + 'ratio': 1 + }], + 'algorithm': 'GSLB_ALGORITHM_CONSISTENT_HASH', + 'name': 'sc' + }, { + 'priority': 14, + 'members': [{ + 'ip': { + 'type': 'V4', + 'addr': '198.51.100.2' + }, + 'enabled': True, + 'ratio': 1 + }], + 'algorithm': 'GSLB_ALGORITHM_ROUND_ROBIN', + 'name': 'cn' + }, { + 'priority': 15, + 'members': [{ + 'ip': { + 'type': 'V4', + 'addr': '198.51.100.3' + }, + 'enabled': True, 'ratio': 1 + }], + 'algorithm': 'GSLB_ALGORITHM_ROUND_ROBIN', + 'name': 'in' + }], + 'name': 'gs-3', + 'num_dns_ip': 2 + } + existing_obj = { + u'controller_health_status_enabled': True, + u'uuid': u'gslbservice-ab9b36bd-3e95-4c2e-80f8-92905c2eccb2', + u'wildcard_match': False, + u'url': u'https://192.0.2.42/api/gslbservice/gslbservice-ab9b36bd-3e95-4c2e-80f8-92905c2eccb2#gs-3', + u'tenant_ref': u'https://192.0.2.42/api/tenant/admin#admin', + u'enabled': True, + u'domain_names': [u'cloud5.avi.com', u'cloud6.avi.com'], + u'use_edns_client_subnet': True, + u'groups': [{ + u'priority': 20, + u'members': [{ + u'ip': { + u'type': u'V4', + u'addr': u'198.51.100.1' + }, + u'ratio': 1, + u'enabled': True + }, { + u'ip': { + u'type': u'V4', + u'addr': u'198.51.100.10' + }, + u'ratio': 1, + u'enabled': True + }], + u'name': u'sc', + u'algorithm': u'GSLB_ALGORITHM_CONSISTENT_HASH' + }, { + u'priority': 14, + u'members': [{ + u'ip': { + u'type': u'V4', + u'addr': u'198.51.100.2' + }, + u'ratio': 1, + u'enabled': True + }], + u'name': u'cn', + u'algorithm': u'GSLB_ALGORITHM_ROUND_ROBIN' + }, { + u'priority': 15, + u'members': [{ + u'ip': { + u'type': u'V4', + u'addr': u'198.51.100.3' + }, + u'ratio': 1, + u'enabled': True + }], + u'name': u'in', + u'algorithm': u'GSLB_ALGORITHM_ROUND_ROBIN' + }], + u'num_dns_ip': 2, + u'health_monitor_scope': u'GSLB_SERVICE_HEALTH_MONITOR_ALL_MEMBERS', + u'name': u'gs-3' + } + diff = avi_obj_cmp(obj, existing_obj) + assert diff + + def testNoneParams(self): + objwnone = { + 'name': 'testpool', + 'scalar_field': None, + 'list_fields': { + 'y': None, + 'z': 'zz' + } + } + obj = { + 'name': 'testpool', + 'list_fields': { + 'z': 'zz' + } + } + + result = avi_obj_cmp(objwnone, obj) + assert result diff --git a/ansible_collections/community/network/tests/unit/plugins/module_utils/network/common/__init__.py b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/common/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/common/__init__.py diff --git a/ansible_collections/community/network/tests/unit/plugins/module_utils/network/common/test_parsing.py b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/common/test_parsing.py new file mode 100644 index 000000000..95d10cc00 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/common/test_parsing.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +# +# (c) 2017 Red Hat, Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat import unittest +from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.parsing import Conditional + +test_results = ['result_1', 'result_2', 'result_3'] +c1 = Conditional('result[1] == result_2') +c2 = Conditional('result[2] not == result_2') +c3 = Conditional('result[0] neq not result_1') + + +class TestNotKeyword(unittest.TestCase): + def test_negate_instance_variable_assignment(self): + assert c1.negate is False and c2.negate is True + + def test_key_value_instance_variable_assignment(self): + c1_assignments = c1.key == 'result[1]' and c1.value == 'result_2' + c2_assignments = c2.key == 'result[2]' and c2.value == 'result_2' + assert c1_assignments and c2_assignments + + def test_conditionals_w_not_keyword(self): + assert c1(test_results) and c2(test_results) and c3(test_results) + + +if __name__ == '__main__': + unittest.main() diff --git a/ansible_collections/community/network/tests/unit/plugins/module_utils/network/common/test_utils.py b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/common/test_utils.py new file mode 100644 index 000000000..dac95a387 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/common/test_utils.py @@ -0,0 +1,213 @@ +# -*- coding: utf-8 -*- +# +# (c) 2017 Red Hat, Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +import pytest + +from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.utils import to_list, sort_list +from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.utils import dict_diff, dict_merge +from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.utils import conditional, Template +from ansible.module_utils.common.network import ( + to_masklen, to_netmask, to_subnet, to_ipv6_network, to_ipv6_subnet, is_masklen, is_netmask +) + + +def test_to_list(): + for scalar in ('string', 1, True, False, None): + assert isinstance(to_list(scalar), list) + + for container in ([1, 2, 3], {'one': 1}): + assert isinstance(to_list(container), list) + + test_list = [1, 2, 3] + assert id(test_list) != id(to_list(test_list)) + + +def test_sort(): + data = [3, 1, 2] + assert [1, 2, 3] == sort_list(data) + + string_data = '123' + assert string_data == sort_list(string_data) + + +def test_dict_diff(): + base = dict(obj2=dict(), b1=True, b2=False, b3=False, + one=1, two=2, three=3, obj1=dict(key1=1, key2=2), + l1=[1, 3], l2=[1, 2, 3], l4=[4], + nested=dict(n1=dict(n2=2))) + + other = dict(b1=True, b2=False, b3=True, b4=True, + one=1, three=4, four=4, obj1=dict(key1=2), + l1=[2, 1], l2=[3, 2, 1], l3=[1], + nested=dict(n1=dict(n2=2, n3=3))) + + result = dict_diff(base, other) + + # string assertions + assert 'one' not in result + assert 'two' not in result + assert result['three'] == 4 + assert result['four'] == 4 + + # dict assertions + assert 'obj1' in result + assert 'key1' in result['obj1'] + assert 'key2' not in result['obj1'] + + # list assertions + assert result['l1'] == [2, 1] + assert 'l2' not in result + assert result['l3'] == [1] + assert 'l4' not in result + + # nested assertions + assert 'obj1' in result + assert result['obj1']['key1'] == 2 + assert 'key2' not in result['obj1'] + + # bool assertions + assert 'b1' not in result + assert 'b2' not in result + assert result['b3'] + assert result['b4'] + + +def test_dict_merge(): + base = dict(obj2=dict(), b1=True, b2=False, b3=False, + one=1, two=2, three=3, obj1=dict(key1=1, key2=2), + l1=[1, 3], l2=[1, 2, 3], l4=[4], + nested=dict(n1=dict(n2=2))) + + other = dict(b1=True, b2=False, b3=True, b4=True, + one=1, three=4, four=4, obj1=dict(key1=2), + l1=[2, 1], l2=[3, 2, 1], l3=[1], + nested=dict(n1=dict(n2=2, n3=3))) + + result = dict_merge(base, other) + + # string assertions + assert 'one' in result + assert 'two' in result + assert result['three'] == 4 + assert result['four'] == 4 + + # dict assertions + assert 'obj1' in result + assert 'key1' in result['obj1'] + assert 'key2' in result['obj1'] + + # list assertions + assert result['l1'] == [1, 2, 3] + assert 'l2' in result + assert result['l3'] == [1] + assert 'l4' in result + + # nested assertions + assert 'obj1' in result + assert result['obj1']['key1'] == 2 + assert 'key2' in result['obj1'] + + # bool assertions + assert 'b1' in result + assert 'b2' in result + assert result['b3'] + assert result['b4'] + + +def test_conditional(): + assert conditional(10, 10) + assert conditional('10', '10') + assert conditional('foo', 'foo') + assert conditional(True, True) + assert conditional(False, False) + assert conditional(None, None) + assert conditional("ge(1)", 1) + assert conditional("gt(1)", 2) + assert conditional("le(2)", 2) + assert conditional("lt(3)", 2) + assert conditional("eq(1)", 1) + assert conditional("neq(0)", 1) + assert conditional("min(1)", 1) + assert conditional("max(1)", 1) + assert conditional("exactly(1)", 1) + + +def test_template(): + tmpl = Template() + assert 'foo' == tmpl('{{ test }}', {'test': 'foo'}) + + +def test_to_masklen(): + assert 24 == to_masklen('255.255.255.0') + + +def test_to_masklen_invalid(): + with pytest.raises(ValueError): + to_masklen('255') + + +def test_to_netmask(): + assert '255.0.0.0' == to_netmask(8) + assert '255.0.0.0' == to_netmask('8') + + +def test_to_netmask_invalid(): + with pytest.raises(ValueError): + to_netmask(128) + + +def test_to_subnet(): + result = to_subnet('192.168.1.1', 24) + assert '192.168.1.0/24' == result + + result = to_subnet('192.168.1.1', 24, dotted_notation=True) + assert '192.168.1.0 255.255.255.0' == result + + +def test_to_subnet_invalid(): + with pytest.raises(ValueError): + to_subnet('foo', 'bar') + + +def test_is_masklen(): + assert is_masklen(32) + assert not is_masklen(33) + assert not is_masklen('foo') + + +def test_is_netmask(): + assert is_netmask('255.255.255.255') + assert not is_netmask(24) + assert not is_netmask('foo') + + +def test_to_ipv6_network(): + assert '2001:db8::' == to_ipv6_network('2001:db8::') + assert '2001:0db8:85a3::' == to_ipv6_network('2001:0db8:85a3:0000:0000:8a2e:0370:7334') + assert '2001:0db8:85a3::' == to_ipv6_network('2001:0db8:85a3:0:0:8a2e:0370:7334') + + +def test_to_ipv6_subnet(): + assert '2001:db8::' == to_ipv6_subnet('2001:db8::') + assert '2001:0db8:85a3:4242::' == to_ipv6_subnet('2001:0db8:85a3:4242:0000:8a2e:0370:7334') + assert '2001:0db8:85a3:4242::' == to_ipv6_subnet('2001:0db8:85a3:4242:0:8a2e:0370:7334') diff --git a/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/__init__.py b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/__init__.py diff --git a/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/test_common.py b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/test_common.py new file mode 100644 index 000000000..3eafa9f13 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/test_common.py @@ -0,0 +1,449 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +from ansible_collections.community.network.plugins.module_utils.network.ftd.common import equal_objects, delete_ref_duplicates, construct_ansible_facts + + +# simple objects + +def test_equal_objects_return_false_with_different_length(): + assert not equal_objects( + {'foo': 1}, + {'foo': 1, 'bar': 2} + ) + + +def test_equal_objects_return_false_with_different_fields(): + assert not equal_objects( + {'foo': 1}, + {'bar': 1} + ) + + +def test_equal_objects_return_false_with_different_value_types(): + assert not equal_objects( + {'foo': 1}, + {'foo': '1'} + ) + + +def test_equal_objects_return_false_with_different_values(): + assert not equal_objects( + {'foo': 1}, + {'foo': 2} + ) + + +def test_equal_objects_return_false_with_different_nested_values(): + assert not equal_objects( + {'foo': {'bar': 1}}, + {'foo': {'bar': 2}} + ) + + +def test_equal_objects_return_false_with_different_list_length(): + assert not equal_objects( + {'foo': []}, + {'foo': ['bar']} + ) + + +def test_equal_objects_return_true_with_equal_objects(): + assert equal_objects( + {'foo': 1, 'bar': 2}, + {'bar': 2, 'foo': 1} + ) + + +def test_equal_objects_return_true_with_equal_str_like_values(): + assert equal_objects( + {'foo': b'bar'}, + {'foo': u'bar'} + ) + + +def test_equal_objects_return_true_with_equal_nested_dicts(): + assert equal_objects( + {'foo': {'bar': 1, 'buz': 2}}, + {'foo': {'buz': 2, 'bar': 1}} + ) + + +def test_equal_objects_return_true_with_equal_lists(): + assert equal_objects( + {'foo': ['bar']}, + {'foo': ['bar']} + ) + + +def test_equal_objects_return_true_with_ignored_fields(): + assert equal_objects( + {'foo': 1, 'version': '123', 'id': '123123'}, + {'foo': 1} + ) + + +# objects with object references + +def test_equal_objects_return_true_with_different_ref_ids(): + assert not equal_objects( + {'foo': {'id': '1', 'type': 'network', 'ignored_field': 'foo'}}, + {'foo': {'id': '2', 'type': 'network', 'ignored_field': 'bar'}} + ) + + +def test_equal_objects_return_true_with_different_ref_types(): + assert not equal_objects( + {'foo': {'id': '1', 'type': 'network', 'ignored_field': 'foo'}}, + {'foo': {'id': '1', 'type': 'accessRule', 'ignored_field': 'bar'}} + ) + + +def test_equal_objects_return_true_with_same_object_refs(): + assert equal_objects( + {'foo': {'id': '1', 'type': 'network', 'ignored_field': 'foo'}}, + {'foo': {'id': '1', 'type': 'network', 'ignored_field': 'bar'}} + ) + + +# objects with array of object references + +def test_equal_objects_return_false_with_different_array_length(): + assert not equal_objects( + {'foo': [ + {'id': '1', 'type': 'network', 'ignored_field': 'foo'} + ]}, + {'foo': []} + ) + + +def test_equal_objects_return_false_with_different_array_order(): + assert not equal_objects( + {'foo': [ + {'id': '1', 'type': 'network', 'ignored_field': 'foo'}, + {'id': '2', 'type': 'network', 'ignored_field': 'bar'} + ]}, + {'foo': [ + {'id': '2', 'type': 'network', 'ignored_field': 'foo'}, + {'id': '1', 'type': 'network', 'ignored_field': 'bar'} + ]} + ) + + +def test_equal_objects_return_true_with_equal_ref_arrays(): + assert equal_objects( + {'foo': [ + {'id': '1', 'type': 'network', 'ignored_field': 'foo'} + ]}, + {'foo': [ + {'id': '1', 'type': 'network', 'ignored_field': 'bar'} + ]} + ) + + +# objects with nested structures and object references + +def test_equal_objects_return_true_with_equal_nested_object_references(): + assert equal_objects( + { + 'name': 'foo', + 'config': { + 'version': '1', + 'port': { + 'name': 'oldPortName', + 'type': 'port', + 'id': '123' + } + } + }, + { + 'name': 'foo', + 'config': { + 'version': '1', + 'port': { + 'name': 'newPortName', + 'type': 'port', + 'id': '123' + } + } + } + ) + + +def test_equal_objects_return_false_with_different_nested_object_references(): + assert not equal_objects( + { + 'name': 'foo', + 'config': { + 'version': '1', + 'port': { + 'name': 'oldPortName', + 'type': 'port', + 'id': '123' + } + } + }, + { + 'name': 'foo', + 'config': { + 'version': '1', + 'port': { + 'name': 'oldPortName', + 'type': 'port', + 'id': '234' + } + } + } + ) + + +def test_equal_objects_return_true_with_equal_nested_list_of_object_references(): + assert equal_objects( + { + 'name': 'foo', + 'config': { + 'version': '1', + 'ports': [{ + 'name': 'oldPortName', + 'type': 'port', + 'id': '123' + }, { + 'name': 'oldPortName2', + 'type': 'port', + 'id': '234' + }] + } + }, + { + 'name': 'foo', + 'config': { + 'version': '1', + 'ports': [{ + 'name': 'newPortName', + 'type': 'port', + 'id': '123' + }, { + 'name': 'newPortName2', + 'type': 'port', + 'id': '234', + 'extraField': 'foo' + }] + } + } + ) + + +def test_equal_objects_return_true_with_reference_list_containing_duplicates(): + assert equal_objects( + { + 'name': 'foo', + 'config': { + 'version': '1', + 'ports': [{ + 'name': 'oldPortName', + 'type': 'port', + 'id': '123' + }, { + 'name': 'oldPortName', + 'type': 'port', + 'id': '123' + }, { + 'name': 'oldPortName2', + 'type': 'port', + 'id': '234' + }] + } + }, + { + 'name': 'foo', + 'config': { + 'version': '1', + 'ports': [{ + 'name': 'newPortName', + 'type': 'port', + 'id': '123' + }, { + 'name': 'newPortName2', + 'type': 'port', + 'id': '234', + 'extraField': 'foo' + }] + } + } + ) + + +def test_delete_ref_duplicates_with_none(): + assert delete_ref_duplicates(None) is None + + +def test_delete_ref_duplicates_with_empty_dict(): + assert {} == delete_ref_duplicates({}) + + +def test_delete_ref_duplicates_with_simple_object(): + data = { + 'id': '123', + 'name': 'foo', + 'type': 'bar', + 'values': ['a', 'b'] + } + assert data == delete_ref_duplicates(data) + + +def test_delete_ref_duplicates_with_object_containing_refs(): + data = { + 'id': '123', + 'name': 'foo', + 'type': 'bar', + 'refs': [ + {'id': '123', 'type': 'baz'}, + {'id': '234', 'type': 'baz'}, + {'id': '234', 'type': 'foo'} + ] + } + assert data == delete_ref_duplicates(data) + + +def test_delete_ref_duplicates_with_object_containing_duplicate_refs(): + data = { + 'id': '123', + 'name': 'foo', + 'type': 'bar', + 'refs': [ + {'id': '123', 'type': 'baz'}, + {'id': '123', 'type': 'baz'}, + {'id': '234', 'type': 'baz'}, + {'id': '234', 'type': 'baz'}, + {'id': '234', 'type': 'foo'} + ] + } + assert { + 'id': '123', + 'name': 'foo', + 'type': 'bar', + 'refs': [ + {'id': '123', 'type': 'baz'}, + {'id': '234', 'type': 'baz'}, + {'id': '234', 'type': 'foo'} + ] + } == delete_ref_duplicates(data) + + +def test_delete_ref_duplicates_with_object_containing_duplicate_refs_in_nested_object(): + data = { + 'id': '123', + 'name': 'foo', + 'type': 'bar', + 'children': { + 'refs': [ + {'id': '123', 'type': 'baz'}, + {'id': '123', 'type': 'baz'}, + {'id': '234', 'type': 'baz'}, + {'id': '234', 'type': 'baz'}, + {'id': '234', 'type': 'foo'} + ] + } + } + assert { + 'id': '123', + 'name': 'foo', + 'type': 'bar', + 'children': { + 'refs': [ + {'id': '123', 'type': 'baz'}, + {'id': '234', 'type': 'baz'}, + {'id': '234', 'type': 'foo'} + ] + } + } == delete_ref_duplicates(data) + + +def test_construct_ansible_facts_should_make_default_fact_with_name_and_type(): + response = { + 'id': '123', + 'name': 'foo', + 'type': 'bar' + } + + assert {'bar_foo': response} == construct_ansible_facts(response, {}) + + +def test_construct_ansible_facts_should_not_make_default_fact_with_no_name(): + response = { + 'id': '123', + 'name': 'foo' + } + + assert {} == construct_ansible_facts(response, {}) + + +def test_construct_ansible_facts_should_not_make_default_fact_with_no_type(): + response = { + 'id': '123', + 'type': 'bar' + } + + assert {} == construct_ansible_facts(response, {}) + + +def test_construct_ansible_facts_should_use_register_as_when_given(): + response = { + 'id': '123', + 'name': 'foo', + 'type': 'bar' + } + params = {'register_as': 'fact_name'} + + assert {'fact_name': response} == construct_ansible_facts(response, params) + + +def test_construct_ansible_facts_should_extract_items(): + response = {'items': [ + { + 'id': '123', + 'name': 'foo', + 'type': 'bar' + }, { + 'id': '123', + 'name': 'foo', + 'type': 'bar' + } + ]} + params = {'register_as': 'fact_name'} + + assert {'fact_name': response['items']} == construct_ansible_facts(response, params) + + +def test_construct_ansible_facts_should_ignore_items_with_no_register_as(): + response = {'items': [ + { + 'id': '123', + 'name': 'foo', + 'type': 'bar' + }, { + 'id': '123', + 'name': 'foo', + 'type': 'bar' + } + ]} + + assert {} == construct_ansible_facts(response, {}) diff --git a/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/test_configuration.py b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/test_configuration.py new file mode 100644 index 000000000..2b218e639 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/test_configuration.py @@ -0,0 +1,591 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +import json +import unittest + +import pytest +from ansible_collections.community.network.tests.unit.compat import mock +from ansible_collections.community.network.tests.unit.compat.mock import call, patch + +from ansible_collections.community.network.plugins.module_utils.network.ftd.common import HTTPMethod, FtdUnexpectedResponse +from ansible_collections.community.network.plugins.module_utils.network.ftd.configuration import iterate_over_pageable_resource, BaseConfigurationResource, \ + OperationChecker, OperationNamePrefix, ParamName, QueryParams +from ansible_collections.community.network.plugins.module_utils.network.ftd.fdm_swagger_client import ValidationError, OperationField + + +class TestBaseConfigurationResource(object): + @pytest.fixture + def connection_mock(self, mocker): + connection_class_mock = mocker.patch('ansible_collections.community.network.plugins.modules.ftd_configuration.Connection') + connection_instance = connection_class_mock.return_value + connection_instance.validate_data.return_value = True, None + connection_instance.validate_query_params.return_value = True, None + connection_instance.validate_path_params.return_value = True, None + + return connection_instance + + @patch.object(BaseConfigurationResource, '_fetch_system_info') + @patch.object(BaseConfigurationResource, '_send_request') + def test_get_objects_by_filter_with_multiple_filters(self, send_request_mock, fetch_system_info_mock, + connection_mock): + objects = [ + {'name': 'obj1', 'type': 1, 'foo': {'bar': 'buzz'}}, + {'name': 'obj2', 'type': 1, 'foo': {'bar': 'buz'}}, + {'name': 'obj3', 'type': 2, 'foo': {'bar': 'buzz'}} + ] + + fetch_system_info_mock.return_value = { + 'databaseInfo': { + 'buildVersion': '6.3.0' + } + } + + connection_mock.get_operation_spec.return_value = { + 'method': HTTPMethod.GET, + 'url': '/object/' + } + resource = BaseConfigurationResource(connection_mock, False) + + send_request_mock.side_effect = [{'items': objects}, {'items': []}] + # resource.get_objects_by_filter returns generator so to be able compare generated list with expected list + # we need evaluate it. + assert objects == list(resource.get_objects_by_filter('test', {})) + send_request_mock.assert_has_calls( + [ + mock.call('/object/', 'get', {}, {}, {'limit': 10, 'offset': 0}) + ] + ) + + send_request_mock.reset_mock() + send_request_mock.side_effect = [{'items': objects}, {'items': []}] + # resource.get_objects_by_filter returns generator so to be able compare generated list with expected list + # we need evaluate it. + assert [objects[0]] == list(resource.get_objects_by_filter('test', {ParamName.FILTERS: {'name': 'obj1'}})) + send_request_mock.assert_has_calls( + [ + mock.call('/object/', 'get', {}, {}, {QueryParams.FILTER: 'name:obj1', 'limit': 10, 'offset': 0}) + ] + ) + + send_request_mock.reset_mock() + send_request_mock.side_effect = [{'items': objects}, {'items': []}] + # resource.get_objects_by_filter returns generator so to be able compare generated list with expected list + # we need evaluate it. + assert [objects[1]] == list(resource.get_objects_by_filter( + 'test', + {ParamName.FILTERS: {'name': 'obj2', 'type': 1, 'foo': {'bar': 'buz'}}})) + + send_request_mock.assert_has_calls( + [ + mock.call('/object/', 'get', {}, {}, {QueryParams.FILTER: 'name:obj2', 'limit': 10, 'offset': 0}) + ] + ) + + @patch.object(BaseConfigurationResource, '_fetch_system_info') + @patch.object(BaseConfigurationResource, '_send_request') + def test_get_objects_by_filter_with_multiple_responses(self, send_request_mock, fetch_system_info_mock, + connection_mock): + send_request_mock.side_effect = [ + {'items': [ + {'name': 'obj1', 'type': 'foo'}, + {'name': 'obj2', 'type': 'bar'} + ]}, + {'items': [ + {'name': 'obj3', 'type': 'foo'} + ]}, + {'items': []} + ] + fetch_system_info_mock.return_value = { + 'databaseInfo': { + 'buildVersion': '6.3.0' + } + } + connection_mock.get_operation_spec.return_value = { + 'method': HTTPMethod.GET, + 'url': '/object/' + } + resource = BaseConfigurationResource(connection_mock, False) + assert [{'name': 'obj1', 'type': 'foo'}] == list(resource.get_objects_by_filter( + 'test', + {ParamName.FILTERS: {'type': 'foo'}})) + send_request_mock.assert_has_calls( + [ + mock.call('/object/', 'get', {}, {}, {'limit': 10, 'offset': 0}) + ] + ) + + send_request_mock.reset_mock() + send_request_mock.side_effect = [ + {'items': [ + {'name': 'obj1', 'type': 'foo'}, + {'name': 'obj2', 'type': 'bar'} + ]}, + {'items': [ + {'name': 'obj3', 'type': 'foo'} + ]}, + {'items': []} + ] + resp = list(resource.get_objects_by_filter( + 'test', + { + ParamName.FILTERS: {'type': 'foo'}, + ParamName.QUERY_PARAMS: {'limit': 2} + })) + assert [{'name': 'obj1', 'type': 'foo'}, {'name': 'obj3', 'type': 'foo'}] == resp + send_request_mock.assert_has_calls( + [ + mock.call('/object/', 'get', {}, {}, {'limit': 2, 'offset': 0}), + mock.call('/object/', 'get', {}, {}, {'limit': 2, 'offset': 2}) + ] + ) + + def test_module_should_fail_if_validation_error_in_data(self, connection_mock): + connection_mock.get_operation_spec.return_value = {'method': HTTPMethod.POST, 'url': '/test'} + report = { + 'required': ['objects[0].type'], + 'invalid_type': [ + { + 'path': 'objects[3].id', + 'expected_type': 'string', + 'actually_value': 1 + } + ] + } + connection_mock.validate_data.return_value = (False, json.dumps(report, sort_keys=True, indent=4)) + + with pytest.raises(ValidationError) as e_info: + resource = BaseConfigurationResource(connection_mock, False) + resource.crud_operation('addTest', {'data': {}}) + + result = e_info.value.args[0] + key = 'Invalid data provided' + assert result[key] + result[key] = json.loads(result[key]) + assert result == {key: { + 'invalid_type': [{'actually_value': 1, 'expected_type': 'string', 'path': 'objects[3].id'}], + 'required': ['objects[0].type'] + }} + + def test_module_should_fail_if_validation_error_in_query_params(self, connection_mock): + connection_mock.get_operation_spec.return_value = {'method': HTTPMethod.GET, 'url': '/test', + 'returnMultipleItems': False} + report = { + 'required': ['objects[0].type'], + 'invalid_type': [ + { + 'path': 'objects[3].id', + 'expected_type': 'string', + 'actually_value': 1 + } + ] + } + connection_mock.validate_query_params.return_value = (False, json.dumps(report, sort_keys=True, indent=4)) + + with pytest.raises(ValidationError) as e_info: + resource = BaseConfigurationResource(connection_mock, False) + resource.crud_operation('getTestList', {'data': {}}) + + result = e_info.value.args[0] + + key = 'Invalid query_params provided' + assert result[key] + result[key] = json.loads(result[key]) + + assert result == {key: { + 'invalid_type': [{'actually_value': 1, 'expected_type': 'string', 'path': 'objects[3].id'}], + 'required': ['objects[0].type']}} + + def test_module_should_fail_if_validation_error_in_path_params(self, connection_mock): + connection_mock.get_operation_spec.return_value = {'method': HTTPMethod.GET, 'url': '/test', + 'returnMultipleItems': False} + report = { + 'path_params': { + 'required': ['objects[0].type'], + 'invalid_type': [ + { + 'path': 'objects[3].id', + 'expected_type': 'string', + 'actually_value': 1 + } + ] + } + } + connection_mock.validate_path_params.return_value = (False, json.dumps(report, sort_keys=True, indent=4)) + + with pytest.raises(ValidationError) as e_info: + resource = BaseConfigurationResource(connection_mock, False) + resource.crud_operation('putTest', {'data': {}}) + + result = e_info.value.args[0] + + key = 'Invalid path_params provided' + assert result[key] + result[key] = json.loads(result[key]) + + assert result == {key: { + 'path_params': { + 'invalid_type': [{'actually_value': 1, 'expected_type': 'string', 'path': 'objects[3].id'}], + 'required': ['objects[0].type']}}} + + def test_module_should_fail_if_validation_error_in_all_params(self, connection_mock): + connection_mock.get_operation_spec.return_value = {'method': HTTPMethod.POST, 'url': '/test'} + report = { + 'data': { + 'required': ['objects[0].type'], + 'invalid_type': [ + { + 'path': 'objects[3].id', + 'expected_type': 'string', + 'actually_value': 1 + } + ] + }, + 'path_params': { + 'required': ['some_param'], + 'invalid_type': [ + { + 'path': 'name', + 'expected_type': 'string', + 'actually_value': True + } + ] + }, + 'query_params': { + 'required': ['other_param'], + 'invalid_type': [ + { + 'path': 'f_integer', + 'expected_type': 'integer', + 'actually_value': "test" + } + ] + } + } + connection_mock.validate_data.return_value = (False, json.dumps(report['data'], sort_keys=True, indent=4)) + connection_mock.validate_query_params.return_value = (False, + json.dumps(report['query_params'], sort_keys=True, + indent=4)) + connection_mock.validate_path_params.return_value = (False, + json.dumps(report['path_params'], sort_keys=True, + indent=4)) + + with pytest.raises(ValidationError) as e_info: + resource = BaseConfigurationResource(connection_mock, False) + resource.crud_operation('putTest', {'data': {}}) + + result = e_info.value.args[0] + + key_data = 'Invalid data provided' + assert result[key_data] + result[key_data] = json.loads(result[key_data]) + + key_path_params = 'Invalid path_params provided' + assert result[key_path_params] + result[key_path_params] = json.loads(result[key_path_params]) + + key_query_params = 'Invalid query_params provided' + assert result[key_query_params] + result[key_query_params] = json.loads(result[key_query_params]) + + assert result == { + key_data: {'invalid_type': [{'actually_value': 1, 'expected_type': 'string', 'path': 'objects[3].id'}], + 'required': ['objects[0].type']}, + key_path_params: {'invalid_type': [{'actually_value': True, 'expected_type': 'string', 'path': 'name'}], + 'required': ['some_param']}, + key_query_params: { + 'invalid_type': [{'actually_value': 'test', 'expected_type': 'integer', 'path': 'f_integer'}], + 'required': ['other_param']}} + + @pytest.mark.parametrize("test_api_version, expected_result", + [ + ("6.2.3", "name:object_name"), + ("6.3.0", "name:object_name"), + ("6.4.0", "fts~object_name") + ] + ) + def test_stringify_name_filter(self, test_api_version, expected_result, connection_mock): + filters = {"name": "object_name"} + + with patch.object(BaseConfigurationResource, '_fetch_system_info') as fetch_system_info_mock: + fetch_system_info_mock.return_value = { + 'databaseInfo': { + 'buildVersion': test_api_version + } + } + resource = BaseConfigurationResource(connection_mock, False) + + assert resource._stringify_name_filter(filters) == expected_result, "Unexpected result for version %s" % ( + test_api_version) + + +class TestIterateOverPageableResource(object): + + def test_iterate_over_pageable_resource_with_no_items(self): + resource_func = mock.Mock(return_value={'items': []}) + + items = iterate_over_pageable_resource(resource_func, {'query_params': {}}) + + assert [] == list(items) + + def test_iterate_over_pageable_resource_with_one_page(self): + resource_func = mock.Mock(side_effect=[ + {'items': ['foo', 'bar']}, + {'items': []}, + ]) + + items = iterate_over_pageable_resource(resource_func, {'query_params': {}}) + + assert ['foo', 'bar'] == list(items) + resource_func.assert_has_calls([ + call(params={'query_params': {'offset': 0, 'limit': 10}}) + ]) + + def test_iterate_over_pageable_resource_with_multiple_pages(self): + objects = [ + {'items': ['foo']}, + {'items': ['bar']}, + {'items': ['buzz']}, + {'items': []}, + ] + resource_func = mock.Mock(side_effect=objects) + + items = iterate_over_pageable_resource(resource_func, {'query_params': {}}) + assert ['foo'] == list(items) + + resource_func.reset_mock() + resource_func = mock.Mock(side_effect=objects) + items = iterate_over_pageable_resource(resource_func, {'query_params': {'limit': 1}}) + assert ['foo', 'bar', 'buzz'] == list(items) + + def test_iterate_over_pageable_resource_should_preserve_query_params(self): + resource_func = mock.Mock(return_value={'items': []}) + + items = iterate_over_pageable_resource(resource_func, {'query_params': {'filter': 'name:123'}}) + + assert [] == list(items) + resource_func.assert_called_once_with(params={'query_params': {'filter': 'name:123', 'offset': 0, 'limit': 10}}) + + def test_iterate_over_pageable_resource_should_preserve_limit(self): + resource_func = mock.Mock(side_effect=[ + {'items': ['foo']}, + {'items': []}, + ]) + + items = iterate_over_pageable_resource(resource_func, {'query_params': {'limit': 1}}) + + assert ['foo'] == list(items) + resource_func.assert_has_calls([ + call(params={'query_params': {'offset': 0, 'limit': 1}}) + ]) + + def test_iterate_over_pageable_resource_should_preserve_offset(self): + resource_func = mock.Mock(side_effect=[ + {'items': ['foo']}, + {'items': []}, + ]) + + items = iterate_over_pageable_resource(resource_func, {'query_params': {'offset': 3}}) + + assert ['foo'] == list(items) + resource_func.assert_has_calls([ + call(params={'query_params': {'offset': 3, 'limit': 10}}), + ]) + + def test_iterate_over_pageable_resource_should_pass_with_string_offset_and_limit(self): + resource_func = mock.Mock(side_effect=[ + {'items': ['foo']}, + {'items': []}, + ]) + + items = iterate_over_pageable_resource(resource_func, {'query_params': {'offset': '1', 'limit': '1'}}) + + assert ['foo'] == list(items) + resource_func.assert_has_calls([ + call(params={'query_params': {'offset': '1', 'limit': '1'}}), + call(params={'query_params': {'offset': 2, 'limit': '1'}}) + ]) + + def test_iterate_over_pageable_resource_raises_exception_when_server_returned_more_items_than_requested(self): + resource_func = mock.Mock(side_effect=[ + {'items': ['foo', 'redundant_bar']}, + {'items': []}, + ]) + + with pytest.raises(FtdUnexpectedResponse): + list(iterate_over_pageable_resource(resource_func, {'query_params': {'offset': '1', 'limit': '1'}})) + + resource_func.assert_has_calls([ + call(params={'query_params': {'offset': '1', 'limit': '1'}}) + ]) + + +class TestOperationCheckerClass(unittest.TestCase): + def setUp(self): + self._checker = OperationChecker + + def test_is_add_operation_positive(self): + operation_name = OperationNamePrefix.ADD + "Object" + operation_spec = {OperationField.METHOD: HTTPMethod.POST} + assert self._checker.is_add_operation(operation_name, operation_spec) + + def test_is_add_operation_wrong_method_in_spec(self): + operation_name = OperationNamePrefix.ADD + "Object" + operation_spec = {OperationField.METHOD: HTTPMethod.GET} + assert not self._checker.is_add_operation(operation_name, operation_spec) + + def test_is_add_operation_negative_wrong_operation_name(self): + operation_name = OperationNamePrefix.GET + "Object" + operation_spec = {OperationField.METHOD: HTTPMethod.POST} + assert not self._checker.is_add_operation(operation_name, operation_spec) + + def test_is_edit_operation_positive(self): + operation_name = OperationNamePrefix.EDIT + "Object" + operation_spec = {OperationField.METHOD: HTTPMethod.PUT} + assert self._checker.is_edit_operation(operation_name, operation_spec) + + def test_is_edit_operation_wrong_method_in_spec(self): + operation_name = OperationNamePrefix.EDIT + "Object" + operation_spec = {OperationField.METHOD: HTTPMethod.GET} + assert not self._checker.is_edit_operation(operation_name, operation_spec) + + def test_is_edit_operation_negative_wrong_operation_name(self): + operation_name = OperationNamePrefix.GET + "Object" + operation_spec = {OperationField.METHOD: HTTPMethod.PUT} + assert not self._checker.is_edit_operation(operation_name, operation_spec) + + def test_is_delete_operation_positive(self): + operation_name = OperationNamePrefix.DELETE + "Object" + operation_spec = {OperationField.METHOD: HTTPMethod.DELETE} + self.assertTrue( + self._checker.is_delete_operation(operation_name, operation_spec) + ) + + def test_is_delete_operation_wrong_method_in_spec(self): + operation_name = OperationNamePrefix.DELETE + "Object" + operation_spec = {OperationField.METHOD: HTTPMethod.GET} + assert not self._checker.is_delete_operation(operation_name, operation_spec) + + def test_is_delete_operation_negative_wrong_operation_name(self): + operation_name = OperationNamePrefix.GET + "Object" + operation_spec = {OperationField.METHOD: HTTPMethod.DELETE} + assert not self._checker.is_delete_operation(operation_name, operation_spec) + + def test_is_get_list_operation_positive(self): + operation_name = OperationNamePrefix.GET + "Object" + operation_spec = { + OperationField.METHOD: HTTPMethod.GET, + OperationField.RETURN_MULTIPLE_ITEMS: True + } + assert self._checker.is_get_list_operation(operation_name, operation_spec) + + def test_is_get_list_operation_wrong_method_in_spec(self): + operation_name = OperationNamePrefix.GET + "Object" + operation_spec = { + OperationField.METHOD: HTTPMethod.POST, + OperationField.RETURN_MULTIPLE_ITEMS: True + } + assert not self._checker.is_get_list_operation(operation_name, operation_spec) + + def test_is_get_list_operation_does_not_return_list(self): + operation_name = OperationNamePrefix.GET + "Object" + operation_spec = { + OperationField.METHOD: HTTPMethod.GET, + OperationField.RETURN_MULTIPLE_ITEMS: False + } + assert not self._checker.is_get_list_operation(operation_name, operation_spec) + + def test_is_get_operation_positive(self): + operation_name = OperationNamePrefix.GET + "Object" + operation_spec = { + OperationField.METHOD: HTTPMethod.GET, + OperationField.RETURN_MULTIPLE_ITEMS: False + } + self.assertTrue( + self._checker.is_get_operation(operation_name, operation_spec) + ) + + def test_is_get_operation_wrong_method_in_spec(self): + operation_name = OperationNamePrefix.ADD + "Object" + operation_spec = { + OperationField.METHOD: HTTPMethod.POST, + OperationField.RETURN_MULTIPLE_ITEMS: False + } + assert not self._checker.is_get_operation(operation_name, operation_spec) + + def test_is_get_operation_negative_when_returns_multiple(self): + operation_name = OperationNamePrefix.GET + "Object" + operation_spec = { + OperationField.METHOD: HTTPMethod.GET, + OperationField.RETURN_MULTIPLE_ITEMS: True + } + assert not self._checker.is_get_operation(operation_name, operation_spec) + + def test_is_upsert_operation_positive(self): + operation_name = OperationNamePrefix.UPSERT + "Object" + assert self._checker.is_upsert_operation(operation_name) + + def test_is_upsert_operation_with_wrong_operation_name(self): + for op_type in [OperationNamePrefix.ADD, OperationNamePrefix.GET, OperationNamePrefix.EDIT, + OperationNamePrefix.DELETE]: + operation_name = op_type + "Object" + assert not self._checker.is_upsert_operation(operation_name) + + def test_is_find_by_filter_operation(self): + operation_name = OperationNamePrefix.GET + "Object" + operation_spec = { + OperationField.METHOD: HTTPMethod.GET, + OperationField.RETURN_MULTIPLE_ITEMS: True + } + params = {ParamName.FILTERS: 1} + self.assertTrue( + self._checker.is_find_by_filter_operation( + operation_name, params, operation_spec + ) + ) + + def test_is_find_by_filter_operation_negative_when_filters_empty(self): + operation_name = OperationNamePrefix.GET + "Object" + operation_spec = { + OperationField.METHOD: HTTPMethod.GET, + OperationField.RETURN_MULTIPLE_ITEMS: True + } + params = {ParamName.FILTERS: None} + assert not self._checker.is_find_by_filter_operation( + operation_name, params, operation_spec + ) + + params = {} + assert not self._checker.is_find_by_filter_operation( + operation_name, params, operation_spec + ) + + def test_is_upsert_operation_supported_operation(self): + get_list_op_spec = {OperationField.METHOD: HTTPMethod.GET, OperationField.RETURN_MULTIPLE_ITEMS: True} + add_op_spec = {OperationField.METHOD: HTTPMethod.POST} + edit_op_spec = {OperationField.METHOD: HTTPMethod.PUT} + + assert self._checker.is_upsert_operation_supported({'getList': get_list_op_spec, 'edit': edit_op_spec}) + assert self._checker.is_upsert_operation_supported( + {'add': add_op_spec, 'getList': get_list_op_spec, 'edit': edit_op_spec}) + assert not self._checker.is_upsert_operation_supported({'getList': get_list_op_spec}) + assert not self._checker.is_upsert_operation_supported({'edit': edit_op_spec}) + assert not self._checker.is_upsert_operation_supported({'getList': get_list_op_spec, 'add': add_op_spec}) diff --git a/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/test_data/ngfw_with_ex.json b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/test_data/ngfw_with_ex.json new file mode 100644 index 000000000..10259c519 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/test_data/ngfw_with_ex.json @@ -0,0 +1 @@ +{"swagger":"2.0","schemes":["https","http"],"consumes":["application/json"],"produces":["application/json"],"info":{"title":"Firepower Threat Defense REST API","version":"2.0.0"},"basePath":"/api/fdm/v2","definitions":{"AAAIdentitySourceStatus":{"type":"string","enum":["ACTIVE","INACTIVE"]},"AAASetting":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"identitySourceGroup":{"type":"object","$ref":"#/definitions/ReferenceModel"},"description":{"type":"string"},"protocolType":{"type":"object","$ref":"#/definitions/IdentitySourceProtocolType"},"useLocal":{"type":"object","$ref":"#/definitions/UseLocal"},"id":{"type":"string"},"type":{"type":"string","default":"aaasetting"}},"required":["identitySourceGroup","useLocal","protocolType","type"],"example":{"id":"26a27672-4b9a-579f-a3ee-74a0b55f2742","version":"4479b721-10a2-5c04-a227-4c763c7ca43c","description":"Owofagfa co ji vo pegcil cubu oplikik jejjepju wepiuje celado ibunej tecbele li nakrut cub heej joonkac wamregvec.","protocolType":"SSH","identitySourceGroup":{"id":"1fc4ab36-2377-5bd1-ae93-af99820ed7f8","version":"23c0dd6d-7756-5417-9cd4-41cc24e3a28f","name":"RadiusIdentitySourceGroup15","description":"Ce ru kugecdak ja dirgus zo naidevi rifwa va fe dadovol zemkeriw ge al decnege ve cotwajub mimafgo.","radiusIdentitySources":[{"id":"98de28ef-9898-55c4-b6ce-bcee24ee6d57","version":"280b0f79-9611-5086-b9b8-f51ddcef906a","name":"RadiusIdentitySource1","description":"Saranmun tevvoiga debozbo kuz beregu irepoge novemad uviohze nanlev jepezweg coaf ehlumvun.","host":"109.170.119.220","timeout":192,"serverAuthenticationPort":15336,"serverSecretKey":"","capabilities":["AUTHENTICATION","PASSIVE_IDENTITY"],"type":"radiusidentitysource"},{"id":"6337c699-3dcf-5160-8222-135f13129125","version":"811fa9af-23a7-5074-88c4-dcae37336fcc","name":"RadiusIdentitySource5","description":"Logabaho ruppiful iva losifah dah guhejku hitotnos linolhut umgutul dud mu otzosu vigit tevodofi moksoezu livufauk.","host":"97.98.218.73","timeout":74,"serverAuthenticationPort":42065,"serverSecretKey":"","capabilities":["ACCOUNTING","AUTHENTICATION","AUTHORIZATION","DIRECTORY_SERVICES","PASSIVE_IDENTITY"],"type":"radiusidentitysource"}],"deadTime":69,"maxFailedAttempts":2,"type":"radiusidentitysourcegroup"},"useLocal":"AFTER","type":"aaasetting"}},"AAASettingWrapper":{"allOf":[{"$ref":"#/definitions/AAASetting"},{"$ref":"#/definitions/LinksWrapper"}]},"AccessControlRuleBase$EventLogAction":{"type":"string","enum":["LOG_FLOW_START","LOG_FLOW_END","LOG_BOTH","LOG_NONE"]},"AccessControlRuleBase$AcRuleAction":{"type":"string","enum":["PERMIT","TRUST","DENY"]},"AccessControlRuleDeployInfo":{"type":"object","properties":{"order":{"type":"integer"},"ruleId":{"type":"integer"},"eventLogAction":{"type":"object","$ref":"#/definitions/AccessControlRuleBase$EventLogAction"},"ruleUuid":{"type":"string"},"numRemarkLines":{"type":"integer"},"aclLineChecksums":{"type":"array","items":{"type":"string"}},"type":{"type":"string","default":"accesscontrolruledeployinfo"}},"required":["type"]},"AccessDefaultAction":{"type":"object","properties":{"action":{"type":"object","$ref":"#/definitions/AccessControlRuleBase$AcRuleAction"},"eventLogAction":{"type":"object","$ref":"#/definitions/AccessControlRuleBase$EventLogAction"},"intrusionPolicy":{"type":"object","$ref":"#/definitions/ReferenceModel"},"syslogServer":{"type":"object","$ref":"#/definitions/ReferenceModel"},"type":{"type":"string","default":"accessdefaultaction"}},"required":["type"],"example":{"action":"TRUST","eventLogAction":"LOG_BOTH","type":"accessdefaultaction"}},"AccessPolicy":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"defaultAction":{"type":"object","$ref":"#/definitions/AccessDefaultAction"},"sslPolicy":{"type":"object","$ref":"#/definitions/ReferenceModel"},"id":{"type":"string"},"identityPolicySetting":{"type":"object","$ref":"#/definitions/ReferenceModel"},"securityIntelligence":{"type":"object","$ref":"#/definitions/ReferenceModel"},"type":{"type":"string","default":"accesspolicy"}},"required":["type"],"example":{"id":"default","rules":[{"id":"f7443881-d20e-5699-8f66-55481ef54196","version":"9171ae71-46df-514d-a690-9484e8950569","ruleId":1,"name":"err","protocol":"TCP","ruleAction":"TRUST","eventLogAction":"LOG_FLOW_END","syslogServer":{"id":"b7731ecd-011b-5f95-90b4-72b024a040d9","version":"8287a57f-56d1-51e9-83f1-361ad172f158","host":"28.235.174.9","port":5897,"deviceInterface":{"mtu":5818,"enabled":true,"description":"Setta biwofega af ihi ebele inowo inagiobo nu it fe heivu lijivok.","name":"diagnostic","id":"f7509b61-168c-5d86-9a4c-8d3a2bb23e90","hardwareName":"Management0/0","macAddress":"249A.16A4.5DED","monitorInterface":true,"standbyMacAddress":"06D4.757D.FF06","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0c4e:e907:93c3:ba7a:7842:4899:f454:2a33/32","ipAddress":"41e0:3a60:0ca6:5f1c:cdd5:9c57:4918:682f/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d039:d6f4:278a:cdd3:b9e3:2711:460f:1555","ipAddress":"7e31:6d3f:5bbc:0d7f:4df6:58b9:26a6:d462"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"227.88.54.119","standbyIpAddress":"119.107.19.197"}},"version":"e50dac9e-5493-5760-b5e5-294741f3c409","managementInterface":true,"managementOnly":true,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"},"protocol":"UDP","useManagementInterface":false,"type":"syslogserver"},"sourceZones":[{"id":"8cb69a8f-7d8d-5f4e-9a4f-f6e717f833ed","name":"SecurityZone3Name","description":"Udanovja dupolo zurepi ufmu ah lezup ba ga jur duvorzu abevabji zil nuikihi wopuw.","version":"dd83a4d5-be23-51f8-9b73-2ae9e26f7d36","interfaces":[{"mtu":2652,"enabled":false,"description":"Efupaf nas ilureg zetikdav emki fafiv tihug orhid zimurfo naferal va ta ug za ur di zetsa ragizike.","name":"subinterface10name","id":"4307a6d5-0ef1-55d4-adc4-0461c31b7eb5","hardwareName":"SubInterface0/10.11","macAddress":"F617.A8F2.5DEB","monitorInterface":true,"standbyMacAddress":"0E24.391A.BFD9","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"c324:084e:8a04:523f:64ec:2b27:9f07:6a8d/32","ipAddress":"0faf:b8b8:7fbe:0d00:facd:c82d:f721:93dd/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"bc90:477f:99f9:ee80:1faa:1f0c:a2a6:77b7","ipAddress":"2d31:24c2:acd3:16b0:d1df:b4b6:763f:48c0"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"250.15.33.10","standbyIpAddress":"254.220.208.229"}},"version":"0f193aa1-ad09-52dd-98e8-eb32e2e61484","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}},{"id":"340bf250-a4a5-5049-bddf-a6201a9b8e86","name":"SecurityZone7Name","description":"So gitejipo sotvotdab watu la ica fojum dorog odohog mil etuw ta daghavke dig.","version":"273d67ab-abb9-5af1-8574-3e9af6e98aed","interfaces":[{"mtu":2652,"enabled":false,"description":"Wa cep gi lankowtu ce uvujed tad wo vezke vib vezvufgev hun vob velumde.","name":"subinterface11name","id":"ffc74b4d-ad27-5459-9907-186a8c739189","hardwareName":"SubInterface0/11.12","macAddress":"1534.AB09.4146","monitorInterface":true,"standbyMacAddress":"CF72.BDFB.98A1","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"fafb:559d:106d:67ac:52dd:e182:d306:4792/32","ipAddress":"a7bd:69ea:f24f:04ea:40c5:3f80:0416:0f09/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d544:6d26:411c:e460:9911:cb8b:ca9e:3a15","ipAddress":"f96f:858d:9ed1:fc9f:7b47:0fb4:246d:6cb6"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"17.76.225.83","standbyIpAddress":"195.253.157.229"}},"version":"e22e21d2-9d64-51a4-adc2-a775a4572916","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}}],"destinationZones":[{"id":"043ca75c-25c8-5d2f-9912-f174e3756077","name":"SecurityZone8Name","description":"Fo zihroc befjijwe vafel golwekjow hukohdi bo gitjap titsuabe cav fif mufdec unibit mubu idabehob ruthesusa.","version":"9f2207f2-63f0-5423-aa5c-6b7dc7d41cf3","interfaces":[{"mtu":2652,"enabled":true,"description":"Ta ikoure oznog tu hodul bizzo jimiite men cucif bewtujjof amurulev cuh igu fo siw dupziswul upahig roivipi.","name":"subinterface1name","id":"bdb62102-971e-5472-ab3b-22a7d408dc10","hardwareName":"SubInterface0/1.2","macAddress":"A57C.05DF.7FC0","monitorInterface":false,"standbyMacAddress":"4CE2.828C.AAB1","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"86a0:974f:3bf1:cee2:71c8:e295:2c3e:8d76/32","ipAddress":"9cb8:4589:0220:bd63:4d62:42ac:bd26:e1ac/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"7f67:fa11:adca:bd10:8583:757e:7ebb:be87","ipAddress":"4298:ffb2:30f7:84b6:5106:69aa:343c:8362"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"43.30.66.103","standbyIpAddress":"138.99.49.192"}},"version":"e04406e6-ff09-57ac-9b38-fdd8b19cf6fb","managementInterface":true,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}}],"sourceNetworks":[{"id":"0f1e5697-c424-59ac-87dd-bc36e3c08465","name":"Network10","description":"Gowvis opopijab joswirud jezow feud ikibik ruronub oh zoteso ilohhu wif wezagina mi dov riluj luffepcep safes zeksim.","version":"59a184bf-98ff-5f9a-a5c3-67542f91153d","type":"networkobject","subType":"NETWORK","value":"146.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"73ee665b-fbee-563d-92d0-c41d4e5fb7f2","name":"Network2","description":"Wavfu uk unlofu daefi ow fi te zebnah abaco so lodtiw kijeh upzesin kew zo eg.","version":"d5877fad-91a9-5848-95bd-509fc9538ec7","type":"networkobject","subType":"NETWORK","value":"166.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":false}},{"id":"2082a308-8b86-5219-b121-d470ff1b8aa8","name":"Geolocation14","description":"Heivkib tij budvoddij abauzjuk obuvunken fiji tajo puluno kahja vozrejnak hizebivis dowu cujtabti kelij heh mo pifgiri lamfajkuw.","version":"db2ff476-1b01-52e6-8574-95caec83dfa4","type":"geolocation","locations":[{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"92e4bed7-5044-5b4f-8d3f-1239ff903965","name":"France","deprecated":true,"iso3":"FRA","iso2":"FR","code":"250","type":"country"},{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"f15f76ba-d150-5ed1-8d49-329860b8a4c2","name":"Venezuela","deprecated":false,"iso3":"VEN","iso2":"VE","code":"862","type":"country"},{"id":"57110fb6-aee4-50cf-a1ad-e8e3cf723b03","name":"Curacao","deprecated":false,"iso3":"CUW","iso2":"CW","code":"531","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"}]}],"destinationNetworks":[{"id":"0f1e5697-c424-59ac-87dd-bc36e3c08465","name":"Network10","description":"Gowvis opopijab joswirud jezow feud ikibik ruronub oh zoteso ilohhu wif wezagina mi dov riluj luffepcep safes zeksim.","version":"59a184bf-98ff-5f9a-a5c3-67542f91153d","type":"networkobject","subType":"NETWORK","value":"146.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"73ee665b-fbee-563d-92d0-c41d4e5fb7f2","name":"Network2","description":"Wavfu uk unlofu daefi ow fi te zebnah abaco so lodtiw kijeh upzesin kew zo eg.","version":"d5877fad-91a9-5848-95bd-509fc9538ec7","type":"networkobject","subType":"NETWORK","value":"166.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":false}},{"id":"2082a308-8b86-5219-b121-d470ff1b8aa8","name":"Geolocation14","description":"Heivkib tij budvoddij abauzjuk obuvunken fiji tajo puluno kahja vozrejnak hizebivis dowu cujtabti kelij heh mo pifgiri lamfajkuw.","version":"db2ff476-1b01-52e6-8574-95caec83dfa4","type":"geolocation","locations":[{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"92e4bed7-5044-5b4f-8d3f-1239ff903965","name":"France","deprecated":true,"iso3":"FRA","iso2":"FR","code":"250","type":"country"},{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"f15f76ba-d150-5ed1-8d49-329860b8a4c2","name":"Venezuela","deprecated":false,"iso3":"VEN","iso2":"VE","code":"862","type":"country"},{"id":"57110fb6-aee4-50cf-a1ad-e8e3cf723b03","name":"Curacao","deprecated":false,"iso3":"CUW","iso2":"CW","code":"531","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"}]}],"sourcePorts":[{"id":"39c5e145-2ed4-5038-ab20-3c4878437d1d","name":"icmpv6port2","description":"Fajla geffe heseipu tez toluhpap ve uhmoba garoeb ozafuzli suhwof aw likofat erige hentejpi jajaza faztiav osece na.","version":"d4492bb3-d9b0-52fc-acc6-81061c83c6b8","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8267,"isSystemDefined":false},{"id":"ff728962-8729-5bce-941c-1730e280dc0b","name":"icmpv6port1","description":"Uh letiof numsu bokewod gosso sowdilid bevliur idseaho vu delale luctid ila givcogev.","version":"9aca9371-12d1-5490-af24-a87e3160146f","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8452,"isSystemDefined":false}],"destinationPorts":[{"id":"5e4d4b4d-706c-5325-b034-896d42bf9087","name":"udp_port_1","description":"Rupkoedo zuv egodid ca buapesug tu mawaduh etaeha pigfa keh it bozute wovi zijuci poscuren ifohhe.","version":"db631abc-32a3-5ca5-8ae5-a3b6f3c8371a","type":"udpportobject","port":8537,"isSystemDefined":true},{"id":"34f7bed0-39b1-5064-a6e7-27b5431b2066","name":"udp_port_2","description":"Eji leklo infagziv wut vujapvug avvutu toduj dulnarse ifdo bipujhas ajo vualo efapomiw ge nepe gomhuh.","version":"5785591f-a79c-5ff4-bc82-b3dd6d70a236","type":"udpportobject","port":8830,"isSystemDefined":false}],"users":[{"id":"963a9548-fb5f-57b2-b1d0-a0510cff6f64","name":"User Group 8","realmName":"hoivicinu","type":"trafficusergroup","realmId":2,"version":"aclowhiwid"},{"id":"5c815701-9753-5b9e-8b24-c5c5511aa1b6","name":"User 23","realmName":"gowitenci","type":"trafficuser","realmId":2,"version":"tufapitem"},{"id":"f7417bdc-8866-5397-8f4b-e1f2d7956bcc","name":"User 31","realmName":"guhecogguk","type":"trafficuser","realmId":0,"version":"asogtiodo"}],"embeddedAppFilter":{"conditions":[{"filter":"tazfeofgut","tags":[{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"e9812b72-2a36-5146-bce0-b09f876df88d","version":"080dca18-c677-5dd1-8f2f-40555beb4fe4","appId":10,"name":"ApplicationTag10","description":"Viswilo ariuzaf pih wa mul vugavrip rijfon aba kac giicse wolifa cowudzuv vev iztafit.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"},{"id":"ea9b4aa3-c8a2-52f9-87ba-b33f1b452a42","version":"e289f52e-a078-5581-a775-4c8435a534f0","appId":3,"name":"ApplicationCategory7","description":"Ci sovo ig ivebcag gif uk eztez ezofi jizrebi lafozu ehje daj noiw vajru modpoteh juizu.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"MEDIUM"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"MEDIUM"}],"type":"applicationfiltercondition"},{"filter":"detfaodvej","tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"CRITICAL"}],"applicationTypes":[{"type":"typecondition","applicationType":"CLIENT"},{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"MEDIUM"},{"type":"productivitycondition","productivity":"VERY_HIGH"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"71b15970-f3f3-5b1b-b7bb-f0613eba06e2","version":"a1f1ec4f-62c4-56f7-85ab-ffa7d87ea131","name":"ApplicationFilter7","description":"Vul ejube iwu bodjaaki neros atwiha pi tamgek mazce zilitufa volvaz mibgo tubzesuwi bunefon enuhoj.","applications":[{"id":"ce901dd3-4e85-5bf0-a273-2018d76527c8","version":"84a4f0c6-57b3-50f3-bf20-0cf68bbbb806","description":"Gipus bovawge vel ceoziwo nuim ehdifir nowe onoli atsewav irfer semowi ge turos mufo tahukca jaz.","deprecated":true,"appId":5,"productivity":0,"risk":2,"name":"Application2","tagIds":["58edda62-c97b-56e5-9e6c-32926f4d3009"],"tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["1323d445-72c0-5d8b-9f58-c223feb51bac","328094ea-7b95-58e5-a2de-09018514e679"],"categories":[{"id":"1323d445-72c0-5d8b-9f58-c223feb51bac","version":"f85374d2-b1c5-5e65-b746-77dc6a21decb","appId":7,"name":"ApplicationCategory14","description":"Ohoad agoteveto irewomi adizogo lurtoop tizesuca himewwak poftoj cow nunapivif cisge pe hi raam hatdunze.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"328094ea-7b95-58e5-a2de-09018514e679","version":"a9f6d6f5-e2ce-5a1b-8c7f-1a5ba3c375b4","appId":4,"name":"ApplicationCategory1","description":"Pilooru amavudek uhzidkah sieha duhni ikfo celrid az ocolu loplun buj nodlial do ahme henacava so ecevega wemtumacu.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["CLIENT","WEBAPP"],"metadata":{"referenced":false},"type":"application"}],"conditions":[{"filter":"tazfeofgut","tags":[{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"e9812b72-2a36-5146-bce0-b09f876df88d","version":"080dca18-c677-5dd1-8f2f-40555beb4fe4","appId":10,"name":"ApplicationTag10","description":"Viswilo ariuzaf pih wa mul vugavrip rijfon aba kac giicse wolifa cowudzuv vev iztafit.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"},{"id":"ea9b4aa3-c8a2-52f9-87ba-b33f1b452a42","version":"e289f52e-a078-5581-a775-4c8435a534f0","appId":3,"name":"ApplicationCategory7","description":"Ci sovo ig ivebcag gif uk eztez ezofi jizrebi lafozu ehje daj noiw vajru modpoteh juizu.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"MEDIUM"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"MEDIUM"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":true},"type":"applicationfilter"}],"applications":[{"id":"c51fa076-7516-5b1a-b689-87d5d4dd6656","version":"71b129f0-e504-5ee0-85b0-3d683c7fbc85","description":"Fishak luksa juw magaldi igo kaipojo vifpok jarado fefadkiw keogo mow kojepoha bonewke hobomag vo gi om tam.","deprecated":false,"appId":4,"productivity":1,"risk":3,"name":"Application4","tagIds":["58edda62-c97b-56e5-9e6c-32926f4d3009","63db3391-02c9-5d1b-b971-5a6427f4c9fe"],"tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"63db3391-02c9-5d1b-b971-5a6427f4c9fe","version":"95d07b80-ad97-50b0-a64b-b279d1420618","appId":5,"name":"ApplicationTag5","description":"Uwano ujeoska rootmaj kammovu ivitarpoh percuk oto bacema da onsevsej jovocoog ge gafed zakas ijwimuf.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["794d6605-f5d9-5f26-b11d-507eac471889","33552c21-0930-5bb5-8459-9b7608cda68e"],"categories":[{"id":"794d6605-f5d9-5f26-b11d-507eac471889","version":"20176f07-7d98-5dd7-8a17-de688ee66220","appId":1,"name":"ApplicationCategory3","description":"Woc ved ecu hin potalbib la uweerabof mato dewahmo avutji wose pujda tunoduz ucu ho zopusno lo mu.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"33552c21-0930-5bb5-8459-9b7608cda68e","version":"73578557-169e-5431-99f4-4a87fb56d57c","appId":4,"name":"ApplicationCategory9","description":"Tir upwul taf foj igonas mawejus ba ni loj racwu pu nelkal gofifun zemcuz ut.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["CLIENT","WEBAPP"],"metadata":{"referenced":false},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"88645135-dab6-5408-ad33-728243b663c2","version":"wugurojwo","name":"UrlGroup6","description":"Du vit inawi ravci mogpaf lal fer jefkew ginac nih namhit dop.","objects":[{"id":"d72bd5cf-710c-5048-b0fa-1bda6746520d","version":"onaisujuja","name":"Url3","description":"Nolze no gavrofkep dog di buc ta oko kon pigu fuezo uzara.","url":"http://gagonofi.edu/letiga","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlReputation":{"id":"23f0e43b-0957-554b-b0a4-555d8a444cfa","name":"High risk","index":5,"startPercentage":1,"endPercentage":20,"version":"67559ce6-d60d-5a76-9eef-b4d30401c5c8","type":"urlreputation"},"urlCategory":{"id":"798bf64f-6bf2-5cf4-a895-74670e51cfb2","version":"08eadcce-2a79-5212-9907-e3e7b7e8ae0e","name":"UrlCategory-6","deprecated":false,"urlCategoryId":6,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"logFiles":false,"type":"accessrule"},{"id":"0f78c7ab-d9f6-5180-b3f0-77b29fd87066","version":"0f345b7f-32de-5c35-81d6-30c48ad440b4","ruleId":2,"name":"Access_Rule_2","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_FLOW_END","syslogServer":{"id":"2f33d844-7516-5f6e-87ed-8da737ce2a78","version":"d7f05fd4-062b-5c81-9a97-7de1c7591fda","host":"139.79.31.136","port":5897,"protocol":"TCP","useManagementInterface":true,"type":"syslogserver"},"sourceZones":[{"id":"8cb69a8f-7d8d-5f4e-9a4f-f6e717f833ed","name":"SecurityZone3Name","description":"Udanovja dupolo zurepi ufmu ah lezup ba ga jur duvorzu abevabji zil nuikihi wopuw.","version":"dd83a4d5-be23-51f8-9b73-2ae9e26f7d36","interfaces":[{"mtu":2652,"enabled":false,"description":"Efupaf nas ilureg zetikdav emki fafiv tihug orhid zimurfo naferal va ta ug za ur di zetsa ragizike.","name":"subinterface10name","id":"4307a6d5-0ef1-55d4-adc4-0461c31b7eb5","hardwareName":"SubInterface0/10.11","macAddress":"F617.A8F2.5DEB","monitorInterface":true,"standbyMacAddress":"0E24.391A.BFD9","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"c324:084e:8a04:523f:64ec:2b27:9f07:6a8d/32","ipAddress":"0faf:b8b8:7fbe:0d00:facd:c82d:f721:93dd/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"bc90:477f:99f9:ee80:1faa:1f0c:a2a6:77b7","ipAddress":"2d31:24c2:acd3:16b0:d1df:b4b6:763f:48c0"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"250.15.33.10","standbyIpAddress":"254.220.208.229"}},"version":"0f193aa1-ad09-52dd-98e8-eb32e2e61484","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}},{"id":"7fa724f3-b64c-585b-9176-69aed2b36237","name":"SecurityZone1Name","description":"Do pefa ritapo ovauciku vogomougi utino gudo momna sagocbiw bowce awu muzabwoz zetpec kit fe.","version":"9d1d113e-86e0-5106-9f6c-29cc8e8fc7fb","interfaces":[{"mtu":5818,"enabled":true,"description":"Wonca cotfo biok ugfejbah ro itedere itoh pijazu ocozojgi buk facheuho zo.","id":"ef57753e-8a0c-5454-a3b3-fbc3c570851d","hardwareName":"GigabitEthernet1/3","macAddress":"34B5.AF3E.B9E9","monitorInterface":true,"standbyMacAddress":"4AF5.3F46.87FE","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"da83:da11:93ff:4f56:084e:f1c1:269c:0dd0/32","ipAddress":"831e:6e6b:281e:8b10:94d0:03f1:b4d5:3373/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"6a3f:c0b2:5d20:fdb6:945d:bcd1:a144:7558","ipAddress":"af4f:d5f4:67bb:3263:e183:fc6c:ea34:f2e6"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"204.8.215.52","standbyIpAddress":"108.106.112.194"}},"version":"46c1bc9f-9a0a-5425-8dc2-3a04dd84c3f1","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"destinationZones":[{"id":"0453e827-ea9e-5279-b45d-49df10666f7f","name":"SecurityZone14Name","description":"Kojugbel ram kucdowaf dozabace bagi vizlujva ibeali humupici apefin sig wiwdocduw halsoz.","version":"aaaea33f-d703-5f8e-9fb0-8647d4f28f12","interfaces":[{"mtu":2652,"enabled":true,"description":"Dijiz mavajmak suhihi ja piobba vigsasu pulasa heka lus nuapoap gar weuluvaz faf duke sojpov pamdaba juhoflon ugosum.","name":"subinterface4name","id":"80110552-0168-5ca1-9539-159176e34426","hardwareName":"SubInterface0/4.5","macAddress":"1753.227B.5D9A","monitorInterface":false,"standbyMacAddress":"FF7B.C256.4778","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"1bb9:5d4d:1200:c9eb:97ff:589e:edd4:16e4/32","ipAddress":"eaba:377e:f390:0e98:800f:a6a7:5709:6b52/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"5189:1c32:5064:5495:0ecf:92dd:9175:944a","ipAddress":"479b:2e4a:a86f:13c2:425b:1e14:b1a3:ddfd"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"213.34.152.190","standbyIpAddress":"91.47.228.196"}},"version":"8bcf839f-438a-5cd4-99a7-b6f07ab652a0","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Povlulmi maev usma nizguv ve win coocila colo dunde karib wadu ku huhakla kikel gas.","name":"subinterface13name","id":"edd991bd-6b34-5057-9389-003a56e10179","hardwareName":"SubInterface0/13.14","macAddress":"CC55.5B72.5979","monitorInterface":true,"standbyMacAddress":"9F25.7162.695C","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0d43:9009:33b7:805f:2a41:1ed1:0ea0:3cd6/32","ipAddress":"e093:0b7d:4775:c0dc:8433:a3b6:1071:8974/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"bf79:78d0:19ad:cc70:9f5b:5882:e462:ba1d","ipAddress":"5ffa:92d3:6efd:ef6f:c194:ff49:7d28:7d56"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"237.58.152.175","standbyIpAddress":"233.37.45.228"}},"version":"f9997393-39da-5999-bef9-a0aa1c914d96","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"sourceNetworks":[{"id":"00826312-17b2-5b1e-968a-aabe114f0734","name":"Network6","description":"Je anah sankorir zaduv noscipan ron pi dubsanuf motnod ugufu zacew idu wafsembuc lo roge almoh lah.","version":"59e9909f-27d5-5e47-8d77-210909065352","type":"networkobject","subType":"NETWORK","value":"234.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"4f342e19-761a-5d53-a7a6-471d1cf8e254","name":"Network9","description":"Ehibivje dac entikod lofimom dueku ozitakni rilgolpuv zezartim zilkeki bu mu ertum pol vuodle bemah fegbat.","version":"779130e6-7166-5b4e-91f2-d2d92dd952ec","type":"networkobject","subType":"NETWORK","value":"129.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"09d97c3e-0824-5e9d-bee8-28ea311458a5","name":"Geolocation4","description":"Detriwwot uwaan sa ta pohvab ako fi owe apefi ocde mok alcob.","version":"b599df3c-38d1-523e-9bc6-2d82e76d48ff","type":"geolocation","locations":[{"id":"18cbe485-d646-5aad-827e-13ec090dd450","name":"Europe","deprecated":false,"code":1005,"type":"continent","countries":[{"id":"a0d47a89-de9b-5f06-b5f2-b903320ecf26","name":"Kosovo","deprecated":true,"iso3":"XKX","iso2":"XK","code":"0","type":"country"},{"id":"0613c448-b6b0-55f9-9ab0-81470a794905","name":"Vatican City","deprecated":false,"iso3":"VAT","iso2":"VA","code":"336","type":"country"},{"id":"90c38868-27c0-5de2-a580-630b08b64406","name":"Ukraine","deprecated":false,"iso3":"UKR","iso2":"UA","code":"804","type":"country"},{"id":"e8b65d12-13e5-53b5-abe4-3c833e412440","name":"San Marino","deprecated":true,"iso3":"SMR","iso2":"SM","code":"674","type":"country"},{"id":"cbe10064-72a0-5b1a-813f-0d684567cb07","name":"Slovakia","deprecated":true,"iso3":"SVK","iso2":"SK","code":"703","type":"country"},{"id":"ce221115-d595-50d6-bd2f-fe0429b27b04","name":"Svalbard and Jan Mayen","deprecated":false,"iso3":"SJM","iso2":"SJ","code":"744","type":"country"},{"id":"9401a437-ee7e-51a8-bcc0-7623f8193dac","name":"Slovenia","deprecated":true,"iso3":"SVN","iso2":"SI","code":"705","type":"country"},{"id":"d4901422-c6fd-5ef4-bf4e-09d2074b34dc","name":"Sweden","deprecated":true,"iso3":"SWE","iso2":"SE","code":"752","type":"country"},{"id":"5f22f339-f1a0-5a70-9254-5dd0dad4d243","name":"Russia","deprecated":false,"iso3":"RUS","iso2":"RU","code":"643","type":"country"},{"id":"3a771763-9c5d-580f-9fc5-df41e7355def","name":"Serbia","deprecated":false,"iso3":"SRB","iso2":"RS","code":"688","type":"country"},{"id":"74759e4d-8901-5302-89b7-384fa438a9d2","name":"Romania","deprecated":true,"iso3":"ROU","iso2":"RO","code":"642","type":"country"},{"id":"58579a6d-8542-5c18-8ecb-4d54f527c8e5","name":"Portugal","deprecated":false,"iso3":"PRT","iso2":"PT","code":"620","type":"country"},{"id":"c095aa5d-350d-5db8-9d01-0a106f93c3a5","name":"Poland","deprecated":true,"iso3":"POL","iso2":"PL","code":"616","type":"country"},{"id":"02fa0428-9885-58ba-9fc1-9cc2cb30f0cb","name":"Norway","deprecated":true,"iso3":"NOR","iso2":"NO","code":"578","type":"country"},{"id":"39923980-c4f7-5dda-890c-ab8c290a5be5","name":"Netherlands","deprecated":false,"iso3":"NLD","iso2":"NL","code":"528","type":"country"},{"id":"aaad1a9f-fd04-5427-aea9-6a2216f61efe","name":"Malta","deprecated":false,"iso3":"MLT","iso2":"MT","code":"470","type":"country"},{"id":"ef8d2943-7ddf-57a6-8543-563cc13ebf4e","name":"Macedonia","deprecated":true,"iso3":"MKD","iso2":"MK","code":"807","type":"country"},{"id":"779cdf72-27d4-5e41-b81c-8ea5ef53f01a","name":"Montenegro","deprecated":false,"iso3":"MNE","iso2":"ME","code":"499","type":"country"},{"id":"8ecb3dd6-0cc2-5bac-b21d-83f1e3fbc848","name":"Moldova","deprecated":true,"iso3":"MDA","iso2":"MD","code":"498","type":"country"},{"id":"e0400095-a311-5b38-92e1-d635e6a1f938","name":"Monaco","deprecated":false,"iso3":"MCO","iso2":"MC","code":"492","type":"country"},{"id":"4e696592-960a-51d9-9078-985330e3feb1","name":"Latvia","deprecated":true,"iso3":"LVA","iso2":"LV","code":"428","type":"country"},{"id":"bb1fe9b8-9f49-56fe-9278-4cc73152f780","name":"Luxembourg","deprecated":true,"iso3":"LUX","iso2":"LU","code":"442","type":"country"},{"id":"76d4e398-d6e2-5f4f-ba11-d01a828f883d","name":"Lithuania","deprecated":true,"iso3":"LTU","iso2":"LT","code":"440","type":"country"},{"id":"059ecc8f-4828-5c94-a589-534028509f02","name":"Liechtenstein","deprecated":true,"iso3":"LIE","iso2":"LI","code":"438","type":"country"},{"id":"73f3b217-148d-5d48-a652-495178f5a046","name":"Jersey","deprecated":true,"iso3":"JEY","iso2":"JE","code":"832","type":"country"},{"id":"3e0ee5a1-a07b-52c0-b62c-a470c4269802","name":"Italy","deprecated":false,"iso3":"ITA","iso2":"IT","code":"380","type":"country"},{"id":"0a95f5f3-ed92-5adb-9e53-3a1d516b33f1","name":"Iceland","deprecated":true,"iso3":"ISL","iso2":"IS","code":"352","type":"country"},{"id":"968a378c-2885-5a3b-a0dc-160560765c7e","name":"Isle of Man","deprecated":true,"iso3":"IMN","iso2":"IM","code":"833","type":"country"},{"id":"cae04dab-514c-559a-94d5-b3930bcf5800","name":"Ireland","deprecated":false,"iso3":"IRL","iso2":"IE","code":"372","type":"country"},{"id":"bc5d918e-a2c8-508d-9a87-c990eeec6215","name":"Hungary","deprecated":true,"iso3":"HUN","iso2":"HU","code":"348","type":"country"},{"id":"4adcb40c-5d55-5860-97b6-ebac58830a04","name":"Croatia","deprecated":true,"iso3":"HRV","iso2":"HR","code":"191","type":"country"},{"id":"03330265-fe01-5435-899a-08042bc643b5","name":"Greece","deprecated":false,"iso3":"GRC","iso2":"GR","code":"300","type":"country"},{"id":"a3120da5-8f6f-5fdc-af6d-8ccac4e802b7","name":"Gibraltar","deprecated":true,"iso3":"GIB","iso2":"GI","code":"292","type":"country"},{"id":"7a31d958-157e-509d-bc9f-f52b45c85c6d","name":"Guernsey","deprecated":true,"iso3":"GGY","iso2":"GG","code":"831","type":"country"},{"id":"2fbb8b4c-cc35-5550-acef-bc53b5c0f0f4","name":"United Kingdom","deprecated":false,"iso3":"GBR","iso2":"GB","code":"826","type":"country"},{"id":"92e4bed7-5044-5b4f-8d3f-1239ff903965","name":"France","deprecated":true,"iso3":"FRA","iso2":"FR","code":"250","type":"country"},{"id":"5ee6b8ad-2c86-58d1-ac57-8db405e7dda8","name":"Faroe Islands","deprecated":true,"iso3":"FRO","iso2":"FO","code":"234","type":"country"},{"id":"a7a8cee7-9bad-5786-a874-6be00056cecd","name":"Finland","deprecated":true,"iso3":"FIN","iso2":"FI","code":"246","type":"country"},{"id":"1e9c9635-11bb-5544-8fab-27b6da86a545","name":"Spain","deprecated":true,"iso3":"ESP","iso2":"ES","code":"724","type":"country"},{"id":"355204ae-8c3e-5a96-8f23-3670fde3d26a","name":"Estonia","deprecated":true,"iso3":"EST","iso2":"EE","code":"233","type":"country"},{"id":"a7b4cd03-9dc0-572f-82ff-fef0153b4c8c","name":"Denmark","deprecated":true,"iso3":"DNK","iso2":"DK","code":"208","type":"country"},{"id":"004e74d4-cffc-599e-bd12-f4ac69a8a700","name":"Germany","deprecated":true,"iso3":"DEU","iso2":"DE","code":"276","type":"country"},{"id":"fbdea1d9-5ac4-53d0-be10-3220747421b8","name":"Czech Republic","deprecated":true,"iso3":"CZE","iso2":"CZ","code":"203","type":"country"},{"id":"d992dc09-5ab5-5126-a966-51dd89360213","name":"Cyprus","deprecated":false,"iso3":"CYP","iso2":"CY","code":"196","type":"country"},{"id":"eb716c3b-89e2-529c-a558-ca340a332486","name":"Switzerland","deprecated":true,"iso3":"CHE","iso2":"CH","code":"756","type":"country"},{"id":"089c406e-a4ff-52ae-9672-73a1bdf5a396","name":"Belarus","deprecated":true,"iso3":"BLR","iso2":"BY","code":"112","type":"country"},{"id":"3dfcd86f-2e29-59f7-9e44-27fe038c51a6","name":"Bulgaria","deprecated":false,"iso3":"BGR","iso2":"BG","code":"100","type":"country"},{"id":"8c299df7-5229-5596-963c-04cb2b46d34d","name":"Belgium","deprecated":true,"iso3":"BEL","iso2":"BE","code":"056","type":"country"},{"id":"fc99ebdb-5c82-5819-979d-d8f6310351af","name":"Bosnia and Herzegovina","deprecated":true,"iso3":"BIH","iso2":"BA","code":"070","type":"country"},{"id":"588e4f19-dfac-5134-98c1-c1cafee86399","name":"Åland","deprecated":false,"iso3":"ALA","iso2":"AX","code":"248","type":"country"},{"id":"67f08133-23b8-52ac-8436-41d77a2eebfb","name":"Austria","deprecated":false,"iso3":"AUT","iso2":"AT","code":"040","type":"country"},{"id":"28e90dfc-6bc0-556c-a014-d0dc49366442","name":"Albania","deprecated":true,"iso3":"ALB","iso2":"AL","code":"008","type":"country"}],"countryCodes":["0","336","804","674","703","744","705","752","643","688","642","620","616","578","528","470","807","499","498","492","428","442","440","438","832","380","352","833","372","348","191","300","292","831","826","250","234","246","724","233","208","276","203","196","756","112","100","056","070","248","040","008"]},{"id":"4343b55a-5fe8-567f-a099-f3d20b53a9cf","name":"Cook Islands","deprecated":true,"iso3":"COK","iso2":"CK","code":"184","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"},{"id":"c16f6991-a7d7-51dc-85d3-43752e0c5d10","name":"Suriname","deprecated":true,"iso3":"SUR","iso2":"SR","code":"740","type":"country"},{"id":"0b32f4f0-c8db-5011-ac99-73bfc4a31ecb","name":"Bonaire","deprecated":true,"iso3":"BES","iso2":"BQ","code":"535","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"}]}],"destinationNetworks":[{"id":"00826312-17b2-5b1e-968a-aabe114f0734","name":"Network6","description":"Je anah sankorir zaduv noscipan ron pi dubsanuf motnod ugufu zacew idu wafsembuc lo roge almoh lah.","version":"59e9909f-27d5-5e47-8d77-210909065352","type":"networkobject","subType":"NETWORK","value":"234.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"4f342e19-761a-5d53-a7a6-471d1cf8e254","name":"Network9","description":"Ehibivje dac entikod lofimom dueku ozitakni rilgolpuv zezartim zilkeki bu mu ertum pol vuodle bemah fegbat.","version":"779130e6-7166-5b4e-91f2-d2d92dd952ec","type":"networkobject","subType":"NETWORK","value":"129.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"09d97c3e-0824-5e9d-bee8-28ea311458a5","name":"Geolocation4","description":"Detriwwot uwaan sa ta pohvab ako fi owe apefi ocde mok alcob.","version":"b599df3c-38d1-523e-9bc6-2d82e76d48ff","type":"geolocation","locations":[{"id":"18cbe485-d646-5aad-827e-13ec090dd450","name":"Europe","deprecated":false,"code":1005,"type":"continent","countries":[{"id":"a0d47a89-de9b-5f06-b5f2-b903320ecf26","name":"Kosovo","deprecated":true,"iso3":"XKX","iso2":"XK","code":"0","type":"country"},{"id":"0613c448-b6b0-55f9-9ab0-81470a794905","name":"Vatican City","deprecated":false,"iso3":"VAT","iso2":"VA","code":"336","type":"country"},{"id":"90c38868-27c0-5de2-a580-630b08b64406","name":"Ukraine","deprecated":false,"iso3":"UKR","iso2":"UA","code":"804","type":"country"},{"id":"e8b65d12-13e5-53b5-abe4-3c833e412440","name":"San Marino","deprecated":true,"iso3":"SMR","iso2":"SM","code":"674","type":"country"},{"id":"cbe10064-72a0-5b1a-813f-0d684567cb07","name":"Slovakia","deprecated":true,"iso3":"SVK","iso2":"SK","code":"703","type":"country"},{"id":"ce221115-d595-50d6-bd2f-fe0429b27b04","name":"Svalbard and Jan Mayen","deprecated":false,"iso3":"SJM","iso2":"SJ","code":"744","type":"country"},{"id":"9401a437-ee7e-51a8-bcc0-7623f8193dac","name":"Slovenia","deprecated":true,"iso3":"SVN","iso2":"SI","code":"705","type":"country"},{"id":"d4901422-c6fd-5ef4-bf4e-09d2074b34dc","name":"Sweden","deprecated":true,"iso3":"SWE","iso2":"SE","code":"752","type":"country"},{"id":"5f22f339-f1a0-5a70-9254-5dd0dad4d243","name":"Russia","deprecated":false,"iso3":"RUS","iso2":"RU","code":"643","type":"country"},{"id":"3a771763-9c5d-580f-9fc5-df41e7355def","name":"Serbia","deprecated":false,"iso3":"SRB","iso2":"RS","code":"688","type":"country"},{"id":"74759e4d-8901-5302-89b7-384fa438a9d2","name":"Romania","deprecated":true,"iso3":"ROU","iso2":"RO","code":"642","type":"country"},{"id":"58579a6d-8542-5c18-8ecb-4d54f527c8e5","name":"Portugal","deprecated":false,"iso3":"PRT","iso2":"PT","code":"620","type":"country"},{"id":"c095aa5d-350d-5db8-9d01-0a106f93c3a5","name":"Poland","deprecated":true,"iso3":"POL","iso2":"PL","code":"616","type":"country"},{"id":"02fa0428-9885-58ba-9fc1-9cc2cb30f0cb","name":"Norway","deprecated":true,"iso3":"NOR","iso2":"NO","code":"578","type":"country"},{"id":"39923980-c4f7-5dda-890c-ab8c290a5be5","name":"Netherlands","deprecated":false,"iso3":"NLD","iso2":"NL","code":"528","type":"country"},{"id":"aaad1a9f-fd04-5427-aea9-6a2216f61efe","name":"Malta","deprecated":false,"iso3":"MLT","iso2":"MT","code":"470","type":"country"},{"id":"ef8d2943-7ddf-57a6-8543-563cc13ebf4e","name":"Macedonia","deprecated":true,"iso3":"MKD","iso2":"MK","code":"807","type":"country"},{"id":"779cdf72-27d4-5e41-b81c-8ea5ef53f01a","name":"Montenegro","deprecated":false,"iso3":"MNE","iso2":"ME","code":"499","type":"country"},{"id":"8ecb3dd6-0cc2-5bac-b21d-83f1e3fbc848","name":"Moldova","deprecated":true,"iso3":"MDA","iso2":"MD","code":"498","type":"country"},{"id":"e0400095-a311-5b38-92e1-d635e6a1f938","name":"Monaco","deprecated":false,"iso3":"MCO","iso2":"MC","code":"492","type":"country"},{"id":"4e696592-960a-51d9-9078-985330e3feb1","name":"Latvia","deprecated":true,"iso3":"LVA","iso2":"LV","code":"428","type":"country"},{"id":"bb1fe9b8-9f49-56fe-9278-4cc73152f780","name":"Luxembourg","deprecated":true,"iso3":"LUX","iso2":"LU","code":"442","type":"country"},{"id":"76d4e398-d6e2-5f4f-ba11-d01a828f883d","name":"Lithuania","deprecated":true,"iso3":"LTU","iso2":"LT","code":"440","type":"country"},{"id":"059ecc8f-4828-5c94-a589-534028509f02","name":"Liechtenstein","deprecated":true,"iso3":"LIE","iso2":"LI","code":"438","type":"country"},{"id":"73f3b217-148d-5d48-a652-495178f5a046","name":"Jersey","deprecated":true,"iso3":"JEY","iso2":"JE","code":"832","type":"country"},{"id":"3e0ee5a1-a07b-52c0-b62c-a470c4269802","name":"Italy","deprecated":false,"iso3":"ITA","iso2":"IT","code":"380","type":"country"},{"id":"0a95f5f3-ed92-5adb-9e53-3a1d516b33f1","name":"Iceland","deprecated":true,"iso3":"ISL","iso2":"IS","code":"352","type":"country"},{"id":"968a378c-2885-5a3b-a0dc-160560765c7e","name":"Isle of Man","deprecated":true,"iso3":"IMN","iso2":"IM","code":"833","type":"country"},{"id":"cae04dab-514c-559a-94d5-b3930bcf5800","name":"Ireland","deprecated":false,"iso3":"IRL","iso2":"IE","code":"372","type":"country"},{"id":"bc5d918e-a2c8-508d-9a87-c990eeec6215","name":"Hungary","deprecated":true,"iso3":"HUN","iso2":"HU","code":"348","type":"country"},{"id":"4adcb40c-5d55-5860-97b6-ebac58830a04","name":"Croatia","deprecated":true,"iso3":"HRV","iso2":"HR","code":"191","type":"country"},{"id":"03330265-fe01-5435-899a-08042bc643b5","name":"Greece","deprecated":false,"iso3":"GRC","iso2":"GR","code":"300","type":"country"},{"id":"a3120da5-8f6f-5fdc-af6d-8ccac4e802b7","name":"Gibraltar","deprecated":true,"iso3":"GIB","iso2":"GI","code":"292","type":"country"},{"id":"7a31d958-157e-509d-bc9f-f52b45c85c6d","name":"Guernsey","deprecated":true,"iso3":"GGY","iso2":"GG","code":"831","type":"country"},{"id":"2fbb8b4c-cc35-5550-acef-bc53b5c0f0f4","name":"United Kingdom","deprecated":false,"iso3":"GBR","iso2":"GB","code":"826","type":"country"},{"id":"92e4bed7-5044-5b4f-8d3f-1239ff903965","name":"France","deprecated":true,"iso3":"FRA","iso2":"FR","code":"250","type":"country"},{"id":"5ee6b8ad-2c86-58d1-ac57-8db405e7dda8","name":"Faroe Islands","deprecated":true,"iso3":"FRO","iso2":"FO","code":"234","type":"country"},{"id":"a7a8cee7-9bad-5786-a874-6be00056cecd","name":"Finland","deprecated":true,"iso3":"FIN","iso2":"FI","code":"246","type":"country"},{"id":"1e9c9635-11bb-5544-8fab-27b6da86a545","name":"Spain","deprecated":true,"iso3":"ESP","iso2":"ES","code":"724","type":"country"},{"id":"355204ae-8c3e-5a96-8f23-3670fde3d26a","name":"Estonia","deprecated":true,"iso3":"EST","iso2":"EE","code":"233","type":"country"},{"id":"a7b4cd03-9dc0-572f-82ff-fef0153b4c8c","name":"Denmark","deprecated":true,"iso3":"DNK","iso2":"DK","code":"208","type":"country"},{"id":"004e74d4-cffc-599e-bd12-f4ac69a8a700","name":"Germany","deprecated":true,"iso3":"DEU","iso2":"DE","code":"276","type":"country"},{"id":"fbdea1d9-5ac4-53d0-be10-3220747421b8","name":"Czech Republic","deprecated":true,"iso3":"CZE","iso2":"CZ","code":"203","type":"country"},{"id":"d992dc09-5ab5-5126-a966-51dd89360213","name":"Cyprus","deprecated":false,"iso3":"CYP","iso2":"CY","code":"196","type":"country"},{"id":"eb716c3b-89e2-529c-a558-ca340a332486","name":"Switzerland","deprecated":true,"iso3":"CHE","iso2":"CH","code":"756","type":"country"},{"id":"089c406e-a4ff-52ae-9672-73a1bdf5a396","name":"Belarus","deprecated":true,"iso3":"BLR","iso2":"BY","code":"112","type":"country"},{"id":"3dfcd86f-2e29-59f7-9e44-27fe038c51a6","name":"Bulgaria","deprecated":false,"iso3":"BGR","iso2":"BG","code":"100","type":"country"},{"id":"8c299df7-5229-5596-963c-04cb2b46d34d","name":"Belgium","deprecated":true,"iso3":"BEL","iso2":"BE","code":"056","type":"country"},{"id":"fc99ebdb-5c82-5819-979d-d8f6310351af","name":"Bosnia and Herzegovina","deprecated":true,"iso3":"BIH","iso2":"BA","code":"070","type":"country"},{"id":"588e4f19-dfac-5134-98c1-c1cafee86399","name":"Åland","deprecated":false,"iso3":"ALA","iso2":"AX","code":"248","type":"country"},{"id":"67f08133-23b8-52ac-8436-41d77a2eebfb","name":"Austria","deprecated":false,"iso3":"AUT","iso2":"AT","code":"040","type":"country"},{"id":"28e90dfc-6bc0-556c-a014-d0dc49366442","name":"Albania","deprecated":true,"iso3":"ALB","iso2":"AL","code":"008","type":"country"}],"countryCodes":["0","336","804","674","703","744","705","752","643","688","642","620","616","578","528","470","807","499","498","492","428","442","440","438","832","380","352","833","372","348","191","300","292","831","826","250","234","246","724","233","208","276","203","196","756","112","100","056","070","248","040","008"]},{"id":"4343b55a-5fe8-567f-a099-f3d20b53a9cf","name":"Cook Islands","deprecated":true,"iso3":"COK","iso2":"CK","code":"184","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"},{"id":"c16f6991-a7d7-51dc-85d3-43752e0c5d10","name":"Suriname","deprecated":true,"iso3":"SUR","iso2":"SR","code":"740","type":"country"},{"id":"0b32f4f0-c8db-5011-ac99-73bfc4a31ecb","name":"Bonaire","deprecated":true,"iso3":"BES","iso2":"BQ","code":"535","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"}]}],"sourcePorts":[{"id":"ff728962-8729-5bce-941c-1730e280dc0b","name":"icmpv6port1","description":"Uh letiof numsu bokewod gosso sowdilid bevliur idseaho vu delale luctid ila givcogev.","version":"9aca9371-12d1-5490-af24-a87e3160146f","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8452,"isSystemDefined":false},{"id":"b19e16f9-5846-596a-9757-161e7154e68c","name":"tcp_port_1","description":"Ruwus webwepfa fo copoko aligimaj riz zeti bivsu jah ve virip kesnenwer fi wede magbuf ojku sadruh ji.","version":"a90e8fa8-216a-59a4-bce1-da2f92acd1ad","type":"tcpportobject","port":8721,"isSystemDefined":true}],"destinationPorts":[{"id":"d0ecb6d1-cc76-58fb-a392-4e9c9537be4c","name":"icmpv4port2","description":"Asci be jutgu wo susadagi woveven bafosjoc ceec wovukiv tati tepav gu za muhhudbi.","version":"54ed4735-cf04-5504-8a5a-2dd0bec3f5a9","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8251,"isSystemDefined":false},{"id":"5e4d4b4d-706c-5325-b034-896d42bf9087","name":"udp_port_1","description":"Rupkoedo zuv egodid ca buapesug tu mawaduh etaeha pigfa keh it bozute wovi zijuci poscuren ifohhe.","version":"db631abc-32a3-5ca5-8ae5-a3b6f3c8371a","type":"udpportobject","port":8537,"isSystemDefined":true}],"users":[{"id":"b33b73c3-522a-5e45-93fa-9d0a05dc2444","name":"User 4","realmName":"guzafodoaka","type":"trafficuser","realmId":2,"version":"fiusonuik"},{"id":"272d38c1-b58d-5f2e-8988-abc1cd081efe","name":"User Group 7","realmName":"tivcibjizi","type":"trafficusergroup","realmId":2,"version":"ufajoabcel"},{"id":"d79daac5-6687-5ae3-a27e-83884d19e9b2","name":"User 17","realmName":"gikiirnur","type":"trafficuser","realmId":2,"version":"bewcazwowala"}],"intrusionPolicy":{"id":"a47cb8f5-fe55-11e4-8e99-ipsN40","name":"Maximum Detection","links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN40"},"rules":{"links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN40/rules/"}},"description":"Maximum Detection Layer","type":"intrusionpolicy","version":"124d1a7b-a1b4-5097-b6d4-5a399c5bdb68"},"filePolicy":{"id":"de5b742d-70db-535d-bb42-6e6ba949ef53","type":"filepolicy","policyType":"BLOCK_MALWARE_ALL","name":"File_Policy_1","description":"Wiakeno ja barfowole aredu wutra loc fe soc cakdo se la agokim gevsirrog cagome.","version":"e0e81a67-2608-53e2-a015-f53dc3a9de10"},"logFiles":false,"type":"accessrule"},{"id":"236e3d95-aec5-5ecf-945e-9568f2a44ebd","version":"b448862c-debb-5000-a776-3dbdf7de8b69","ruleId":3,"name":"Access_Rule_3","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_BOTH","syslogServer":{"id":"2fcc57a5-0673-5296-ab42-0537f89225ca","version":"ac94fb6a-ecb6-5b74-9305-aa01e94d60fe","host":"66.33.32.162","port":5897,"protocol":"UDP","useManagementInterface":true,"type":"syslogserver"},"sourceZones":[{"id":"83e3721c-b23f-5eb1-b660-40655c216680","name":"SecurityZone9Name","description":"Iha kiuh ja iweacce tuh hajmipjuj fikufuv bofijwi esede tu gahak wenab belif lupilsif udo puzabke ferfa ofwon.","version":"17150a55-f982-526f-aa60-9e435d2c5455","interfaces":[{"mtu":5818,"enabled":true,"description":"Wabjenuv vuhtevguf zucce omiogu anitug cuho gaejma vesumob oduuro levhid uniozwej olkavcuv dawiim mehub wuka suj.","id":"3faf4981-2b04-5091-9c1f-fa0ab78379b4","hardwareName":"GigabitEthernet1/5","macAddress":"7472.5071.519E","monitorInterface":false,"standbyMacAddress":"5387.1EFE.E0E6","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"84c0:cd09:bceb:ce0c:5cfa:f535:d426:01db/32","ipAddress":"067a:e7f9:1bf0:6af4:b89b:4c11:ec0c:51b4/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"02eb:e82a:bb44:e0a0:d969:6055:6744:cfa2","ipAddress":"aa33:0271:1f23:9725:0d24:7767:0fd2:0cf8"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"6.124.202.116","standbyIpAddress":"40.108.171.23"}},"version":"472d2c22-e548-5cb1-983f-f81ee3e14422","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]},{"mtu":5818,"enabled":true,"description":"Dib wohomfa it firasugu joev ge nu dab caejuja ba no owezru rijbofnuv da ren.","name":"outside","id":"056580af-b7b5-5ea4-9434-84acde7b7b2b","hardwareName":"GigabitEthernet1/2","macAddress":"B807.AD9D.0E4C","monitorInterface":false,"standbyMacAddress":"8F66.A03C.5C85","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"398d:4979:fd8c:5c79:130d:af73:39ac:575b/32","ipAddress":"0e08:b1ea:5a22:75ba:8e01:eaed:3442:684c/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"264c:f9d4:85a8:fdee:b56d:4b03:96d7:6285","ipAddress":"d0f4:3235:0882:22a2:f8c8:c2db:683c:9639"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"178.90.249.165","standbyIpAddress":"41.101.191.177"}},"version":"53c69bde-efdf-5307-96bb-1d0c92bec9a5","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"PASSIVE","type":"physicalinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}},{"id":"f13918c2-287c-5026-b2d4-ae18cf69fd8c","name":"SecurityZone2Name","description":"Elaba havor do tifgovew di tobeep osiho gamalun ilokavo hosoc bavmep lo katzakcu we lekucazif jusifi baluhufa ivinu.","version":"f1cb8b72-77e1-524f-9ee0-07e3f6ffb563","interfaces":[{"mtu":5818,"enabled":true,"description":"Eh fiec wepauju fakigi fedep osgitewo wodrah ponkumido fis nozpuri ju geelo doh vipuopu vobuhalu piova bokadar.","id":"09d6217f-2741-5b6a-bd5c-91ca02f54e09","hardwareName":"GigabitEthernet1/6","macAddress":"3539.C649.1EF4","monitorInterface":false,"standbyMacAddress":"AAB5.9320.943C","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"e765:caaf:c971:52be:e7af:9357:6eab:2e59/32","ipAddress":"d168:a40a:b8df:9bc5:d38c:64df:a4fd:4110/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"76da:7d95:05ed:3ac9:4014:58d2:1e81:b4b2","ipAddress":"fdcf:ebe2:84c9:5892:94f3:b209:1cd6:d430"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"46.176.226.56","standbyIpAddress":"252.197.49.100"}},"version":"e18f92be-6c58-55a7-9dea-ccdefd79a44f","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]},{"mtu":5818,"enabled":false,"description":"Wi repiro sisig se wuglo zuzrog wivsel iboabamu wug sew figinfo pada koorcu wun akawobit cuholso wizpeos belidgew.","id":"c95c223c-b583-5d80-88a6-b1ac1b528e5e","hardwareName":"GigabitEthernet1/8","macAddress":"AD75.0711.BDF3","monitorInterface":false,"standbyMacAddress":"C7BE.0512.EDE1","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"4d6e:8d99:e5e9:8e08:03ed:ac78:12d9:1abc/32","ipAddress":"5b5a:9ba8:4d53:74f4:b2b9:b36b:2930:3030/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"919d:d8d6:cac4:18ed:5582:4d98:5afa:7f30","ipAddress":"9bfa:b940:f6b8:cd45:9eb6:d07e:09a6:b747"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"206.102.168.38","standbyIpAddress":"47.171.86.122"}},"version":"88bd96c5-891e-5b48-ab25-5091e3dfe377","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"destinationZones":[{"id":"95a6c824-af98-562a-8be6-adc2446c4a09","name":"SecurityZone4Name","description":"Hu nevsuzwiz lezjab hidlurus la pak relte kew umigo zo kopi jetjata.","version":"73028d64-6d1e-5a0a-9f3c-db515f246240","interfaces":[{"mtu":2652,"enabled":false,"description":"Zojin ohdahe kulgune acme eriocopus wubvi hulwic buscub daugeiw ekdegwa jijekub ko gijenog lokrogri tolev tiassi pejliuda.","name":"subinterface6name","id":"bf6765a2-9e9f-506d-a381-329a46273a43","hardwareName":"SubInterface0/6.7","macAddress":"35AF.6E50.0377","monitorInterface":true,"standbyMacAddress":"D947.0A8F.425F","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"7206:d020:f8c8:c150:b059:d35c:3824:c1ae/32","ipAddress":"be49:09fb:26ce:f506:0899:43c5:ce17:4143/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"080b:aa66:ca0d:4375:d7c7:8cbb:8978:46f0","ipAddress":"a226:34cd:63b0:a860:aa22:3304:05a5:a64f"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"96.51.91.99","standbyIpAddress":"231.94.58.66"}},"version":"68043109-6c4e-5a0f-8df0-d01122d3c319","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}}],"sourceNetworks":[{"id":"8dabc86d-1558-5a56-8c32-bc388b6a93f3","name":"Network13","description":"Dojba epfaw rew reltuzaw vaifjen wilida kepsu gadcukam rewog ojudu to siokwig jakel.","version":"81a1cfa9-9bdf-5ac8-98e5-299f203d4289","type":"networkobject","subType":"HOST","value":"b4f1:f88e:09b6:827b:d85f:dbf9:751b:dc45","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"25837b53-40d7-599f-9a1e-0a5391f2662e","name":"Network1","description":"Ser ahpi penul nuszil ojsuvo zavlatha junez afuhi soewuteh ha larhoose lijuto ruhi za murmurgu eznehfa nejag piv.","version":"0761c298-1c3c-5537-971c-17934322192b","type":"networkobject","subType":"HOST","value":"f92d:3cda:6fb3:7e4b:db95:8984:e616:928e","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"09d97c3e-0824-5e9d-bee8-28ea311458a5","name":"Geolocation4","description":"Detriwwot uwaan sa ta pohvab ako fi owe apefi ocde mok alcob.","version":"b599df3c-38d1-523e-9bc6-2d82e76d48ff","type":"geolocation","locations":[{"id":"18cbe485-d646-5aad-827e-13ec090dd450","name":"Europe","deprecated":false,"code":1005,"type":"continent","countries":[{"id":"a0d47a89-de9b-5f06-b5f2-b903320ecf26","name":"Kosovo","deprecated":true,"iso3":"XKX","iso2":"XK","code":"0","type":"country"},{"id":"0613c448-b6b0-55f9-9ab0-81470a794905","name":"Vatican City","deprecated":false,"iso3":"VAT","iso2":"VA","code":"336","type":"country"},{"id":"90c38868-27c0-5de2-a580-630b08b64406","name":"Ukraine","deprecated":false,"iso3":"UKR","iso2":"UA","code":"804","type":"country"},{"id":"e8b65d12-13e5-53b5-abe4-3c833e412440","name":"San Marino","deprecated":true,"iso3":"SMR","iso2":"SM","code":"674","type":"country"},{"id":"cbe10064-72a0-5b1a-813f-0d684567cb07","name":"Slovakia","deprecated":true,"iso3":"SVK","iso2":"SK","code":"703","type":"country"},{"id":"ce221115-d595-50d6-bd2f-fe0429b27b04","name":"Svalbard and Jan Mayen","deprecated":false,"iso3":"SJM","iso2":"SJ","code":"744","type":"country"},{"id":"9401a437-ee7e-51a8-bcc0-7623f8193dac","name":"Slovenia","deprecated":true,"iso3":"SVN","iso2":"SI","code":"705","type":"country"},{"id":"d4901422-c6fd-5ef4-bf4e-09d2074b34dc","name":"Sweden","deprecated":true,"iso3":"SWE","iso2":"SE","code":"752","type":"country"},{"id":"5f22f339-f1a0-5a70-9254-5dd0dad4d243","name":"Russia","deprecated":false,"iso3":"RUS","iso2":"RU","code":"643","type":"country"},{"id":"3a771763-9c5d-580f-9fc5-df41e7355def","name":"Serbia","deprecated":false,"iso3":"SRB","iso2":"RS","code":"688","type":"country"},{"id":"74759e4d-8901-5302-89b7-384fa438a9d2","name":"Romania","deprecated":true,"iso3":"ROU","iso2":"RO","code":"642","type":"country"},{"id":"58579a6d-8542-5c18-8ecb-4d54f527c8e5","name":"Portugal","deprecated":false,"iso3":"PRT","iso2":"PT","code":"620","type":"country"},{"id":"c095aa5d-350d-5db8-9d01-0a106f93c3a5","name":"Poland","deprecated":true,"iso3":"POL","iso2":"PL","code":"616","type":"country"},{"id":"02fa0428-9885-58ba-9fc1-9cc2cb30f0cb","name":"Norway","deprecated":true,"iso3":"NOR","iso2":"NO","code":"578","type":"country"},{"id":"39923980-c4f7-5dda-890c-ab8c290a5be5","name":"Netherlands","deprecated":false,"iso3":"NLD","iso2":"NL","code":"528","type":"country"},{"id":"aaad1a9f-fd04-5427-aea9-6a2216f61efe","name":"Malta","deprecated":false,"iso3":"MLT","iso2":"MT","code":"470","type":"country"},{"id":"ef8d2943-7ddf-57a6-8543-563cc13ebf4e","name":"Macedonia","deprecated":true,"iso3":"MKD","iso2":"MK","code":"807","type":"country"},{"id":"779cdf72-27d4-5e41-b81c-8ea5ef53f01a","name":"Montenegro","deprecated":false,"iso3":"MNE","iso2":"ME","code":"499","type":"country"},{"id":"8ecb3dd6-0cc2-5bac-b21d-83f1e3fbc848","name":"Moldova","deprecated":true,"iso3":"MDA","iso2":"MD","code":"498","type":"country"},{"id":"e0400095-a311-5b38-92e1-d635e6a1f938","name":"Monaco","deprecated":false,"iso3":"MCO","iso2":"MC","code":"492","type":"country"},{"id":"4e696592-960a-51d9-9078-985330e3feb1","name":"Latvia","deprecated":true,"iso3":"LVA","iso2":"LV","code":"428","type":"country"},{"id":"bb1fe9b8-9f49-56fe-9278-4cc73152f780","name":"Luxembourg","deprecated":true,"iso3":"LUX","iso2":"LU","code":"442","type":"country"},{"id":"76d4e398-d6e2-5f4f-ba11-d01a828f883d","name":"Lithuania","deprecated":true,"iso3":"LTU","iso2":"LT","code":"440","type":"country"},{"id":"059ecc8f-4828-5c94-a589-534028509f02","name":"Liechtenstein","deprecated":true,"iso3":"LIE","iso2":"LI","code":"438","type":"country"},{"id":"73f3b217-148d-5d48-a652-495178f5a046","name":"Jersey","deprecated":true,"iso3":"JEY","iso2":"JE","code":"832","type":"country"},{"id":"3e0ee5a1-a07b-52c0-b62c-a470c4269802","name":"Italy","deprecated":false,"iso3":"ITA","iso2":"IT","code":"380","type":"country"},{"id":"0a95f5f3-ed92-5adb-9e53-3a1d516b33f1","name":"Iceland","deprecated":true,"iso3":"ISL","iso2":"IS","code":"352","type":"country"},{"id":"968a378c-2885-5a3b-a0dc-160560765c7e","name":"Isle of Man","deprecated":true,"iso3":"IMN","iso2":"IM","code":"833","type":"country"},{"id":"cae04dab-514c-559a-94d5-b3930bcf5800","name":"Ireland","deprecated":false,"iso3":"IRL","iso2":"IE","code":"372","type":"country"},{"id":"bc5d918e-a2c8-508d-9a87-c990eeec6215","name":"Hungary","deprecated":true,"iso3":"HUN","iso2":"HU","code":"348","type":"country"},{"id":"4adcb40c-5d55-5860-97b6-ebac58830a04","name":"Croatia","deprecated":true,"iso3":"HRV","iso2":"HR","code":"191","type":"country"},{"id":"03330265-fe01-5435-899a-08042bc643b5","name":"Greece","deprecated":false,"iso3":"GRC","iso2":"GR","code":"300","type":"country"},{"id":"a3120da5-8f6f-5fdc-af6d-8ccac4e802b7","name":"Gibraltar","deprecated":true,"iso3":"GIB","iso2":"GI","code":"292","type":"country"},{"id":"7a31d958-157e-509d-bc9f-f52b45c85c6d","name":"Guernsey","deprecated":true,"iso3":"GGY","iso2":"GG","code":"831","type":"country"},{"id":"2fbb8b4c-cc35-5550-acef-bc53b5c0f0f4","name":"United Kingdom","deprecated":false,"iso3":"GBR","iso2":"GB","code":"826","type":"country"},{"id":"92e4bed7-5044-5b4f-8d3f-1239ff903965","name":"France","deprecated":true,"iso3":"FRA","iso2":"FR","code":"250","type":"country"},{"id":"5ee6b8ad-2c86-58d1-ac57-8db405e7dda8","name":"Faroe Islands","deprecated":true,"iso3":"FRO","iso2":"FO","code":"234","type":"country"},{"id":"a7a8cee7-9bad-5786-a874-6be00056cecd","name":"Finland","deprecated":true,"iso3":"FIN","iso2":"FI","code":"246","type":"country"},{"id":"1e9c9635-11bb-5544-8fab-27b6da86a545","name":"Spain","deprecated":true,"iso3":"ESP","iso2":"ES","code":"724","type":"country"},{"id":"355204ae-8c3e-5a96-8f23-3670fde3d26a","name":"Estonia","deprecated":true,"iso3":"EST","iso2":"EE","code":"233","type":"country"},{"id":"a7b4cd03-9dc0-572f-82ff-fef0153b4c8c","name":"Denmark","deprecated":true,"iso3":"DNK","iso2":"DK","code":"208","type":"country"},{"id":"004e74d4-cffc-599e-bd12-f4ac69a8a700","name":"Germany","deprecated":true,"iso3":"DEU","iso2":"DE","code":"276","type":"country"},{"id":"fbdea1d9-5ac4-53d0-be10-3220747421b8","name":"Czech Republic","deprecated":true,"iso3":"CZE","iso2":"CZ","code":"203","type":"country"},{"id":"d992dc09-5ab5-5126-a966-51dd89360213","name":"Cyprus","deprecated":false,"iso3":"CYP","iso2":"CY","code":"196","type":"country"},{"id":"eb716c3b-89e2-529c-a558-ca340a332486","name":"Switzerland","deprecated":true,"iso3":"CHE","iso2":"CH","code":"756","type":"country"},{"id":"089c406e-a4ff-52ae-9672-73a1bdf5a396","name":"Belarus","deprecated":true,"iso3":"BLR","iso2":"BY","code":"112","type":"country"},{"id":"3dfcd86f-2e29-59f7-9e44-27fe038c51a6","name":"Bulgaria","deprecated":false,"iso3":"BGR","iso2":"BG","code":"100","type":"country"},{"id":"8c299df7-5229-5596-963c-04cb2b46d34d","name":"Belgium","deprecated":true,"iso3":"BEL","iso2":"BE","code":"056","type":"country"},{"id":"fc99ebdb-5c82-5819-979d-d8f6310351af","name":"Bosnia and Herzegovina","deprecated":true,"iso3":"BIH","iso2":"BA","code":"070","type":"country"},{"id":"588e4f19-dfac-5134-98c1-c1cafee86399","name":"Åland","deprecated":false,"iso3":"ALA","iso2":"AX","code":"248","type":"country"},{"id":"67f08133-23b8-52ac-8436-41d77a2eebfb","name":"Austria","deprecated":false,"iso3":"AUT","iso2":"AT","code":"040","type":"country"},{"id":"28e90dfc-6bc0-556c-a014-d0dc49366442","name":"Albania","deprecated":true,"iso3":"ALB","iso2":"AL","code":"008","type":"country"}],"countryCodes":["0","336","804","674","703","744","705","752","643","688","642","620","616","578","528","470","807","499","498","492","428","442","440","438","832","380","352","833","372","348","191","300","292","831","826","250","234","246","724","233","208","276","203","196","756","112","100","056","070","248","040","008"]},{"id":"4343b55a-5fe8-567f-a099-f3d20b53a9cf","name":"Cook Islands","deprecated":true,"iso3":"COK","iso2":"CK","code":"184","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"},{"id":"c16f6991-a7d7-51dc-85d3-43752e0c5d10","name":"Suriname","deprecated":true,"iso3":"SUR","iso2":"SR","code":"740","type":"country"},{"id":"0b32f4f0-c8db-5011-ac99-73bfc4a31ecb","name":"Bonaire","deprecated":true,"iso3":"BES","iso2":"BQ","code":"535","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"}]}],"destinationNetworks":[{"id":"8dabc86d-1558-5a56-8c32-bc388b6a93f3","name":"Network13","description":"Dojba epfaw rew reltuzaw vaifjen wilida kepsu gadcukam rewog ojudu to siokwig jakel.","version":"81a1cfa9-9bdf-5ac8-98e5-299f203d4289","type":"networkobject","subType":"HOST","value":"b4f1:f88e:09b6:827b:d85f:dbf9:751b:dc45","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"25837b53-40d7-599f-9a1e-0a5391f2662e","name":"Network1","description":"Ser ahpi penul nuszil ojsuvo zavlatha junez afuhi soewuteh ha larhoose lijuto ruhi za murmurgu eznehfa nejag piv.","version":"0761c298-1c3c-5537-971c-17934322192b","type":"networkobject","subType":"HOST","value":"f92d:3cda:6fb3:7e4b:db95:8984:e616:928e","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"09d97c3e-0824-5e9d-bee8-28ea311458a5","name":"Geolocation4","description":"Detriwwot uwaan sa ta pohvab ako fi owe apefi ocde mok alcob.","version":"b599df3c-38d1-523e-9bc6-2d82e76d48ff","type":"geolocation","locations":[{"id":"18cbe485-d646-5aad-827e-13ec090dd450","name":"Europe","deprecated":false,"code":1005,"type":"continent","countries":[{"id":"a0d47a89-de9b-5f06-b5f2-b903320ecf26","name":"Kosovo","deprecated":true,"iso3":"XKX","iso2":"XK","code":"0","type":"country"},{"id":"0613c448-b6b0-55f9-9ab0-81470a794905","name":"Vatican City","deprecated":false,"iso3":"VAT","iso2":"VA","code":"336","type":"country"},{"id":"90c38868-27c0-5de2-a580-630b08b64406","name":"Ukraine","deprecated":false,"iso3":"UKR","iso2":"UA","code":"804","type":"country"},{"id":"e8b65d12-13e5-53b5-abe4-3c833e412440","name":"San Marino","deprecated":true,"iso3":"SMR","iso2":"SM","code":"674","type":"country"},{"id":"cbe10064-72a0-5b1a-813f-0d684567cb07","name":"Slovakia","deprecated":true,"iso3":"SVK","iso2":"SK","code":"703","type":"country"},{"id":"ce221115-d595-50d6-bd2f-fe0429b27b04","name":"Svalbard and Jan Mayen","deprecated":false,"iso3":"SJM","iso2":"SJ","code":"744","type":"country"},{"id":"9401a437-ee7e-51a8-bcc0-7623f8193dac","name":"Slovenia","deprecated":true,"iso3":"SVN","iso2":"SI","code":"705","type":"country"},{"id":"d4901422-c6fd-5ef4-bf4e-09d2074b34dc","name":"Sweden","deprecated":true,"iso3":"SWE","iso2":"SE","code":"752","type":"country"},{"id":"5f22f339-f1a0-5a70-9254-5dd0dad4d243","name":"Russia","deprecated":false,"iso3":"RUS","iso2":"RU","code":"643","type":"country"},{"id":"3a771763-9c5d-580f-9fc5-df41e7355def","name":"Serbia","deprecated":false,"iso3":"SRB","iso2":"RS","code":"688","type":"country"},{"id":"74759e4d-8901-5302-89b7-384fa438a9d2","name":"Romania","deprecated":true,"iso3":"ROU","iso2":"RO","code":"642","type":"country"},{"id":"58579a6d-8542-5c18-8ecb-4d54f527c8e5","name":"Portugal","deprecated":false,"iso3":"PRT","iso2":"PT","code":"620","type":"country"},{"id":"c095aa5d-350d-5db8-9d01-0a106f93c3a5","name":"Poland","deprecated":true,"iso3":"POL","iso2":"PL","code":"616","type":"country"},{"id":"02fa0428-9885-58ba-9fc1-9cc2cb30f0cb","name":"Norway","deprecated":true,"iso3":"NOR","iso2":"NO","code":"578","type":"country"},{"id":"39923980-c4f7-5dda-890c-ab8c290a5be5","name":"Netherlands","deprecated":false,"iso3":"NLD","iso2":"NL","code":"528","type":"country"},{"id":"aaad1a9f-fd04-5427-aea9-6a2216f61efe","name":"Malta","deprecated":false,"iso3":"MLT","iso2":"MT","code":"470","type":"country"},{"id":"ef8d2943-7ddf-57a6-8543-563cc13ebf4e","name":"Macedonia","deprecated":true,"iso3":"MKD","iso2":"MK","code":"807","type":"country"},{"id":"779cdf72-27d4-5e41-b81c-8ea5ef53f01a","name":"Montenegro","deprecated":false,"iso3":"MNE","iso2":"ME","code":"499","type":"country"},{"id":"8ecb3dd6-0cc2-5bac-b21d-83f1e3fbc848","name":"Moldova","deprecated":true,"iso3":"MDA","iso2":"MD","code":"498","type":"country"},{"id":"e0400095-a311-5b38-92e1-d635e6a1f938","name":"Monaco","deprecated":false,"iso3":"MCO","iso2":"MC","code":"492","type":"country"},{"id":"4e696592-960a-51d9-9078-985330e3feb1","name":"Latvia","deprecated":true,"iso3":"LVA","iso2":"LV","code":"428","type":"country"},{"id":"bb1fe9b8-9f49-56fe-9278-4cc73152f780","name":"Luxembourg","deprecated":true,"iso3":"LUX","iso2":"LU","code":"442","type":"country"},{"id":"76d4e398-d6e2-5f4f-ba11-d01a828f883d","name":"Lithuania","deprecated":true,"iso3":"LTU","iso2":"LT","code":"440","type":"country"},{"id":"059ecc8f-4828-5c94-a589-534028509f02","name":"Liechtenstein","deprecated":true,"iso3":"LIE","iso2":"LI","code":"438","type":"country"},{"id":"73f3b217-148d-5d48-a652-495178f5a046","name":"Jersey","deprecated":true,"iso3":"JEY","iso2":"JE","code":"832","type":"country"},{"id":"3e0ee5a1-a07b-52c0-b62c-a470c4269802","name":"Italy","deprecated":false,"iso3":"ITA","iso2":"IT","code":"380","type":"country"},{"id":"0a95f5f3-ed92-5adb-9e53-3a1d516b33f1","name":"Iceland","deprecated":true,"iso3":"ISL","iso2":"IS","code":"352","type":"country"},{"id":"968a378c-2885-5a3b-a0dc-160560765c7e","name":"Isle of Man","deprecated":true,"iso3":"IMN","iso2":"IM","code":"833","type":"country"},{"id":"cae04dab-514c-559a-94d5-b3930bcf5800","name":"Ireland","deprecated":false,"iso3":"IRL","iso2":"IE","code":"372","type":"country"},{"id":"bc5d918e-a2c8-508d-9a87-c990eeec6215","name":"Hungary","deprecated":true,"iso3":"HUN","iso2":"HU","code":"348","type":"country"},{"id":"4adcb40c-5d55-5860-97b6-ebac58830a04","name":"Croatia","deprecated":true,"iso3":"HRV","iso2":"HR","code":"191","type":"country"},{"id":"03330265-fe01-5435-899a-08042bc643b5","name":"Greece","deprecated":false,"iso3":"GRC","iso2":"GR","code":"300","type":"country"},{"id":"a3120da5-8f6f-5fdc-af6d-8ccac4e802b7","name":"Gibraltar","deprecated":true,"iso3":"GIB","iso2":"GI","code":"292","type":"country"},{"id":"7a31d958-157e-509d-bc9f-f52b45c85c6d","name":"Guernsey","deprecated":true,"iso3":"GGY","iso2":"GG","code":"831","type":"country"},{"id":"2fbb8b4c-cc35-5550-acef-bc53b5c0f0f4","name":"United Kingdom","deprecated":false,"iso3":"GBR","iso2":"GB","code":"826","type":"country"},{"id":"92e4bed7-5044-5b4f-8d3f-1239ff903965","name":"France","deprecated":true,"iso3":"FRA","iso2":"FR","code":"250","type":"country"},{"id":"5ee6b8ad-2c86-58d1-ac57-8db405e7dda8","name":"Faroe Islands","deprecated":true,"iso3":"FRO","iso2":"FO","code":"234","type":"country"},{"id":"a7a8cee7-9bad-5786-a874-6be00056cecd","name":"Finland","deprecated":true,"iso3":"FIN","iso2":"FI","code":"246","type":"country"},{"id":"1e9c9635-11bb-5544-8fab-27b6da86a545","name":"Spain","deprecated":true,"iso3":"ESP","iso2":"ES","code":"724","type":"country"},{"id":"355204ae-8c3e-5a96-8f23-3670fde3d26a","name":"Estonia","deprecated":true,"iso3":"EST","iso2":"EE","code":"233","type":"country"},{"id":"a7b4cd03-9dc0-572f-82ff-fef0153b4c8c","name":"Denmark","deprecated":true,"iso3":"DNK","iso2":"DK","code":"208","type":"country"},{"id":"004e74d4-cffc-599e-bd12-f4ac69a8a700","name":"Germany","deprecated":true,"iso3":"DEU","iso2":"DE","code":"276","type":"country"},{"id":"fbdea1d9-5ac4-53d0-be10-3220747421b8","name":"Czech Republic","deprecated":true,"iso3":"CZE","iso2":"CZ","code":"203","type":"country"},{"id":"d992dc09-5ab5-5126-a966-51dd89360213","name":"Cyprus","deprecated":false,"iso3":"CYP","iso2":"CY","code":"196","type":"country"},{"id":"eb716c3b-89e2-529c-a558-ca340a332486","name":"Switzerland","deprecated":true,"iso3":"CHE","iso2":"CH","code":"756","type":"country"},{"id":"089c406e-a4ff-52ae-9672-73a1bdf5a396","name":"Belarus","deprecated":true,"iso3":"BLR","iso2":"BY","code":"112","type":"country"},{"id":"3dfcd86f-2e29-59f7-9e44-27fe038c51a6","name":"Bulgaria","deprecated":false,"iso3":"BGR","iso2":"BG","code":"100","type":"country"},{"id":"8c299df7-5229-5596-963c-04cb2b46d34d","name":"Belgium","deprecated":true,"iso3":"BEL","iso2":"BE","code":"056","type":"country"},{"id":"fc99ebdb-5c82-5819-979d-d8f6310351af","name":"Bosnia and Herzegovina","deprecated":true,"iso3":"BIH","iso2":"BA","code":"070","type":"country"},{"id":"588e4f19-dfac-5134-98c1-c1cafee86399","name":"Åland","deprecated":false,"iso3":"ALA","iso2":"AX","code":"248","type":"country"},{"id":"67f08133-23b8-52ac-8436-41d77a2eebfb","name":"Austria","deprecated":false,"iso3":"AUT","iso2":"AT","code":"040","type":"country"},{"id":"28e90dfc-6bc0-556c-a014-d0dc49366442","name":"Albania","deprecated":true,"iso3":"ALB","iso2":"AL","code":"008","type":"country"}],"countryCodes":["0","336","804","674","703","744","705","752","643","688","642","620","616","578","528","470","807","499","498","492","428","442","440","438","832","380","352","833","372","348","191","300","292","831","826","250","234","246","724","233","208","276","203","196","756","112","100","056","070","248","040","008"]},{"id":"4343b55a-5fe8-567f-a099-f3d20b53a9cf","name":"Cook Islands","deprecated":true,"iso3":"COK","iso2":"CK","code":"184","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"},{"id":"c16f6991-a7d7-51dc-85d3-43752e0c5d10","name":"Suriname","deprecated":true,"iso3":"SUR","iso2":"SR","code":"740","type":"country"},{"id":"0b32f4f0-c8db-5011-ac99-73bfc4a31ecb","name":"Bonaire","deprecated":true,"iso3":"BES","iso2":"BQ","code":"535","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"}]}],"sourcePorts":[{"id":"ff728962-8729-5bce-941c-1730e280dc0b","name":"icmpv6port1","description":"Uh letiof numsu bokewod gosso sowdilid bevliur idseaho vu delale luctid ila givcogev.","version":"9aca9371-12d1-5490-af24-a87e3160146f","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8452,"isSystemDefined":false},{"id":"39c5e145-2ed4-5038-ab20-3c4878437d1d","name":"icmpv6port2","description":"Fajla geffe heseipu tez toluhpap ve uhmoba garoeb ozafuzli suhwof aw likofat erige hentejpi jajaza faztiav osece na.","version":"d4492bb3-d9b0-52fc-acc6-81061c83c6b8","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8267,"isSystemDefined":false}],"destinationPorts":[{"id":"5e4d4b4d-706c-5325-b034-896d42bf9087","name":"udp_port_1","description":"Rupkoedo zuv egodid ca buapesug tu mawaduh etaeha pigfa keh it bozute wovi zijuci poscuren ifohhe.","version":"db631abc-32a3-5ca5-8ae5-a3b6f3c8371a","type":"udpportobject","port":8537,"isSystemDefined":true},{"id":"34f7bed0-39b1-5064-a6e7-27b5431b2066","name":"udp_port_2","description":"Eji leklo infagziv wut vujapvug avvutu toduj dulnarse ifdo bipujhas ajo vualo efapomiw ge nepe gomhuh.","version":"5785591f-a79c-5ff4-bc82-b3dd6d70a236","type":"udpportobject","port":8830,"isSystemDefined":false}],"users":[{"id":"7145e63c-b952-5595-a3e0-b95cfd817553","name":"User 3","realmName":"owesizfani","type":"trafficuser","realmId":2,"version":"rilijzomu"},{"id":"ea44ade4-c7ca-5155-ba70-7cfb60c3c1f1","name":"User 7","realmName":"soewurisah","type":"trafficuser","realmId":2,"version":"itoucoilero"},{"id":"851b41dd-7739-51e9-b487-7363b8d6f24e","name":"User Group 11","realmName":"tuzosvukro","type":"trafficusergroup","realmId":2,"version":"ecetatilmiv"}],"embeddedAppFilter":{"conditions":[{"filter":"baketfale","tags":[{"id":"0b45de63-5252-5257-acf6-ce494cdb905a","version":"9c3ed423-1b8a-5f1f-aae0-a507cc188490","appId":6,"name":"ApplicationTag6","description":"Varejse ji ogouvu rin nubuten bezozmaj coeg zuralse pa zitomgon lu rigugip.","metadata":{"referenced":true},"type":"applicationtag"}],"categories":[{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"HIGH"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"VERY_LOW"},{"type":"productivitycondition","productivity":"MEDIUM"},{"type":"productivitycondition","productivity":"LOW"}],"type":"applicationfiltercondition"},{"filter":"muechicpoh","tags":[{"id":"7269266f-8413-59ef-9085-0de4aa64660b","version":"6eb7235a-74ab-5701-8a37-2522e325519d","appId":2,"name":"ApplicationTag2","description":"Zu wep pag palu mazu irowil rag bore ev ica miljov iwoog besjezew fi regevi ap vo.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"VERY_LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"},{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"4890f08c-7d08-5b84-93cc-7a4baa096ff1","version":"76998009-57e5-5be3-83ee-29ff93086a19","name":"ApplicationFilter2","description":"Uwudu elufur kikvusab gi zafur zerojtuc cefiz oti fonum wit pewivbu leuhi cen uri mibfozta jukmuw nafid.","applications":[{"id":"83c8e0e6-3707-5128-b7da-4659f67b76a0","version":"5072ae78-a326-5b92-8176-c0c8132922a8","description":"Bo dese su ja elumuf ane zusjo fiplois ewariju ihjup nunnihep kosaldic kuhfovu.","deprecated":false,"appId":4,"productivity":0,"risk":1,"name":"Application1","tagIds":["62bc5d56-7e60-5a71-a467-2c4f2a035a06"],"tags":[{"id":"62bc5d56-7e60-5a71-a467-2c4f2a035a06","version":"e7e0ebc9-3a9a-5342-91e9-ae0ce54b3444","appId":12,"name":"ApplicationTag12","description":"Bamiwaga bo kek wawinta ovepozgan tibutef je kezaluk zonwoz fovul aw ter nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["ea9b4aa3-c8a2-52f9-87ba-b33f1b452a42","2ad8b880-5783-5919-bda2-46e8316f2d70"],"categories":[{"id":"ea9b4aa3-c8a2-52f9-87ba-b33f1b452a42","version":"e289f52e-a078-5581-a775-4c8435a534f0","appId":3,"name":"ApplicationCategory7","description":"Ci sovo ig ivebcag gif uk eztez ezofi jizrebi lafozu ehje daj noiw vajru modpoteh juizu.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"2ad8b880-5783-5919-bda2-46e8316f2d70","version":"c19f7a96-7634-5d1b-972d-99caa3e34a64","appId":1,"name":"ApplicationCategory12","description":"Ev zalapi hiwuhi peror lupu iv obalem gicobem vi bafuh ponij co hur linsis fukurod dehpupme.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["SERVER","WEBAPP"],"metadata":{"referenced":false},"type":"application"},{"id":"6361bd7f-01c9-5714-baca-035d66f50a8c","version":"50dcdb47-5d21-537f-b3b0-81713bf31c06","description":"Leku luto lofuwec wuwguhot abmofdo cun vuunuvi lulsoteg kivsas mijmi ru kipumeja sacwuwhe gub magumera.","deprecated":false,"appId":5,"productivity":0,"risk":4,"name":"Application5","tagIds":["0b45de63-5252-5257-acf6-ce494cdb905a"],"tags":[{"id":"0b45de63-5252-5257-acf6-ce494cdb905a","version":"9c3ed423-1b8a-5f1f-aae0-a507cc188490","appId":6,"name":"ApplicationTag6","description":"Varejse ji ogouvu rin nubuten bezozmaj coeg zuralse pa zitomgon lu rigugip.","metadata":{"referenced":true},"type":"applicationtag"}],"categoryIds":["7f62abc6-7f08-5a69-acb6-65def01251d4","fff4b47c-a653-5729-a31a-e6353d420768"],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["SERVER","WEBAPP"],"metadata":{"referenced":true},"type":"application"}],"conditions":[{"filter":"jignorebes","tags":[{"id":"e9812b72-2a36-5146-bce0-b09f876df88d","version":"080dca18-c677-5dd1-8f2f-40555beb4fe4","appId":10,"name":"ApplicationTag10","description":"Viswilo ariuzaf pih wa mul vugavrip rijfon aba kac giicse wolifa cowudzuv vev iztafit.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"0928e8e9-25a4-53d0-b118-342a26b44100","version":"cccc44d5-b855-569b-90ad-b26d4e3e0c66","appId":7,"name":"ApplicationCategory8","description":"Mifzonu fokero acdu panvo cuvubde tovli maz cawag kaoj gosoojo falkof hezel sig ca vo wak.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"MEDIUM"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"},{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":true},"type":"applicationfilter"}],"applications":[{"id":"368e2c4f-cce1-574d-b5ee-ab9d539cf248","version":"3ecf8402-8607-5fdc-a148-f5abddf84f0a","description":"Apeja libsul uweb osjoti ge uzu fal gob woletkew be tu hah ha wuvekohuz gacaw.","deprecated":true,"appId":4,"productivity":1,"risk":0,"name":"Application14","tagIds":["9b16dd72-476a-5ac0-8aeb-fbf6e1f45438"],"tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["5f0662ef-3382-5357-bf35-b9b7361aae44"],"categories":[{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["WEBAPP","SERVER"],"metadata":{"referenced":false},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"4644bbc1-d476-565e-83ae-5a744000483c","version":"jaebrizdos","name":"UrlGroup8","description":"Mudacoc fapeus bimafi vectibep vib at bomecras moano ut wo vimkoc il lekeje os ekugiubi newtu.","objects":[{"id":"26cf0d0b-7575-594a-9c3b-9e17d5e24fbf","version":"sipugcocti","name":"Url6","description":"Etna gum cacu tin meehe hu cahfik kus supdeba irlohje hig rizhepzov vi togaofo los dujna her sipu.","url":"http://bejakuru.co.uk/ebkampaw","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlReputation":{"id":"23f0e43b-0957-554b-b0a4-555d8a444cfa","name":"High risk","index":5,"startPercentage":1,"endPercentage":20,"version":"67559ce6-d60d-5a76-9eef-b4d30401c5c8","type":"urlreputation"},"urlCategory":{"id":"798bf64f-6bf2-5cf4-a895-74670e51cfb2","version":"08eadcce-2a79-5212-9907-e3e7b7e8ae0e","name":"UrlCategory-6","deprecated":false,"urlCategoryId":6,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"intrusionPolicy":{"id":"a47cb8f5-fe55-11e4-8e99-ipsN20","name":"Balanced Security and Connectivity","links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN20"},"rules":{"links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN20/rules/"}},"description":"Balanced Security and Connectivity Layer","type":"intrusionpolicy","version":"d3d7a26f-ddb0-57fb-a9bf-772424bbdd0a"},"logFiles":false,"type":"accessrule"},{"id":"6ce54db3-425b-5d81-b2f3-43b2ef017f46","version":"67a177c0-0999-552f-aee1-80af64580654","ruleId":4,"name":"Access_Rule_4","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_NONE","sourceZones":[{"id":"ec43d6a8-fe32-5daa-a8bd-766b57a23892","name":"SecurityZone12Name","description":"Etzasus comdupo lu jeitlov zedoj no lidwa ka beni ujenapse lowon dil ami jir.","version":"3091782d-2bd2-57e7-8447-191d486665aa","interfaces":[{"mtu":5818,"enabled":true,"description":"Setta biwofega af ihi ebele inowo inagiobo nu it fe heivu lijivok.","name":"diagnostic","id":"f7509b61-168c-5d86-9a4c-8d3a2bb23e90","hardwareName":"Management0/0","macAddress":"249A.16A4.5DED","monitorInterface":true,"standbyMacAddress":"06D4.757D.FF06","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0c4e:e907:93c3:ba7a:7842:4899:f454:2a33/32","ipAddress":"41e0:3a60:0ca6:5f1c:cdd5:9c57:4918:682f/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d039:d6f4:278a:cdd3:b9e3:2711:460f:1555","ipAddress":"7e31:6d3f:5bbc:0d7f:4df6:58b9:26a6:d462"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"227.88.54.119","standbyIpAddress":"119.107.19.197"}},"version":"e50dac9e-5493-5760-b5e5-294741f3c409","managementInterface":true,"managementOnly":true,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}},{"id":"043ca75c-25c8-5d2f-9912-f174e3756077","name":"SecurityZone8Name","description":"Fo zihroc befjijwe vafel golwekjow hukohdi bo gitjap titsuabe cav fif mufdec unibit mubu idabehob ruthesusa.","version":"9f2207f2-63f0-5423-aa5c-6b7dc7d41cf3","interfaces":[{"mtu":2652,"enabled":true,"description":"Ta ikoure oznog tu hodul bizzo jimiite men cucif bewtujjof amurulev cuh igu fo siw dupziswul upahig roivipi.","name":"subinterface1name","id":"bdb62102-971e-5472-ab3b-22a7d408dc10","hardwareName":"SubInterface0/1.2","macAddress":"A57C.05DF.7FC0","monitorInterface":false,"standbyMacAddress":"4CE2.828C.AAB1","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"86a0:974f:3bf1:cee2:71c8:e295:2c3e:8d76/32","ipAddress":"9cb8:4589:0220:bd63:4d62:42ac:bd26:e1ac/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"7f67:fa11:adca:bd10:8583:757e:7ebb:be87","ipAddress":"4298:ffb2:30f7:84b6:5106:69aa:343c:8362"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"43.30.66.103","standbyIpAddress":"138.99.49.192"}},"version":"e04406e6-ff09-57ac-9b38-fdd8b19cf6fb","managementInterface":true,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}}],"destinationZones":[{"id":"7fa724f3-b64c-585b-9176-69aed2b36237","name":"SecurityZone1Name","description":"Do pefa ritapo ovauciku vogomougi utino gudo momna sagocbiw bowce awu muzabwoz zetpec kit fe.","version":"9d1d113e-86e0-5106-9f6c-29cc8e8fc7fb","interfaces":[{"mtu":5818,"enabled":true,"description":"Wonca cotfo biok ugfejbah ro itedere itoh pijazu ocozojgi buk facheuho zo.","id":"ef57753e-8a0c-5454-a3b3-fbc3c570851d","hardwareName":"GigabitEthernet1/3","macAddress":"34B5.AF3E.B9E9","monitorInterface":true,"standbyMacAddress":"4AF5.3F46.87FE","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"da83:da11:93ff:4f56:084e:f1c1:269c:0dd0/32","ipAddress":"831e:6e6b:281e:8b10:94d0:03f1:b4d5:3373/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"6a3f:c0b2:5d20:fdb6:945d:bcd1:a144:7558","ipAddress":"af4f:d5f4:67bb:3263:e183:fc6c:ea34:f2e6"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"204.8.215.52","standbyIpAddress":"108.106.112.194"}},"version":"46c1bc9f-9a0a-5425-8dc2-3a04dd84c3f1","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"sourceNetworks":[{"id":"0f1e5697-c424-59ac-87dd-bc36e3c08465","name":"Network10","description":"Gowvis opopijab joswirud jezow feud ikibik ruronub oh zoteso ilohhu wif wezagina mi dov riluj luffepcep safes zeksim.","version":"59a184bf-98ff-5f9a-a5c3-67542f91153d","type":"networkobject","subType":"NETWORK","value":"146.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"de4c912d-0f32-5730-92dd-e6ef7f12a099","name":"Network11","description":"Gisi kalej ih zum midogi gar vezsu reweh od sufmukce siici ki hepvevote ubu feva fabikdol.","version":"dc1b33e1-bb99-5727-85e6-6f30f624ffa2","type":"networkobject","subType":"HOST","value":"42.38.187.218","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"eb6bb0a1-cecb-55ba-8f96-9656ef090bfd","name":"Geolocation10","description":"Ziwe tukina pubki ifro winwo fo piog roswuife to ugouj zer dula haip ju.","version":"06ed679a-dbbb-5eb6-a535-ecc514c1a364","type":"geolocation","locations":[{"id":"c7eb60a1-be27-5963-87ac-0c756fe76124","name":"Oceania","deprecated":true,"code":1006,"type":"continent","countries":[{"id":"28993a70-0f71-51a6-bd15-75bbbe151d39","name":"Samoa","deprecated":true,"iso3":"WSM","iso2":"WS","code":"882","type":"country"},{"id":"91d14642-b0c8-57a5-b226-e39b80213360","name":"Wallis and Futuna","deprecated":true,"iso3":"WLF","iso2":"WF","code":"876","type":"country"},{"id":"1f8bd503-8b6b-53b7-91e8-b4f01a87f55d","name":"Vanuatu","deprecated":true,"iso3":"VUT","iso2":"VU","code":"548","type":"country"},{"id":"0822041a-9790-514e-84a5-229c82007d22","name":"U.S. Minor Outlying Islands","deprecated":true,"iso3":"UMI","iso2":"UM","code":"581","type":"country"},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"9442da73-6b47-5cab-8a0b-baa977ec390b","name":"Tonga","deprecated":true,"iso3":"TON","iso2":"TO","code":"776","type":"country"},{"id":"37cfb898-ea93-52c7-bb5e-05b5e6ff3710","name":"East Timor","deprecated":false,"iso3":"TLS","iso2":"TL","code":"626","type":"country"},{"id":"d4c50c5a-d2a1-527e-81d7-b76ab3722771","name":"Tokelau","deprecated":false,"iso3":"TKL","iso2":"TK","code":"772","type":"country"},{"id":"2b6643b8-6fcb-5315-b350-5817c1573ea4","name":"Solomon Islands","deprecated":true,"iso3":"SLB","iso2":"SB","code":"090","type":"country"},{"id":"10a85a47-2aa1-5729-aa4d-cb226f57c280","name":"Palau","deprecated":false,"iso3":"PLW","iso2":"PW","code":"585","type":"country"},{"id":"dd1d13f6-78f2-5a0f-b4ca-ca27972be314","name":"Pitcairn Islands","deprecated":true,"iso3":"PCN","iso2":"PN","code":"612","type":"country"},{"id":"122477fe-9b24-50ed-88db-64565b4cc950","name":"Papua New Guinea","deprecated":false,"iso3":"PNG","iso2":"PG","code":"598","type":"country"},{"id":"642a86d2-e785-5f88-83a1-6b9299dc0cdf","name":"French Polynesia","deprecated":false,"iso3":"PYF","iso2":"PF","code":"258","type":"country"},{"id":"f2d903e0-16b9-5f01-a3dc-854970d49544","name":"New Zealand","deprecated":true,"iso3":"NZL","iso2":"NZ","code":"554","type":"country"},{"id":"643a299d-d43d-5be0-b5eb-4b30867675b1","name":"Niue","deprecated":false,"iso3":"NIU","iso2":"NU","code":"570","type":"country"},{"id":"65295b82-c8fc-5b50-9e20-e8a1ea9c3439","name":"Nauru","deprecated":true,"iso3":"NRU","iso2":"NR","code":"520","type":"country"},{"id":"fe7bb7a6-4c20-526b-a28f-59c99ffb6c79","name":"Norfolk Island","deprecated":true,"iso3":"NFK","iso2":"NF","code":"574","type":"country"},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"6d4a7385-b2b6-578c-b825-f2bae24ad903","name":"Northern Mariana Islands","deprecated":true,"iso3":"MNP","iso2":"MP","code":"580","type":"country"},{"id":"b49ff744-593f-5d86-ac9a-58d2d4e8307e","name":"Marshall Islands","deprecated":true,"iso3":"MHL","iso2":"MH","code":"584","type":"country"},{"id":"ec318859-4ec8-56f2-a06c-f2d23e06516e","name":"Kiribati","deprecated":false,"iso3":"KIR","iso2":"KI","code":"296","type":"country"},{"id":"6fff8b89-01f2-59d9-9a39-bd5a8c525fc9","name":"Guam","deprecated":false,"iso3":"GUM","iso2":"GU","code":"316","type":"country"},{"id":"87ea1078-3291-54f4-85e1-f2d54f97a96d","name":"Micronesia","deprecated":false,"iso3":"FSM","iso2":"FM","code":"583","type":"country"},{"id":"c7a81f83-2cd9-501d-9645-ed4170667b48","name":"Fiji","deprecated":true,"iso3":"FJI","iso2":"FJ","code":"242","type":"country"},{"id":"4343b55a-5fe8-567f-a099-f3d20b53a9cf","name":"Cook Islands","deprecated":true,"iso3":"COK","iso2":"CK","code":"184","type":"country"},{"id":"147f040e-b349-5414-81d3-dae7700c7e81","name":"Australia","deprecated":true,"iso3":"AUS","iso2":"AU","code":"036","type":"country"},{"id":"f3f980b4-9a78-5ff2-b7e7-be91523e3783","name":"American Samoa","deprecated":true,"iso3":"ASM","iso2":"AS","code":"016","type":"country"}],"countryCodes":["882","876","548","581","798","776","626","772","090","585","612","598","258","554","570","520","574","540","580","584","296","316","583","242","184","036","016"]},{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"4adcb40c-5d55-5860-97b6-ebac58830a04","name":"Croatia","deprecated":true,"iso3":"HRV","iso2":"HR","code":"191","type":"country"},{"id":"3358686b-4139-5062-b3a1-e838d19918cf","name":"Heard Island and McDonald Islands","deprecated":true,"iso3":"HMD","iso2":"HM","code":"334","type":"country"},{"id":"e92d8edd-80b3-56dd-bf35-7423b7740c84","name":"Paraguay","deprecated":false,"iso3":"PRY","iso2":"PY","code":"600","type":"country"},{"id":"8701b229-f2cb-5873-9ad8-d4f15407cd99","name":"Panama","deprecated":true,"iso3":"PAN","iso2":"PA","code":"591","type":"country"},{"id":"9cbd51af-d825-56f1-b3c3-1412697fe6d8","name":"Ghana","deprecated":true,"iso3":"GHA","iso2":"GH","code":"288","type":"country"}]}],"destinationNetworks":[{"id":"0f1e5697-c424-59ac-87dd-bc36e3c08465","name":"Network10","description":"Gowvis opopijab joswirud jezow feud ikibik ruronub oh zoteso ilohhu wif wezagina mi dov riluj luffepcep safes zeksim.","version":"59a184bf-98ff-5f9a-a5c3-67542f91153d","type":"networkobject","subType":"NETWORK","value":"146.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"de4c912d-0f32-5730-92dd-e6ef7f12a099","name":"Network11","description":"Gisi kalej ih zum midogi gar vezsu reweh od sufmukce siici ki hepvevote ubu feva fabikdol.","version":"dc1b33e1-bb99-5727-85e6-6f30f624ffa2","type":"networkobject","subType":"HOST","value":"42.38.187.218","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"eb6bb0a1-cecb-55ba-8f96-9656ef090bfd","name":"Geolocation10","description":"Ziwe tukina pubki ifro winwo fo piog roswuife to ugouj zer dula haip ju.","version":"06ed679a-dbbb-5eb6-a535-ecc514c1a364","type":"geolocation","locations":[{"id":"c7eb60a1-be27-5963-87ac-0c756fe76124","name":"Oceania","deprecated":true,"code":1006,"type":"continent","countries":[{"id":"28993a70-0f71-51a6-bd15-75bbbe151d39","name":"Samoa","deprecated":true,"iso3":"WSM","iso2":"WS","code":"882","type":"country"},{"id":"91d14642-b0c8-57a5-b226-e39b80213360","name":"Wallis and Futuna","deprecated":true,"iso3":"WLF","iso2":"WF","code":"876","type":"country"},{"id":"1f8bd503-8b6b-53b7-91e8-b4f01a87f55d","name":"Vanuatu","deprecated":true,"iso3":"VUT","iso2":"VU","code":"548","type":"country"},{"id":"0822041a-9790-514e-84a5-229c82007d22","name":"U.S. Minor Outlying Islands","deprecated":true,"iso3":"UMI","iso2":"UM","code":"581","type":"country"},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"9442da73-6b47-5cab-8a0b-baa977ec390b","name":"Tonga","deprecated":true,"iso3":"TON","iso2":"TO","code":"776","type":"country"},{"id":"37cfb898-ea93-52c7-bb5e-05b5e6ff3710","name":"East Timor","deprecated":false,"iso3":"TLS","iso2":"TL","code":"626","type":"country"},{"id":"d4c50c5a-d2a1-527e-81d7-b76ab3722771","name":"Tokelau","deprecated":false,"iso3":"TKL","iso2":"TK","code":"772","type":"country"},{"id":"2b6643b8-6fcb-5315-b350-5817c1573ea4","name":"Solomon Islands","deprecated":true,"iso3":"SLB","iso2":"SB","code":"090","type":"country"},{"id":"10a85a47-2aa1-5729-aa4d-cb226f57c280","name":"Palau","deprecated":false,"iso3":"PLW","iso2":"PW","code":"585","type":"country"},{"id":"dd1d13f6-78f2-5a0f-b4ca-ca27972be314","name":"Pitcairn Islands","deprecated":true,"iso3":"PCN","iso2":"PN","code":"612","type":"country"},{"id":"122477fe-9b24-50ed-88db-64565b4cc950","name":"Papua New Guinea","deprecated":false,"iso3":"PNG","iso2":"PG","code":"598","type":"country"},{"id":"642a86d2-e785-5f88-83a1-6b9299dc0cdf","name":"French Polynesia","deprecated":false,"iso3":"PYF","iso2":"PF","code":"258","type":"country"},{"id":"f2d903e0-16b9-5f01-a3dc-854970d49544","name":"New Zealand","deprecated":true,"iso3":"NZL","iso2":"NZ","code":"554","type":"country"},{"id":"643a299d-d43d-5be0-b5eb-4b30867675b1","name":"Niue","deprecated":false,"iso3":"NIU","iso2":"NU","code":"570","type":"country"},{"id":"65295b82-c8fc-5b50-9e20-e8a1ea9c3439","name":"Nauru","deprecated":true,"iso3":"NRU","iso2":"NR","code":"520","type":"country"},{"id":"fe7bb7a6-4c20-526b-a28f-59c99ffb6c79","name":"Norfolk Island","deprecated":true,"iso3":"NFK","iso2":"NF","code":"574","type":"country"},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"6d4a7385-b2b6-578c-b825-f2bae24ad903","name":"Northern Mariana Islands","deprecated":true,"iso3":"MNP","iso2":"MP","code":"580","type":"country"},{"id":"b49ff744-593f-5d86-ac9a-58d2d4e8307e","name":"Marshall Islands","deprecated":true,"iso3":"MHL","iso2":"MH","code":"584","type":"country"},{"id":"ec318859-4ec8-56f2-a06c-f2d23e06516e","name":"Kiribati","deprecated":false,"iso3":"KIR","iso2":"KI","code":"296","type":"country"},{"id":"6fff8b89-01f2-59d9-9a39-bd5a8c525fc9","name":"Guam","deprecated":false,"iso3":"GUM","iso2":"GU","code":"316","type":"country"},{"id":"87ea1078-3291-54f4-85e1-f2d54f97a96d","name":"Micronesia","deprecated":false,"iso3":"FSM","iso2":"FM","code":"583","type":"country"},{"id":"c7a81f83-2cd9-501d-9645-ed4170667b48","name":"Fiji","deprecated":true,"iso3":"FJI","iso2":"FJ","code":"242","type":"country"},{"id":"4343b55a-5fe8-567f-a099-f3d20b53a9cf","name":"Cook Islands","deprecated":true,"iso3":"COK","iso2":"CK","code":"184","type":"country"},{"id":"147f040e-b349-5414-81d3-dae7700c7e81","name":"Australia","deprecated":true,"iso3":"AUS","iso2":"AU","code":"036","type":"country"},{"id":"f3f980b4-9a78-5ff2-b7e7-be91523e3783","name":"American Samoa","deprecated":true,"iso3":"ASM","iso2":"AS","code":"016","type":"country"}],"countryCodes":["882","876","548","581","798","776","626","772","090","585","612","598","258","554","570","520","574","540","580","584","296","316","583","242","184","036","016"]},{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"4adcb40c-5d55-5860-97b6-ebac58830a04","name":"Croatia","deprecated":true,"iso3":"HRV","iso2":"HR","code":"191","type":"country"},{"id":"3358686b-4139-5062-b3a1-e838d19918cf","name":"Heard Island and McDonald Islands","deprecated":true,"iso3":"HMD","iso2":"HM","code":"334","type":"country"},{"id":"e92d8edd-80b3-56dd-bf35-7423b7740c84","name":"Paraguay","deprecated":false,"iso3":"PRY","iso2":"PY","code":"600","type":"country"},{"id":"8701b229-f2cb-5873-9ad8-d4f15407cd99","name":"Panama","deprecated":true,"iso3":"PAN","iso2":"PA","code":"591","type":"country"},{"id":"9cbd51af-d825-56f1-b3c3-1412697fe6d8","name":"Ghana","deprecated":true,"iso3":"GHA","iso2":"GH","code":"288","type":"country"}]}],"sourcePorts":[{"id":"b19e16f9-5846-596a-9757-161e7154e68c","name":"tcp_port_1","description":"Ruwus webwepfa fo copoko aligimaj riz zeti bivsu jah ve virip kesnenwer fi wede magbuf ojku sadruh ji.","version":"a90e8fa8-216a-59a4-bce1-da2f92acd1ad","type":"tcpportobject","port":8721,"isSystemDefined":true},{"id":"34f7bed0-39b1-5064-a6e7-27b5431b2066","name":"udp_port_2","description":"Eji leklo infagziv wut vujapvug avvutu toduj dulnarse ifdo bipujhas ajo vualo efapomiw ge nepe gomhuh.","version":"5785591f-a79c-5ff4-bc82-b3dd6d70a236","type":"udpportobject","port":8830,"isSystemDefined":false}],"destinationPorts":[{"id":"5e4d4b4d-706c-5325-b034-896d42bf9087","name":"udp_port_1","description":"Rupkoedo zuv egodid ca buapesug tu mawaduh etaeha pigfa keh it bozute wovi zijuci poscuren ifohhe.","version":"db631abc-32a3-5ca5-8ae5-a3b6f3c8371a","type":"udpportobject","port":8537,"isSystemDefined":true},{"id":"d0ecb6d1-cc76-58fb-a392-4e9c9537be4c","name":"icmpv4port2","description":"Asci be jutgu wo susadagi woveven bafosjoc ceec wovukiv tati tepav gu za muhhudbi.","version":"54ed4735-cf04-5504-8a5a-2dd0bec3f5a9","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8251,"isSystemDefined":false}],"users":[{"id":"dd95afe8-437e-51ab-985a-c48929c0e3ba","name":"User 14","realmName":"ugaopezuepi","type":"trafficuser","realmId":2,"version":"esdafroce"},{"id":"56333652-27c4-5f8b-a6b4-d6f92023c62f","name":"User Group 27","realmName":"ecfomeov","type":"trafficusergroup","realmId":2,"version":"nemawpopew"},{"id":"17d2b0ac-fadf-5313-92e5-42fb1968a45b","name":"User Group 9","realmName":"mislebvaccop","type":"trafficusergroup","realmId":2,"version":"tokinedapu"}],"embeddedAppFilter":{"conditions":[{"filter":"mutilaje","tags":[{"id":"df3a88b5-3e3b-5024-9d9f-25d3262ce374","version":"b689fe7b-2b28-59fb-93cf-3995fe189cf1","appId":3,"name":"ApplicationTag15","description":"Ofihzaj hesa do dawo mipegil bilel liviip mub zahtavso rut nu zaj weuki dep suspufun ac rap.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"415702f2-3bd8-5dba-adea-dd03452067a5","version":"1062501a-214c-51d1-9af3-d9c2ca87588f","appId":4,"name":"ApplicationCategory11","description":"Dubofmih taj cukij fes vizoc urzip lazigeha pot bak jackoaz ufi ebomujme ce.","metadata":{"referenced":true},"type":"applicationcategory"},{"id":"3cd37a5a-b5c2-516a-8eb9-c5d87fcdb2a2","version":"76af8e96-44af-5285-a65a-172f138b8941","appId":3,"name":"ApplicationCategory10","description":"Taljooco pi wo cahorti fih heose wicueci emiwoube no iwozovban ip oho im uke wu ko noed.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"MEDIUM"}],"applicationTypes":[{"type":"typecondition","applicationType":"CLIENT"},{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"MEDIUM"},{"type":"productivitycondition","productivity":"LOW"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"},{"filter":"fapbalnezi","tags":[{"id":"6f8f8faa-179f-5da2-800c-387e6e2d142f","version":"2d72ebc6-6079-5398-8376-0abffab064ce","appId":7,"name":"ApplicationTag7","description":"Lu nil nubfaida lorig kacze rajlacve uboruzu zobjo opimawu zapaswo jed sihnob hecoj le neus gubwe pij lerwilkic.","metadata":{"referenced":true},"type":"applicationtag"},{"id":"9b266171-0bc7-5f71-aa6c-44b8cbafa329","version":"746ac683-b500-5781-b179-f61db662f8d3","appId":9,"name":"ApplicationTag9","description":"Ja lohivap wim saj zuw hinakug tiduze noemo azonimi ici kovaz ikuza wiihboz bubopmin la uge jeko.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"ea9b4aa3-c8a2-52f9-87ba-b33f1b452a42","version":"e289f52e-a078-5581-a775-4c8435a534f0","appId":3,"name":"ApplicationCategory7","description":"Ci sovo ig ivebcag gif uk eztez ezofi jizrebi lafozu ehje daj noiw vajru modpoteh juizu.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"CRITICAL"}],"applicationTypes":[{"type":"typecondition","applicationType":"CLIENT"}],"productivities":[{"type":"productivitycondition","productivity":"LOW"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"04564350-cd34-5336-b365-6eed136499fb","version":"5b3a3635-a45e-58a8-b08f-031c8b167c39","name":"ApplicationFilter5","description":"Dowvaj dudi lajzezwu huczoak migmeliw omu obcew ri mazaowo gawhal ba ek mamu.","applications":[{"id":"17b348f3-870c-5aa4-bcae-3bfe0f0d061d","version":"7b26e782-fe4b-5259-aa5f-744f5c3f1b22","description":"Tem ac li gagnefro folema no mo tafdis cew vudo wafop ru milis ubuedurur sufbot.","deprecated":true,"appId":2,"productivity":0,"risk":2,"name":"Application8","tagIds":["e9812b72-2a36-5146-bce0-b09f876df88d"],"tags":[{"id":"e9812b72-2a36-5146-bce0-b09f876df88d","version":"080dca18-c677-5dd1-8f2f-40555beb4fe4","appId":10,"name":"ApplicationTag10","description":"Viswilo ariuzaf pih wa mul vugavrip rijfon aba kac giicse wolifa cowudzuv vev iztafit.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["328094ea-7b95-58e5-a2de-09018514e679"],"categories":[{"id":"328094ea-7b95-58e5-a2de-09018514e679","version":"a9f6d6f5-e2ce-5a1b-8c7f-1a5ba3c375b4","appId":4,"name":"ApplicationCategory1","description":"Pilooru amavudek uhzidkah sieha duhni ikfo celrid az ocolu loplun buj nodlial do ahme henacava so ecevega wemtumacu.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["CLIENT","SERVER"],"metadata":{"referenced":true},"type":"application"}],"conditions":[{"filter":"uckupehot","tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"},{"type":"typecondition","applicationType":"CLIENT"}],"productivities":[{"type":"productivitycondition","productivity":"LOW"},{"type":"productivitycondition","productivity":"VERY_HIGH"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":true},"type":"applicationfilter"}],"applications":[{"id":"7cd12f14-70e7-51d8-abf1-af76ca735eef","version":"544ddfb1-dbc2-5901-aeaf-e76f489ff422","description":"Mata he jijto miaked lirki fuus ediupu rarengu ke iri escut gusotpi fa so piltef ob ocaguzuc zi.","deprecated":true,"appId":7,"productivity":3,"risk":4,"name":"Application9","tagIds":["aad0af81-b4ad-5a4a-a395-d88fc2abb8c4"],"tags":[{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["fff4b47c-a653-5729-a31a-e6353d420768","24cd3c21-8c19-531f-81d5-08aca7b587b9"],"categories":[{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"24cd3c21-8c19-531f-81d5-08aca7b587b9","version":"b18c67e8-0f51-5f2c-88a2-11994eea44b1","appId":5,"name":"ApplicationCategory5","description":"Camweg wevovic diowu fi vo kacag vibumjih lus bowi ewatige epewa ecifoder mu gopeges.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["SERVER","WEBAPP"],"metadata":{"referenced":true},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"ce7eba4c-0b9a-5a3f-bb88-6ce71398fbc8","version":"epozikeccow","name":"UrlGroup1","description":"Kajili nockugda van cikepuh toavah kebpi muwnumo tezotu pelapdec sif fepgo hul sacwav na.","objects":[{"id":"d31c2d0e-3ad0-5053-9a7b-a0ef29eff5f9","version":"ajolouhog","name":"Url8","description":"Kirgirac rireto vu nimu kek bo dosoze tillen wisud kerecfar evibur wen cehpa weg ju doneh.","url":"http://de.co.uk/neni","type":"urlobject"},{"id":"d72bd5cf-710c-5048-b0fa-1bda6746520d","version":"onaisujuja","name":"Url3","description":"Nolze no gavrofkep dog di buc ta oko kon pigu fuezo uzara.","url":"http://gagonofi.edu/letiga","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlCategory":{"id":"a7bc6deb-1544-59dd-b3c9-f0ff4f94d9aa","version":"46f1e31b-7fee-54bc-a10f-54e97745d47f","name":"UrlCategory-15","deprecated":false,"urlCategoryId":15,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"intrusionPolicy":{"id":"a47cb8f5-fe55-11e4-8e99-ipsN30","name":"Security Over Connectivity","links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN30"},"rules":{"links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN30/rules/"}},"description":"Security Over Connectivity Layer","type":"intrusionpolicy","version":"fc826c33-84fb-5b14-96e5-0cdd4717c442"},"filePolicy":{"id":"9c84889f-8c5c-5643-a489-d01bb07639a5","type":"filepolicy","policyType":"BLOCK_OFFICE_DOCUMENTS_PDF_UPLOAD_BLOCK_MALWARE_OTHERS","name":"File_Policy_3","description":"Mi rul etusisti iphogu acrevdid cas bijcaz nul ceaf napi kegpo su dozpov zikpul lohi gurukdi ke.","version":"d5e7c6d4-1f13-5cd2-9442-bdccd7e4b804"},"logFiles":false,"type":"accessrule"},{"id":"8f0b43ad-3d0f-5b9c-8dbc-b762be9f825e","version":"02031ee7-28b4-5921-976e-cec08e30756b","ruleId":5,"name":"Access_Rule_5","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_BOTH","syslogServer":{"id":"b7731ecd-011b-5f95-90b4-72b024a040d9","version":"8287a57f-56d1-51e9-83f1-361ad172f158","host":"28.235.174.9","port":5897,"deviceInterface":{"mtu":5818,"enabled":true,"description":"Setta biwofega af ihi ebele inowo inagiobo nu it fe heivu lijivok.","name":"diagnostic","id":"f7509b61-168c-5d86-9a4c-8d3a2bb23e90","hardwareName":"Management0/0","macAddress":"249A.16A4.5DED","monitorInterface":true,"standbyMacAddress":"06D4.757D.FF06","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0c4e:e907:93c3:ba7a:7842:4899:f454:2a33/32","ipAddress":"41e0:3a60:0ca6:5f1c:cdd5:9c57:4918:682f/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d039:d6f4:278a:cdd3:b9e3:2711:460f:1555","ipAddress":"7e31:6d3f:5bbc:0d7f:4df6:58b9:26a6:d462"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"227.88.54.119","standbyIpAddress":"119.107.19.197"}},"version":"e50dac9e-5493-5760-b5e5-294741f3c409","managementInterface":true,"managementOnly":true,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"},"protocol":"UDP","useManagementInterface":false,"type":"syslogserver"},"sourceZones":[{"id":"83e3721c-b23f-5eb1-b660-40655c216680","name":"SecurityZone9Name","description":"Iha kiuh ja iweacce tuh hajmipjuj fikufuv bofijwi esede tu gahak wenab belif lupilsif udo puzabke ferfa ofwon.","version":"17150a55-f982-526f-aa60-9e435d2c5455","interfaces":[{"mtu":5818,"enabled":true,"description":"Wabjenuv vuhtevguf zucce omiogu anitug cuho gaejma vesumob oduuro levhid uniozwej olkavcuv dawiim mehub wuka suj.","id":"3faf4981-2b04-5091-9c1f-fa0ab78379b4","hardwareName":"GigabitEthernet1/5","macAddress":"7472.5071.519E","monitorInterface":false,"standbyMacAddress":"5387.1EFE.E0E6","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"84c0:cd09:bceb:ce0c:5cfa:f535:d426:01db/32","ipAddress":"067a:e7f9:1bf0:6af4:b89b:4c11:ec0c:51b4/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"02eb:e82a:bb44:e0a0:d969:6055:6744:cfa2","ipAddress":"aa33:0271:1f23:9725:0d24:7767:0fd2:0cf8"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"6.124.202.116","standbyIpAddress":"40.108.171.23"}},"version":"472d2c22-e548-5cb1-983f-f81ee3e14422","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]},{"mtu":5818,"enabled":true,"description":"Dib wohomfa it firasugu joev ge nu dab caejuja ba no owezru rijbofnuv da ren.","name":"outside","id":"056580af-b7b5-5ea4-9434-84acde7b7b2b","hardwareName":"GigabitEthernet1/2","macAddress":"B807.AD9D.0E4C","monitorInterface":false,"standbyMacAddress":"8F66.A03C.5C85","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"398d:4979:fd8c:5c79:130d:af73:39ac:575b/32","ipAddress":"0e08:b1ea:5a22:75ba:8e01:eaed:3442:684c/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"264c:f9d4:85a8:fdee:b56d:4b03:96d7:6285","ipAddress":"d0f4:3235:0882:22a2:f8c8:c2db:683c:9639"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"178.90.249.165","standbyIpAddress":"41.101.191.177"}},"version":"53c69bde-efdf-5307-96bb-1d0c92bec9a5","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"PASSIVE","type":"physicalinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}},{"id":"e960df5e-1ab8-5a15-85e5-a7a47f0ebcb0","name":"SecurityZone5Name","description":"Kinen aziheeci teniow ucezaw idikaki rupbu tieb rawihzec ufkedok iwewun le zihpisze vuzip roetjim fokbuwu jemrumvu cigzet.","version":"0925128c-48f1-552e-8507-379551253d9c","interfaces":[{"mtu":2652,"enabled":true,"description":"Hi vihjuup vueji zufmab wib zel woz ligok wu hi iremouto wahoato.","name":"subinterface5name","id":"9f816351-560c-5e5b-ba0a-2051828301e6","hardwareName":"SubInterface0/5.6","macAddress":"84F0.8C6A.D6DF","monitorInterface":true,"standbyMacAddress":"0971.695D.7024","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"e20a:2b14:aecc:7997:984d:9fcd:b3c4:2e66/32","ipAddress":"5753:596d:3c86:ab69:1e26:fa83:c032:8e71/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"44d8:5ccd:bbcd:60df:d35b:afb7:6211:375b","ipAddress":"7b7c:0b52:9938:5274:ef02:b8c5:577c:5028"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"119.148.92.111","standbyIpAddress":"106.21.74.31"}},"version":"7a7c4c69-3da2-5e43-a1f3-2f8026bfb0bd","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"destinationZones":[{"id":"aff2c9fc-0b0e-58f4-b418-5ccd970fd67f","name":"SecurityZone11Name","description":"Nued mos di majri nih ebhebe desalu ivif novrove razjihew kepfa okforec lajatet sifu fa.","version":"d334e386-a53c-5345-9181-d20421a28e34","interfaces":[{"mtu":5818,"enabled":true,"description":"Ke vuhdojos zudgopa seto bere refcengo he camohpik pir risvup pum omhos zalpe sukjo rufe.","id":"2cf6e4b9-0bf0-5d7d-9110-6ab397d400a4","hardwareName":"GigabitEthernet1/4","macAddress":"0ABE.1A2F.DC3A","monitorInterface":false,"standbyMacAddress":"6057.AC6B.C47F","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"6d9d:2a5c:831a:6482:0268:e3fe:244e:1c1c/32","ipAddress":"c4fb:ea12:d0f3:42e4:10ed:e3f4:8e5a:6c9a/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"77f1:3852:307c:1449:a914:b786:3831:5ed1","ipAddress":"9eee:0707:2706:edd3:22f1:30d5:52f1:39fb"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"51.99.206.42","standbyIpAddress":"138.81.67.160"}},"version":"365fb3c7-62eb-5a7d-a412-b1cb7a387375","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"sourceNetworks":[{"id":"00826312-17b2-5b1e-968a-aabe114f0734","name":"Network6","description":"Je anah sankorir zaduv noscipan ron pi dubsanuf motnod ugufu zacew idu wafsembuc lo roge almoh lah.","version":"59e9909f-27d5-5e47-8d77-210909065352","type":"networkobject","subType":"NETWORK","value":"234.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"4e22d897-4214-5a59-adc0-a40ee1363e10","name":"Network5","description":"Kug viuheci tiwihu iberaw rolo januke huwefi jik labam lurepi be nioc ikime.","version":"880073f6-ecc1-5e1e-a50e-625fb47bbcf9","type":"networkobject","subType":"HOST","value":"51ef:0dda:2b5c:2260:6fc7:e9c3:7507:80fe","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"6fd7b2ed-8cb5-5f6d-9484-1eb947d9d21d","name":"Geolocation2","description":"Hu ewecorek laknueto mene nacudule pa can bevuniv ajhidzug daw murpeuza nafkoz oga.","version":"12c26d86-219a-59fd-85fb-aaf5939a4e66","type":"geolocation","locations":[{"id":"8d0b6206-9550-54d8-9ec8-3ffa76cf5aa1","name":"South America","deprecated":true,"code":1003,"type":"continent","countries":[{"id":"f15f76ba-d150-5ed1-8d49-329860b8a4c2","name":"Venezuela","deprecated":false,"iso3":"VEN","iso2":"VE","code":"862","type":"country"},{"id":"a05f1e97-1b5e-5f45-b53a-373f28de0edc","name":"Uruguay","deprecated":false,"iso3":"URY","iso2":"UY","code":"858","type":"country"},{"id":"c16f6991-a7d7-51dc-85d3-43752e0c5d10","name":"Suriname","deprecated":true,"iso3":"SUR","iso2":"SR","code":"740","type":"country"},{"id":"e92d8edd-80b3-56dd-bf35-7423b7740c84","name":"Paraguay","deprecated":false,"iso3":"PRY","iso2":"PY","code":"600","type":"country"},{"id":"465abc15-6361-5901-99d0-014fd0a8fb59","name":"Peru","deprecated":false,"iso3":"PER","iso2":"PE","code":"604","type":"country"},{"id":"28b8a9fc-2a6a-5fd0-ba10-e3607052f0d1","name":"Guyana","deprecated":false,"iso3":"GUY","iso2":"GY","code":"328","type":"country"},{"id":"f21ae5ba-5139-5bc5-9b7c-6607bf1064c0","name":"French Guiana","deprecated":false,"iso3":"GUF","iso2":"GF","code":"254","type":"country"},{"id":"9c4fc5b1-9569-52be-a502-a076da629c1a","name":"Falkland Islands","deprecated":false,"iso3":"FLK","iso2":"FK","code":"238","type":"country"},{"id":"90518b4d-6bb9-52e6-abd1-d2f35624ff20","name":"Ecuador","deprecated":true,"iso3":"ECU","iso2":"EC","code":"218","type":"country"},{"id":"1bb5225e-e880-5bc6-b4b5-373e05ab4ebf","name":"Colombia","deprecated":false,"iso3":"COL","iso2":"CO","code":"170","type":"country"},{"id":"c73e21a5-7336-58ba-9d53-a3d2eb1e1fdd","name":"Chile","deprecated":true,"iso3":"CHL","iso2":"CL","code":"152","type":"country"},{"id":"df4f3356-7c77-5629-8a0c-7ed0e899c303","name":"Brazil","deprecated":false,"iso3":"BRA","iso2":"BR","code":"076","type":"country"},{"id":"8b0d595a-61a0-508f-bacd-264ee85755cf","name":"Bolivia","deprecated":false,"iso3":"BOL","iso2":"BO","code":"068","type":"country"},{"id":"1adcc1e8-564f-5b54-a236-fc72bae227b9","name":"Argentina","deprecated":false,"iso3":"ARG","iso2":"AR","code":"032","type":"country"}],"countryCodes":["862","858","740","600","604","328","254","238","218","170","152","076","068","032"]},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"a7b4cd03-9dc0-572f-82ff-fef0153b4c8c","name":"Denmark","deprecated":true,"iso3":"DNK","iso2":"DK","code":"208","type":"country"},{"id":"ba4897cd-087a-5292-b1be-d3a00a7f26bb","name":"South Georgia and the South Sandwich Islands","deprecated":true,"iso3":"SGS","iso2":"GS","code":"239","type":"country"},{"id":"76d9fd77-8fb0-5b69-a7b9-5ceae0c32261","name":"Sint Maarten","deprecated":false,"iso3":"SXM","iso2":"SX","code":"534","type":"country"},{"id":"b4bd346d-94ee-5893-8439-83dcc230d37e","name":"Burkina Faso","deprecated":false,"iso3":"BFA","iso2":"BF","code":"854","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"}]}],"destinationNetworks":[{"id":"00826312-17b2-5b1e-968a-aabe114f0734","name":"Network6","description":"Je anah sankorir zaduv noscipan ron pi dubsanuf motnod ugufu zacew idu wafsembuc lo roge almoh lah.","version":"59e9909f-27d5-5e47-8d77-210909065352","type":"networkobject","subType":"NETWORK","value":"234.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"4e22d897-4214-5a59-adc0-a40ee1363e10","name":"Network5","description":"Kug viuheci tiwihu iberaw rolo januke huwefi jik labam lurepi be nioc ikime.","version":"880073f6-ecc1-5e1e-a50e-625fb47bbcf9","type":"networkobject","subType":"HOST","value":"51ef:0dda:2b5c:2260:6fc7:e9c3:7507:80fe","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"6fd7b2ed-8cb5-5f6d-9484-1eb947d9d21d","name":"Geolocation2","description":"Hu ewecorek laknueto mene nacudule pa can bevuniv ajhidzug daw murpeuza nafkoz oga.","version":"12c26d86-219a-59fd-85fb-aaf5939a4e66","type":"geolocation","locations":[{"id":"8d0b6206-9550-54d8-9ec8-3ffa76cf5aa1","name":"South America","deprecated":true,"code":1003,"type":"continent","countries":[{"id":"f15f76ba-d150-5ed1-8d49-329860b8a4c2","name":"Venezuela","deprecated":false,"iso3":"VEN","iso2":"VE","code":"862","type":"country"},{"id":"a05f1e97-1b5e-5f45-b53a-373f28de0edc","name":"Uruguay","deprecated":false,"iso3":"URY","iso2":"UY","code":"858","type":"country"},{"id":"c16f6991-a7d7-51dc-85d3-43752e0c5d10","name":"Suriname","deprecated":true,"iso3":"SUR","iso2":"SR","code":"740","type":"country"},{"id":"e92d8edd-80b3-56dd-bf35-7423b7740c84","name":"Paraguay","deprecated":false,"iso3":"PRY","iso2":"PY","code":"600","type":"country"},{"id":"465abc15-6361-5901-99d0-014fd0a8fb59","name":"Peru","deprecated":false,"iso3":"PER","iso2":"PE","code":"604","type":"country"},{"id":"28b8a9fc-2a6a-5fd0-ba10-e3607052f0d1","name":"Guyana","deprecated":false,"iso3":"GUY","iso2":"GY","code":"328","type":"country"},{"id":"f21ae5ba-5139-5bc5-9b7c-6607bf1064c0","name":"French Guiana","deprecated":false,"iso3":"GUF","iso2":"GF","code":"254","type":"country"},{"id":"9c4fc5b1-9569-52be-a502-a076da629c1a","name":"Falkland Islands","deprecated":false,"iso3":"FLK","iso2":"FK","code":"238","type":"country"},{"id":"90518b4d-6bb9-52e6-abd1-d2f35624ff20","name":"Ecuador","deprecated":true,"iso3":"ECU","iso2":"EC","code":"218","type":"country"},{"id":"1bb5225e-e880-5bc6-b4b5-373e05ab4ebf","name":"Colombia","deprecated":false,"iso3":"COL","iso2":"CO","code":"170","type":"country"},{"id":"c73e21a5-7336-58ba-9d53-a3d2eb1e1fdd","name":"Chile","deprecated":true,"iso3":"CHL","iso2":"CL","code":"152","type":"country"},{"id":"df4f3356-7c77-5629-8a0c-7ed0e899c303","name":"Brazil","deprecated":false,"iso3":"BRA","iso2":"BR","code":"076","type":"country"},{"id":"8b0d595a-61a0-508f-bacd-264ee85755cf","name":"Bolivia","deprecated":false,"iso3":"BOL","iso2":"BO","code":"068","type":"country"},{"id":"1adcc1e8-564f-5b54-a236-fc72bae227b9","name":"Argentina","deprecated":false,"iso3":"ARG","iso2":"AR","code":"032","type":"country"}],"countryCodes":["862","858","740","600","604","328","254","238","218","170","152","076","068","032"]},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"a7b4cd03-9dc0-572f-82ff-fef0153b4c8c","name":"Denmark","deprecated":true,"iso3":"DNK","iso2":"DK","code":"208","type":"country"},{"id":"ba4897cd-087a-5292-b1be-d3a00a7f26bb","name":"South Georgia and the South Sandwich Islands","deprecated":true,"iso3":"SGS","iso2":"GS","code":"239","type":"country"},{"id":"76d9fd77-8fb0-5b69-a7b9-5ceae0c32261","name":"Sint Maarten","deprecated":false,"iso3":"SXM","iso2":"SX","code":"534","type":"country"},{"id":"b4bd346d-94ee-5893-8439-83dcc230d37e","name":"Burkina Faso","deprecated":false,"iso3":"BFA","iso2":"BF","code":"854","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"}]}],"sourcePorts":[{"id":"d0ecb6d1-cc76-58fb-a392-4e9c9537be4c","name":"icmpv4port2","description":"Asci be jutgu wo susadagi woveven bafosjoc ceec wovukiv tati tepav gu za muhhudbi.","version":"54ed4735-cf04-5504-8a5a-2dd0bec3f5a9","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8251,"isSystemDefined":false},{"id":"2a40730e-7878-5969-ba53-1d9278cde125","name":"icmpv4port1","description":"Uva ceti behga hetivasu ajbebu rakepe ame ifa aceuriso kejic fucaoti gigvivvo gishelpob jurevmu ov maclefe.","version":"e62c0f51-027e-5a7f-b725-a96162bb7138","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8508,"isSystemDefined":false}],"destinationPorts":[{"id":"34f7bed0-39b1-5064-a6e7-27b5431b2066","name":"udp_port_2","description":"Eji leklo infagziv wut vujapvug avvutu toduj dulnarse ifdo bipujhas ajo vualo efapomiw ge nepe gomhuh.","version":"5785591f-a79c-5ff4-bc82-b3dd6d70a236","type":"udpportobject","port":8830,"isSystemDefined":false},{"id":"5e4d4b4d-706c-5325-b034-896d42bf9087","name":"udp_port_1","description":"Rupkoedo zuv egodid ca buapesug tu mawaduh etaeha pigfa keh it bozute wovi zijuci poscuren ifohhe.","version":"db631abc-32a3-5ca5-8ae5-a3b6f3c8371a","type":"udpportobject","port":8537,"isSystemDefined":true}],"users":[{"id":"592d1c85-3853-5f5e-9906-809b844eb360","name":"User 8","realmName":"holwifibej","type":"trafficuser","realmId":2,"version":"hasrekajmip"},{"id":"a2c00f6f-91fe-5ac0-95e8-20349cbb25c4","name":"User Group 14","realmName":"pusojegme","type":"trafficusergroup","realmId":2,"version":"hesakokela"},{"id":"c7bfb8cc-f499-514e-899b-1f640e4e0a7b","name":"User 5","realmName":"giussozom","type":"trafficuser","realmId":2,"version":"upirakuceere"}],"embeddedAppFilter":{"conditions":[{"filter":"loweteziwno","tags":[{"id":"11d43e11-683f-5ec2-89c6-6b4e9a8c756d","version":"13924388-a6d9-5f80-8b3b-825736afd2bc","appId":13,"name":"ApplicationTag13","description":"Fiwjag safe jujohmi lipa gucpi la tocgomkap fozensir jafuhi vutbinij jov lifo ciduwno fuzegvef consibe hope.","metadata":{"referenced":true},"type":"applicationtag"}],"categories":[{"id":"24cd3c21-8c19-531f-81d5-08aca7b587b9","version":"b18c67e8-0f51-5f2c-88a2-11994eea44b1","appId":5,"name":"ApplicationCategory5","description":"Camweg wevovic diowu fi vo kacag vibumjih lus bowi ewatige epewa ecifoder mu gopeges.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"3cd37a5a-b5c2-516a-8eb9-c5d87fcdb2a2","version":"76af8e96-44af-5285-a65a-172f138b8941","appId":3,"name":"ApplicationCategory10","description":"Taljooco pi wo cahorti fih heose wicueci emiwoube no iwozovban ip oho im uke wu ko noed.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"VERY_HIGH"}],"type":"applicationfiltercondition"},{"filter":"giasnovpe","tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"794d6605-f5d9-5f26-b11d-507eac471889","version":"20176f07-7d98-5dd7-8a17-de688ee66220","appId":1,"name":"ApplicationCategory3","description":"Woc ved ecu hin potalbib la uweerabof mato dewahmo avutji wose pujda tunoduz ucu ho zopusno lo mu.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"VERY_LOW"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"},{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"7112acbb-aa34-52fb-bdf3-7b4d5cd2f3dc","version":"7bd54520-ef34-515e-bb4b-187f47dcf73a","name":"ApplicationFilter10","description":"Pif duh umocho lagu ucihawer omu vap vuh keihofe did al awalos uzecow hizridu iwtuw.","applications":[{"id":"6361bd7f-01c9-5714-baca-035d66f50a8c","version":"50dcdb47-5d21-537f-b3b0-81713bf31c06","description":"Leku luto lofuwec wuwguhot abmofdo cun vuunuvi lulsoteg kivsas mijmi ru kipumeja sacwuwhe gub magumera.","deprecated":false,"appId":5,"productivity":0,"risk":4,"name":"Application5","tagIds":["0b45de63-5252-5257-acf6-ce494cdb905a"],"tags":[{"id":"0b45de63-5252-5257-acf6-ce494cdb905a","version":"9c3ed423-1b8a-5f1f-aae0-a507cc188490","appId":6,"name":"ApplicationTag6","description":"Varejse ji ogouvu rin nubuten bezozmaj coeg zuralse pa zitomgon lu rigugip.","metadata":{"referenced":true},"type":"applicationtag"}],"categoryIds":["7f62abc6-7f08-5a69-acb6-65def01251d4","fff4b47c-a653-5729-a31a-e6353d420768"],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["SERVER","WEBAPP"],"metadata":{"referenced":true},"type":"application"}],"conditions":[{"filter":"uckupehot","tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"},{"type":"typecondition","applicationType":"CLIENT"}],"productivities":[{"type":"productivitycondition","productivity":"LOW"},{"type":"productivitycondition","productivity":"VERY_HIGH"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":false},"type":"applicationfilter"}],"applications":[{"id":"8f425fed-eadf-5687-8e75-9b4fe967fcc9","version":"91b94988-c56f-5a96-a552-c943995e0b82","description":"Aduuhi zinco zi larcacha pesu umetouki wet jikoh zu vi ot jelrevap.","deprecated":false,"appId":8,"productivity":3,"risk":3,"name":"Application11","tagIds":["f7e90abe-ce71-56da-9f43-dd8685ec1a3a"],"tags":[{"id":"f7e90abe-ce71-56da-9f43-dd8685ec1a3a","version":"8b4ad1f1-dab6-5988-a793-c67eb8dbd3ee","appId":1,"name":"ApplicationTag1","description":"Opa zov vek obnam nobbab midzusmow riwehar gufugin mogfuana nairu camu fupim mo hov nizunfej.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["5b6fae52-502e-50ff-921a-a7a474f7a857","33552c21-0930-5bb5-8459-9b7608cda68e"],"categories":[{"id":"5b6fae52-502e-50ff-921a-a7a474f7a857","version":"fb5f760a-3774-5c39-b306-9174ad3e3c0a","appId":7,"name":"ApplicationCategory6","description":"Wafekioke nozo tu fazif mef tuve rokpicfab maer cu vaz pibcub ifi so noho wazubta cewsinu hakoj.","metadata":{"referenced":true},"type":"applicationcategory"},{"id":"33552c21-0930-5bb5-8459-9b7608cda68e","version":"73578557-169e-5431-99f4-4a87fb56d57c","appId":4,"name":"ApplicationCategory9","description":"Tir upwul taf foj igonas mawejus ba ni loj racwu pu nelkal gofifun zemcuz ut.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["SERVER"],"metadata":{"referenced":true},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"bba3c76d-8a74-5ec9-9bc5-df3008b85742","version":"uwofikigom","name":"UrlGroup2","description":"Eze zuj difruw namoha pu nijizkam owitema konho upi neppo fikcebzi hub zadouf sautiar.","objects":[{"id":"00abb7ee-65e7-5e3e-99f7-9800c0af349c","version":"bogoprobifi","name":"Url15","description":"Mok ujci zasidrob zo man urebanfir gim faseg hacabkuw gi jorabco bitle bek.","url":"http://nufiwow.net/mimce","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlCategory":{"id":"a7bc6deb-1544-59dd-b3c9-f0ff4f94d9aa","version":"46f1e31b-7fee-54bc-a10f-54e97745d47f","name":"UrlCategory-15","deprecated":false,"urlCategoryId":15,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"intrusionPolicy":{"id":"a47cb8f5-fe55-11e4-8e99-ipsN40","name":"Maximum Detection","links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN40"},"rules":{"links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN40/rules/"}},"description":"Maximum Detection Layer","type":"intrusionpolicy","version":"124d1a7b-a1b4-5097-b6d4-5a399c5bdb68"},"filePolicy":{"id":"fdae5632-c7d6-5dce-b95f-40b7c96b2a3d","type":"filepolicy","policyType":"CLOUD_LOOKUP_ALL","name":"File_Policy_2","description":"Tifeluw gag hos javfow rubin migapmom zab murizu pi we suvos ar sic zujizut si nah lephaflef.","version":"8009f4f9-d3bd-5991-acc5-c2eb5550c013"},"logFiles":false,"type":"accessrule"},{"id":"fb91225e-bd8a-5602-ab9a-ab0d81a72202","version":"478a9660-85ea-52fa-a9ce-96d24b15e8be","ruleId":6,"name":"Access_Rule_6","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_NONE","sourceZones":[{"id":"a3e7f3ef-3d09-5365-9a73-229ded43ba48","name":"SecurityZone15Name","description":"Wofa mukko zugal efamosaj ape vurugepa memepi woutod lu ergifde ceini den pegvuni ja.","version":"e721fda0-83ce-51b6-a003-bedfe42bb5db","interfaces":[{"mtu":2652,"enabled":false,"description":"Bo afri kewbiezu atda okpibmim faelaja jip tu ena oc pek mu piwnehsab puspon nuuja ziwelnak ilwu teew.","name":"subinterface9name","id":"a54e4784-eafc-5bc4-bfa1-985dd51ea923","hardwareName":"SubInterface0/9.10","macAddress":"A82E.76DF.F146","monitorInterface":false,"standbyMacAddress":"11D9.182D.C518","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"4f09:724e:c874:a60e:ff7c:0374:170f:cacf/32","ipAddress":"4313:8aa3:d274:f439:ea48:c8c7:c19b:22e2/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"0484:520a:88d4:9a88:6e95:64c9:65b9:f83b","ipAddress":"4ad5:881b:7ff6:552a:b882:7de7:21fc:972d"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"0.192.1.63","standbyIpAddress":"195.235.84.107"}},"version":"877f9f31-9402-5eaa-b18c-9333e068e73e","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}},{"id":"9c8667b7-4e34-56df-b092-1340af45b0d2","name":"SecurityZone10Name","description":"Joni gagko ugmucba ogparjad uvre hobneva wete epujein nelgidma kuollum wi gabvanaj sosso.","version":"bc2e044f-1753-51e2-aa7a-ea7362c6b23b","interfaces":[{"mtu":5818,"enabled":false,"description":"Rojsitepo fifgar sovaf ebabovvoj ivjinjig ite sadehtud upazeh dejsabfuv tipgo cosbe femigpi ac aztazta beduw.","id":"fa3dc115-5c3e-51ae-aa38-60ff9abd415a","hardwareName":"GigabitEthernet1/7","macAddress":"55F1.B70C.C1B7","monitorInterface":false,"standbyMacAddress":"B24B.66FA.3266","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"29df:8589:549c:1eef:cc3a:60bf:e04c:3627/32","ipAddress":"afd9:ec18:e2d8:02b5:d0fb:e88c:cea2:e443/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"1a98:7998:35a2:1767:f8b7:fea5:dc50:6a35","ipAddress":"2365:d545:9cd1:ab13:70c3:7177:cd7b:749e"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"135.29.245.249","standbyIpAddress":"74.247.146.212"}},"version":"143d2951-eca6-58fa-b11e-89d0e27b913c","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]},{"mtu":2652,"enabled":false,"description":"Cacfi rijgebpuj hotow vu jisfesgub os biami baajo cimod totufo cajip epkaeg ezeugpek ucifulo huzdeal.","name":"subinterface8name","id":"90da9e2e-5eb1-5d7f-95cf-8759bf36f644","hardwareName":"SubInterface0/8.9","macAddress":"8C77.2E4D.7213","monitorInterface":false,"standbyMacAddress":"32AD.D756.5E62","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"1ca8:b55c:d9ed:3be2:2955:da65:a52c:d0fc/32","ipAddress":"085b:3c0e:113f:ccef:6d12:cb57:ef1d:431d/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"3025:32ff:78fb:37e2:42a3:8d40:64ee:e93e","ipAddress":"7aea:6aed:7d14:3ac6:df8b:0446:5b7d:f55f"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"225.196.76.214","standbyIpAddress":"62.250.115.23"}},"version":"4e59e028-4b81-5f28-9fbf-6033fd2394b8","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}}],"destinationZones":[{"id":"ec43d6a8-fe32-5daa-a8bd-766b57a23892","name":"SecurityZone12Name","description":"Etzasus comdupo lu jeitlov zedoj no lidwa ka beni ujenapse lowon dil ami jir.","version":"3091782d-2bd2-57e7-8447-191d486665aa","interfaces":[{"mtu":5818,"enabled":true,"description":"Setta biwofega af ihi ebele inowo inagiobo nu it fe heivu lijivok.","name":"diagnostic","id":"f7509b61-168c-5d86-9a4c-8d3a2bb23e90","hardwareName":"Management0/0","macAddress":"249A.16A4.5DED","monitorInterface":true,"standbyMacAddress":"06D4.757D.FF06","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0c4e:e907:93c3:ba7a:7842:4899:f454:2a33/32","ipAddress":"41e0:3a60:0ca6:5f1c:cdd5:9c57:4918:682f/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d039:d6f4:278a:cdd3:b9e3:2711:460f:1555","ipAddress":"7e31:6d3f:5bbc:0d7f:4df6:58b9:26a6:d462"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"227.88.54.119","standbyIpAddress":"119.107.19.197"}},"version":"e50dac9e-5493-5760-b5e5-294741f3c409","managementInterface":true,"managementOnly":true,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"sourceNetworks":[{"id":"c1e8dd5a-a13d-5bcd-8db1-d7895b9a9f3a","name":"Network7","description":"Ehe jeep mijwamad kohi ifegujzek tednadcat dewian tuzdum ripi wondoh woh cugi masal.","version":"dc274636-d6d4-590e-b68f-5cc0d313f41b","type":"networkobject","subType":"NETWORK","value":"71.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"8dabc86d-1558-5a56-8c32-bc388b6a93f3","name":"Network13","description":"Dojba epfaw rew reltuzaw vaifjen wilida kepsu gadcukam rewog ojudu to siokwig jakel.","version":"81a1cfa9-9bdf-5ac8-98e5-299f203d4289","type":"networkobject","subType":"HOST","value":"b4f1:f88e:09b6:827b:d85f:dbf9:751b:dc45","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"eb6bb0a1-cecb-55ba-8f96-9656ef090bfd","name":"Geolocation10","description":"Ziwe tukina pubki ifro winwo fo piog roswuife to ugouj zer dula haip ju.","version":"06ed679a-dbbb-5eb6-a535-ecc514c1a364","type":"geolocation","locations":[{"id":"c7eb60a1-be27-5963-87ac-0c756fe76124","name":"Oceania","deprecated":true,"code":1006,"type":"continent","countries":[{"id":"28993a70-0f71-51a6-bd15-75bbbe151d39","name":"Samoa","deprecated":true,"iso3":"WSM","iso2":"WS","code":"882","type":"country"},{"id":"91d14642-b0c8-57a5-b226-e39b80213360","name":"Wallis and Futuna","deprecated":true,"iso3":"WLF","iso2":"WF","code":"876","type":"country"},{"id":"1f8bd503-8b6b-53b7-91e8-b4f01a87f55d","name":"Vanuatu","deprecated":true,"iso3":"VUT","iso2":"VU","code":"548","type":"country"},{"id":"0822041a-9790-514e-84a5-229c82007d22","name":"U.S. Minor Outlying Islands","deprecated":true,"iso3":"UMI","iso2":"UM","code":"581","type":"country"},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"9442da73-6b47-5cab-8a0b-baa977ec390b","name":"Tonga","deprecated":true,"iso3":"TON","iso2":"TO","code":"776","type":"country"},{"id":"37cfb898-ea93-52c7-bb5e-05b5e6ff3710","name":"East Timor","deprecated":false,"iso3":"TLS","iso2":"TL","code":"626","type":"country"},{"id":"d4c50c5a-d2a1-527e-81d7-b76ab3722771","name":"Tokelau","deprecated":false,"iso3":"TKL","iso2":"TK","code":"772","type":"country"},{"id":"2b6643b8-6fcb-5315-b350-5817c1573ea4","name":"Solomon Islands","deprecated":true,"iso3":"SLB","iso2":"SB","code":"090","type":"country"},{"id":"10a85a47-2aa1-5729-aa4d-cb226f57c280","name":"Palau","deprecated":false,"iso3":"PLW","iso2":"PW","code":"585","type":"country"},{"id":"dd1d13f6-78f2-5a0f-b4ca-ca27972be314","name":"Pitcairn Islands","deprecated":true,"iso3":"PCN","iso2":"PN","code":"612","type":"country"},{"id":"122477fe-9b24-50ed-88db-64565b4cc950","name":"Papua New Guinea","deprecated":false,"iso3":"PNG","iso2":"PG","code":"598","type":"country"},{"id":"642a86d2-e785-5f88-83a1-6b9299dc0cdf","name":"French Polynesia","deprecated":false,"iso3":"PYF","iso2":"PF","code":"258","type":"country"},{"id":"f2d903e0-16b9-5f01-a3dc-854970d49544","name":"New Zealand","deprecated":true,"iso3":"NZL","iso2":"NZ","code":"554","type":"country"},{"id":"643a299d-d43d-5be0-b5eb-4b30867675b1","name":"Niue","deprecated":false,"iso3":"NIU","iso2":"NU","code":"570","type":"country"},{"id":"65295b82-c8fc-5b50-9e20-e8a1ea9c3439","name":"Nauru","deprecated":true,"iso3":"NRU","iso2":"NR","code":"520","type":"country"},{"id":"fe7bb7a6-4c20-526b-a28f-59c99ffb6c79","name":"Norfolk Island","deprecated":true,"iso3":"NFK","iso2":"NF","code":"574","type":"country"},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"6d4a7385-b2b6-578c-b825-f2bae24ad903","name":"Northern Mariana Islands","deprecated":true,"iso3":"MNP","iso2":"MP","code":"580","type":"country"},{"id":"b49ff744-593f-5d86-ac9a-58d2d4e8307e","name":"Marshall Islands","deprecated":true,"iso3":"MHL","iso2":"MH","code":"584","type":"country"},{"id":"ec318859-4ec8-56f2-a06c-f2d23e06516e","name":"Kiribati","deprecated":false,"iso3":"KIR","iso2":"KI","code":"296","type":"country"},{"id":"6fff8b89-01f2-59d9-9a39-bd5a8c525fc9","name":"Guam","deprecated":false,"iso3":"GUM","iso2":"GU","code":"316","type":"country"},{"id":"87ea1078-3291-54f4-85e1-f2d54f97a96d","name":"Micronesia","deprecated":false,"iso3":"FSM","iso2":"FM","code":"583","type":"country"},{"id":"c7a81f83-2cd9-501d-9645-ed4170667b48","name":"Fiji","deprecated":true,"iso3":"FJI","iso2":"FJ","code":"242","type":"country"},{"id":"4343b55a-5fe8-567f-a099-f3d20b53a9cf","name":"Cook Islands","deprecated":true,"iso3":"COK","iso2":"CK","code":"184","type":"country"},{"id":"147f040e-b349-5414-81d3-dae7700c7e81","name":"Australia","deprecated":true,"iso3":"AUS","iso2":"AU","code":"036","type":"country"},{"id":"f3f980b4-9a78-5ff2-b7e7-be91523e3783","name":"American Samoa","deprecated":true,"iso3":"ASM","iso2":"AS","code":"016","type":"country"}],"countryCodes":["882","876","548","581","798","776","626","772","090","585","612","598","258","554","570","520","574","540","580","584","296","316","583","242","184","036","016"]},{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"4adcb40c-5d55-5860-97b6-ebac58830a04","name":"Croatia","deprecated":true,"iso3":"HRV","iso2":"HR","code":"191","type":"country"},{"id":"3358686b-4139-5062-b3a1-e838d19918cf","name":"Heard Island and McDonald Islands","deprecated":true,"iso3":"HMD","iso2":"HM","code":"334","type":"country"},{"id":"e92d8edd-80b3-56dd-bf35-7423b7740c84","name":"Paraguay","deprecated":false,"iso3":"PRY","iso2":"PY","code":"600","type":"country"},{"id":"8701b229-f2cb-5873-9ad8-d4f15407cd99","name":"Panama","deprecated":true,"iso3":"PAN","iso2":"PA","code":"591","type":"country"},{"id":"9cbd51af-d825-56f1-b3c3-1412697fe6d8","name":"Ghana","deprecated":true,"iso3":"GHA","iso2":"GH","code":"288","type":"country"}]}],"destinationNetworks":[{"id":"c1e8dd5a-a13d-5bcd-8db1-d7895b9a9f3a","name":"Network7","description":"Ehe jeep mijwamad kohi ifegujzek tednadcat dewian tuzdum ripi wondoh woh cugi masal.","version":"dc274636-d6d4-590e-b68f-5cc0d313f41b","type":"networkobject","subType":"NETWORK","value":"71.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"8dabc86d-1558-5a56-8c32-bc388b6a93f3","name":"Network13","description":"Dojba epfaw rew reltuzaw vaifjen wilida kepsu gadcukam rewog ojudu to siokwig jakel.","version":"81a1cfa9-9bdf-5ac8-98e5-299f203d4289","type":"networkobject","subType":"HOST","value":"b4f1:f88e:09b6:827b:d85f:dbf9:751b:dc45","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"eb6bb0a1-cecb-55ba-8f96-9656ef090bfd","name":"Geolocation10","description":"Ziwe tukina pubki ifro winwo fo piog roswuife to ugouj zer dula haip ju.","version":"06ed679a-dbbb-5eb6-a535-ecc514c1a364","type":"geolocation","locations":[{"id":"c7eb60a1-be27-5963-87ac-0c756fe76124","name":"Oceania","deprecated":true,"code":1006,"type":"continent","countries":[{"id":"28993a70-0f71-51a6-bd15-75bbbe151d39","name":"Samoa","deprecated":true,"iso3":"WSM","iso2":"WS","code":"882","type":"country"},{"id":"91d14642-b0c8-57a5-b226-e39b80213360","name":"Wallis and Futuna","deprecated":true,"iso3":"WLF","iso2":"WF","code":"876","type":"country"},{"id":"1f8bd503-8b6b-53b7-91e8-b4f01a87f55d","name":"Vanuatu","deprecated":true,"iso3":"VUT","iso2":"VU","code":"548","type":"country"},{"id":"0822041a-9790-514e-84a5-229c82007d22","name":"U.S. Minor Outlying Islands","deprecated":true,"iso3":"UMI","iso2":"UM","code":"581","type":"country"},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"9442da73-6b47-5cab-8a0b-baa977ec390b","name":"Tonga","deprecated":true,"iso3":"TON","iso2":"TO","code":"776","type":"country"},{"id":"37cfb898-ea93-52c7-bb5e-05b5e6ff3710","name":"East Timor","deprecated":false,"iso3":"TLS","iso2":"TL","code":"626","type":"country"},{"id":"d4c50c5a-d2a1-527e-81d7-b76ab3722771","name":"Tokelau","deprecated":false,"iso3":"TKL","iso2":"TK","code":"772","type":"country"},{"id":"2b6643b8-6fcb-5315-b350-5817c1573ea4","name":"Solomon Islands","deprecated":true,"iso3":"SLB","iso2":"SB","code":"090","type":"country"},{"id":"10a85a47-2aa1-5729-aa4d-cb226f57c280","name":"Palau","deprecated":false,"iso3":"PLW","iso2":"PW","code":"585","type":"country"},{"id":"dd1d13f6-78f2-5a0f-b4ca-ca27972be314","name":"Pitcairn Islands","deprecated":true,"iso3":"PCN","iso2":"PN","code":"612","type":"country"},{"id":"122477fe-9b24-50ed-88db-64565b4cc950","name":"Papua New Guinea","deprecated":false,"iso3":"PNG","iso2":"PG","code":"598","type":"country"},{"id":"642a86d2-e785-5f88-83a1-6b9299dc0cdf","name":"French Polynesia","deprecated":false,"iso3":"PYF","iso2":"PF","code":"258","type":"country"},{"id":"f2d903e0-16b9-5f01-a3dc-854970d49544","name":"New Zealand","deprecated":true,"iso3":"NZL","iso2":"NZ","code":"554","type":"country"},{"id":"643a299d-d43d-5be0-b5eb-4b30867675b1","name":"Niue","deprecated":false,"iso3":"NIU","iso2":"NU","code":"570","type":"country"},{"id":"65295b82-c8fc-5b50-9e20-e8a1ea9c3439","name":"Nauru","deprecated":true,"iso3":"NRU","iso2":"NR","code":"520","type":"country"},{"id":"fe7bb7a6-4c20-526b-a28f-59c99ffb6c79","name":"Norfolk Island","deprecated":true,"iso3":"NFK","iso2":"NF","code":"574","type":"country"},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"6d4a7385-b2b6-578c-b825-f2bae24ad903","name":"Northern Mariana Islands","deprecated":true,"iso3":"MNP","iso2":"MP","code":"580","type":"country"},{"id":"b49ff744-593f-5d86-ac9a-58d2d4e8307e","name":"Marshall Islands","deprecated":true,"iso3":"MHL","iso2":"MH","code":"584","type":"country"},{"id":"ec318859-4ec8-56f2-a06c-f2d23e06516e","name":"Kiribati","deprecated":false,"iso3":"KIR","iso2":"KI","code":"296","type":"country"},{"id":"6fff8b89-01f2-59d9-9a39-bd5a8c525fc9","name":"Guam","deprecated":false,"iso3":"GUM","iso2":"GU","code":"316","type":"country"},{"id":"87ea1078-3291-54f4-85e1-f2d54f97a96d","name":"Micronesia","deprecated":false,"iso3":"FSM","iso2":"FM","code":"583","type":"country"},{"id":"c7a81f83-2cd9-501d-9645-ed4170667b48","name":"Fiji","deprecated":true,"iso3":"FJI","iso2":"FJ","code":"242","type":"country"},{"id":"4343b55a-5fe8-567f-a099-f3d20b53a9cf","name":"Cook Islands","deprecated":true,"iso3":"COK","iso2":"CK","code":"184","type":"country"},{"id":"147f040e-b349-5414-81d3-dae7700c7e81","name":"Australia","deprecated":true,"iso3":"AUS","iso2":"AU","code":"036","type":"country"},{"id":"f3f980b4-9a78-5ff2-b7e7-be91523e3783","name":"American Samoa","deprecated":true,"iso3":"ASM","iso2":"AS","code":"016","type":"country"}],"countryCodes":["882","876","548","581","798","776","626","772","090","585","612","598","258","554","570","520","574","540","580","584","296","316","583","242","184","036","016"]},{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"4adcb40c-5d55-5860-97b6-ebac58830a04","name":"Croatia","deprecated":true,"iso3":"HRV","iso2":"HR","code":"191","type":"country"},{"id":"3358686b-4139-5062-b3a1-e838d19918cf","name":"Heard Island and McDonald Islands","deprecated":true,"iso3":"HMD","iso2":"HM","code":"334","type":"country"},{"id":"e92d8edd-80b3-56dd-bf35-7423b7740c84","name":"Paraguay","deprecated":false,"iso3":"PRY","iso2":"PY","code":"600","type":"country"},{"id":"8701b229-f2cb-5873-9ad8-d4f15407cd99","name":"Panama","deprecated":true,"iso3":"PAN","iso2":"PA","code":"591","type":"country"},{"id":"9cbd51af-d825-56f1-b3c3-1412697fe6d8","name":"Ghana","deprecated":true,"iso3":"GHA","iso2":"GH","code":"288","type":"country"}]}],"sourcePorts":[{"id":"1a4f8032-f665-5045-b0d8-a48b339750d1","name":"tcp_port_2","description":"Ku soguzsi ragibi nupavidag faji kovor ikikov efa ha cozuju inietu daf hif iso.","version":"b6ff8844-fd46-5e03-9ca4-00b7bc8bd936","type":"tcpportobject","port":8189,"isSystemDefined":false},{"id":"2a40730e-7878-5969-ba53-1d9278cde125","name":"icmpv4port1","description":"Uva ceti behga hetivasu ajbebu rakepe ame ifa aceuriso kejic fucaoti gigvivvo gishelpob jurevmu ov maclefe.","version":"e62c0f51-027e-5a7f-b725-a96162bb7138","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8508,"isSystemDefined":false}],"destinationPorts":[{"id":"b19e16f9-5846-596a-9757-161e7154e68c","name":"tcp_port_1","description":"Ruwus webwepfa fo copoko aligimaj riz zeti bivsu jah ve virip kesnenwer fi wede magbuf ojku sadruh ji.","version":"a90e8fa8-216a-59a4-bce1-da2f92acd1ad","type":"tcpportobject","port":8721,"isSystemDefined":true},{"id":"39c5e145-2ed4-5038-ab20-3c4878437d1d","name":"icmpv6port2","description":"Fajla geffe heseipu tez toluhpap ve uhmoba garoeb ozafuzli suhwof aw likofat erige hentejpi jajaza faztiav osece na.","version":"d4492bb3-d9b0-52fc-acc6-81061c83c6b8","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8267,"isSystemDefined":false}],"users":[{"id":"8d55f1a6-9864-59a6-a688-87f9e97cc2ee","name":"User 24","realmName":"ubejubijeg","type":"trafficuser","realmId":2,"version":"sahpowbudpiv"},{"id":"ee881dbe-33b7-559b-a776-101d11357429","name":"User 2","realmName":"enrinkimu","type":"trafficuser","realmId":2,"version":"nibnajomjo"},{"id":"fc7b882d-b7f5-53d4-a898-05e7c7e99da2","name":"User Group 3","realmName":"sumajiwne","type":"trafficusergroup","realmId":2,"version":"tucidwefga"}],"embeddedAppFilter":{"conditions":[{"filter":"huimezuben","tags":[{"id":"63db3391-02c9-5d1b-b971-5a6427f4c9fe","version":"95d07b80-ad97-50b0-a64b-b279d1420618","appId":5,"name":"ApplicationTag5","description":"Uwano ujeoska rootmaj kammovu ivitarpoh percuk oto bacema da onsevsej jovocoog ge gafed zakas ijwimuf.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"},{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"VERY_HIGH"},{"type":"productivitycondition","productivity":"LOW"},{"type":"productivitycondition","productivity":"HIGH"}],"type":"applicationfiltercondition"},{"filter":"baketfale","tags":[{"id":"0b45de63-5252-5257-acf6-ce494cdb905a","version":"9c3ed423-1b8a-5f1f-aae0-a507cc188490","appId":6,"name":"ApplicationTag6","description":"Varejse ji ogouvu rin nubuten bezozmaj coeg zuralse pa zitomgon lu rigugip.","metadata":{"referenced":true},"type":"applicationtag"}],"categories":[{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"HIGH"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"VERY_LOW"},{"type":"productivitycondition","productivity":"MEDIUM"},{"type":"productivitycondition","productivity":"LOW"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"f0c3a5d1-57d9-50ea-9035-0e27d2dd7447","version":"186b3aa2-9ffb-590a-a7f5-b799b6dd33ac","name":"ApplicationFilter11","description":"Bil katit molcehmo bir pi unor famokuiba oglu ec emmem gazwica dor ko.","applications":[{"id":"a035fce1-4959-5362-8472-253aa159b1ec","version":"616efbb8-6148-59e3-afd4-68d4d42164c1","description":"Fo cigejki leg umjunu ja da lefuh ib zatlose ganutag dilebi cejizgow.","deprecated":false,"appId":6,"productivity":0,"risk":1,"name":"Application15","tagIds":["f7e90abe-ce71-56da-9f43-dd8685ec1a3a","a558b06a-1e83-5caa-a903-3b6e291ddc2e"],"tags":[{"id":"f7e90abe-ce71-56da-9f43-dd8685ec1a3a","version":"8b4ad1f1-dab6-5988-a793-c67eb8dbd3ee","appId":1,"name":"ApplicationTag1","description":"Opa zov vek obnam nobbab midzusmow riwehar gufugin mogfuana nairu camu fupim mo hov nizunfej.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"a558b06a-1e83-5caa-a903-3b6e291ddc2e","version":"96c0750c-0f50-5872-869a-8b50dad24edc","appId":8,"name":"SSL protocol","description":"Ifgafu ma vopuatu ho jim zud hiodiben ango ji nusiwufu hig gatejsem povci.","metadata":{"referenced":true},"type":"applicationtag"}],"categoryIds":["fff4b47c-a653-5729-a31a-e6353d420768","7f62abc6-7f08-5a69-acb6-65def01251d4"],"categories":[{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["CLIENT","SERVER"],"metadata":{"referenced":true},"type":"application"},{"id":"ce901dd3-4e85-5bf0-a273-2018d76527c8","version":"84a4f0c6-57b3-50f3-bf20-0cf68bbbb806","description":"Gipus bovawge vel ceoziwo nuim ehdifir nowe onoli atsewav irfer semowi ge turos mufo tahukca jaz.","deprecated":true,"appId":5,"productivity":0,"risk":2,"name":"Application2","tagIds":["58edda62-c97b-56e5-9e6c-32926f4d3009"],"tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["1323d445-72c0-5d8b-9f58-c223feb51bac","328094ea-7b95-58e5-a2de-09018514e679"],"categories":[{"id":"1323d445-72c0-5d8b-9f58-c223feb51bac","version":"f85374d2-b1c5-5e65-b746-77dc6a21decb","appId":7,"name":"ApplicationCategory14","description":"Ohoad agoteveto irewomi adizogo lurtoop tizesuca himewwak poftoj cow nunapivif cisge pe hi raam hatdunze.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"328094ea-7b95-58e5-a2de-09018514e679","version":"a9f6d6f5-e2ce-5a1b-8c7f-1a5ba3c375b4","appId":4,"name":"ApplicationCategory1","description":"Pilooru amavudek uhzidkah sieha duhni ikfo celrid az ocolu loplun buj nodlial do ahme henacava so ecevega wemtumacu.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["CLIENT","WEBAPP"],"metadata":{"referenced":false},"type":"application"}],"conditions":[{"filter":"fapbalnezi","tags":[{"id":"6f8f8faa-179f-5da2-800c-387e6e2d142f","version":"2d72ebc6-6079-5398-8376-0abffab064ce","appId":7,"name":"ApplicationTag7","description":"Lu nil nubfaida lorig kacze rajlacve uboruzu zobjo opimawu zapaswo jed sihnob hecoj le neus gubwe pij lerwilkic.","metadata":{"referenced":true},"type":"applicationtag"},{"id":"9b266171-0bc7-5f71-aa6c-44b8cbafa329","version":"746ac683-b500-5781-b179-f61db662f8d3","appId":9,"name":"ApplicationTag9","description":"Ja lohivap wim saj zuw hinakug tiduze noemo azonimi ici kovaz ikuza wiihboz bubopmin la uge jeko.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"ea9b4aa3-c8a2-52f9-87ba-b33f1b452a42","version":"e289f52e-a078-5581-a775-4c8435a534f0","appId":3,"name":"ApplicationCategory7","description":"Ci sovo ig ivebcag gif uk eztez ezofi jizrebi lafozu ehje daj noiw vajru modpoteh juizu.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"CRITICAL"}],"applicationTypes":[{"type":"typecondition","applicationType":"CLIENT"}],"productivities":[{"type":"productivitycondition","productivity":"LOW"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":true},"type":"applicationfilter"}],"applications":[{"id":"6361bd7f-01c9-5714-baca-035d66f50a8c","version":"50dcdb47-5d21-537f-b3b0-81713bf31c06","description":"Leku luto lofuwec wuwguhot abmofdo cun vuunuvi lulsoteg kivsas mijmi ru kipumeja sacwuwhe gub magumera.","deprecated":false,"appId":5,"productivity":0,"risk":4,"name":"Application5","tagIds":["0b45de63-5252-5257-acf6-ce494cdb905a"],"tags":[{"id":"0b45de63-5252-5257-acf6-ce494cdb905a","version":"9c3ed423-1b8a-5f1f-aae0-a507cc188490","appId":6,"name":"ApplicationTag6","description":"Varejse ji ogouvu rin nubuten bezozmaj coeg zuralse pa zitomgon lu rigugip.","metadata":{"referenced":true},"type":"applicationtag"}],"categoryIds":["7f62abc6-7f08-5a69-acb6-65def01251d4","fff4b47c-a653-5729-a31a-e6353d420768"],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["SERVER","WEBAPP"],"metadata":{"referenced":true},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"ce7eba4c-0b9a-5a3f-bb88-6ce71398fbc8","version":"epozikeccow","name":"UrlGroup1","description":"Kajili nockugda van cikepuh toavah kebpi muwnumo tezotu pelapdec sif fepgo hul sacwav na.","objects":[{"id":"d31c2d0e-3ad0-5053-9a7b-a0ef29eff5f9","version":"ajolouhog","name":"Url8","description":"Kirgirac rireto vu nimu kek bo dosoze tillen wisud kerecfar evibur wen cehpa weg ju doneh.","url":"http://de.co.uk/neni","type":"urlobject"},{"id":"d72bd5cf-710c-5048-b0fa-1bda6746520d","version":"onaisujuja","name":"Url3","description":"Nolze no gavrofkep dog di buc ta oko kon pigu fuezo uzara.","url":"http://gagonofi.edu/letiga","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlReputation":{"id":"00d12166-18a1-568d-8878-cbe92b44602c","name":"Risk unknown","index":0,"startPercentage":0,"endPercentage":0,"version":"b5c74a5a-ad53-5a53-91d1-505f3d64d5d5","type":"urlreputation"},"urlCategory":{"id":"5c03856a-3c13-5838-b397-19e4eb343d1d","version":"4399e700-e8df-5a73-a565-c19049383762","name":"Health and Medicine","deprecated":false,"urlCategoryId":1,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"intrusionPolicy":{"id":"a47cb8f5-fe55-11e4-8e99-ipsN40","name":"Maximum Detection","links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN40"},"rules":{"links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN40/rules/"}},"description":"Maximum Detection Layer","type":"intrusionpolicy","version":"124d1a7b-a1b4-5097-b6d4-5a399c5bdb68"},"filePolicy":{"id":"fdae5632-c7d6-5dce-b95f-40b7c96b2a3d","type":"filepolicy","policyType":"CLOUD_LOOKUP_ALL","name":"File_Policy_2","description":"Tifeluw gag hos javfow rubin migapmom zab murizu pi we suvos ar sic zujizut si nah lephaflef.","version":"8009f4f9-d3bd-5991-acc5-c2eb5550c013"},"logFiles":false,"type":"accessrule"},{"id":"3c66cf3d-cd87-520d-ac1d-2cf54aa55c89","version":"17edbbd1-c767-5a29-9d91-b6a595adaf3f","ruleId":7,"name":"Access_Rule_7","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_FLOW_END","syslogServer":{"id":"8b2497cb-1dee-5d91-88e3-cf2ba71d6d57","version":"35ab6c5c-b8e4-5e24-b013-4ffd6ed479b6","host":"83.58.8.189","port":5897,"protocol":"UDP","useManagementInterface":true,"type":"syslogserver"},"sourceZones":[{"id":"7fa724f3-b64c-585b-9176-69aed2b36237","name":"SecurityZone1Name","description":"Do pefa ritapo ovauciku vogomougi utino gudo momna sagocbiw bowce awu muzabwoz zetpec kit fe.","version":"9d1d113e-86e0-5106-9f6c-29cc8e8fc7fb","interfaces":[{"mtu":5818,"enabled":true,"description":"Wonca cotfo biok ugfejbah ro itedere itoh pijazu ocozojgi buk facheuho zo.","id":"ef57753e-8a0c-5454-a3b3-fbc3c570851d","hardwareName":"GigabitEthernet1/3","macAddress":"34B5.AF3E.B9E9","monitorInterface":true,"standbyMacAddress":"4AF5.3F46.87FE","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"da83:da11:93ff:4f56:084e:f1c1:269c:0dd0/32","ipAddress":"831e:6e6b:281e:8b10:94d0:03f1:b4d5:3373/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"6a3f:c0b2:5d20:fdb6:945d:bcd1:a144:7558","ipAddress":"af4f:d5f4:67bb:3263:e183:fc6c:ea34:f2e6"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"204.8.215.52","standbyIpAddress":"108.106.112.194"}},"version":"46c1bc9f-9a0a-5425-8dc2-3a04dd84c3f1","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}},{"id":"a3e7f3ef-3d09-5365-9a73-229ded43ba48","name":"SecurityZone15Name","description":"Wofa mukko zugal efamosaj ape vurugepa memepi woutod lu ergifde ceini den pegvuni ja.","version":"e721fda0-83ce-51b6-a003-bedfe42bb5db","interfaces":[{"mtu":2652,"enabled":false,"description":"Bo afri kewbiezu atda okpibmim faelaja jip tu ena oc pek mu piwnehsab puspon nuuja ziwelnak ilwu teew.","name":"subinterface9name","id":"a54e4784-eafc-5bc4-bfa1-985dd51ea923","hardwareName":"SubInterface0/9.10","macAddress":"A82E.76DF.F146","monitorInterface":false,"standbyMacAddress":"11D9.182D.C518","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"4f09:724e:c874:a60e:ff7c:0374:170f:cacf/32","ipAddress":"4313:8aa3:d274:f439:ea48:c8c7:c19b:22e2/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"0484:520a:88d4:9a88:6e95:64c9:65b9:f83b","ipAddress":"4ad5:881b:7ff6:552a:b882:7de7:21fc:972d"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"0.192.1.63","standbyIpAddress":"195.235.84.107"}},"version":"877f9f31-9402-5eaa-b18c-9333e068e73e","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}}],"destinationZones":[{"id":"340bf250-a4a5-5049-bddf-a6201a9b8e86","name":"SecurityZone7Name","description":"So gitejipo sotvotdab watu la ica fojum dorog odohog mil etuw ta daghavke dig.","version":"273d67ab-abb9-5af1-8574-3e9af6e98aed","interfaces":[{"mtu":2652,"enabled":false,"description":"Wa cep gi lankowtu ce uvujed tad wo vezke vib vezvufgev hun vob velumde.","name":"subinterface11name","id":"ffc74b4d-ad27-5459-9907-186a8c739189","hardwareName":"SubInterface0/11.12","macAddress":"1534.AB09.4146","monitorInterface":true,"standbyMacAddress":"CF72.BDFB.98A1","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"fafb:559d:106d:67ac:52dd:e182:d306:4792/32","ipAddress":"a7bd:69ea:f24f:04ea:40c5:3f80:0416:0f09/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d544:6d26:411c:e460:9911:cb8b:ca9e:3a15","ipAddress":"f96f:858d:9ed1:fc9f:7b47:0fb4:246d:6cb6"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"17.76.225.83","standbyIpAddress":"195.253.157.229"}},"version":"e22e21d2-9d64-51a4-adc2-a775a4572916","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}}],"sourceNetworks":[{"id":"8dabc86d-1558-5a56-8c32-bc388b6a93f3","name":"Network13","description":"Dojba epfaw rew reltuzaw vaifjen wilida kepsu gadcukam rewog ojudu to siokwig jakel.","version":"81a1cfa9-9bdf-5ac8-98e5-299f203d4289","type":"networkobject","subType":"HOST","value":"b4f1:f88e:09b6:827b:d85f:dbf9:751b:dc45","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"de4c912d-0f32-5730-92dd-e6ef7f12a099","name":"Network11","description":"Gisi kalej ih zum midogi gar vezsu reweh od sufmukce siici ki hepvevote ubu feva fabikdol.","version":"dc1b33e1-bb99-5727-85e6-6f30f624ffa2","type":"networkobject","subType":"HOST","value":"42.38.187.218","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"461303fa-0a19-58a2-9c11-f34f2bf0dfbd","name":"Geolocation8","description":"To ininegto gek zaloj voal tu hudodwa asaatapim olanlej wagwip mu ufu zobpe.","version":"729c6712-e56d-58b3-84f4-e9047261348c","type":"geolocation","locations":[{"id":"c7eb60a1-be27-5963-87ac-0c756fe76124","name":"Oceania","deprecated":true,"code":1006,"type":"continent","countries":[{"id":"28993a70-0f71-51a6-bd15-75bbbe151d39","name":"Samoa","deprecated":true,"iso3":"WSM","iso2":"WS","code":"882","type":"country"},{"id":"91d14642-b0c8-57a5-b226-e39b80213360","name":"Wallis and Futuna","deprecated":true,"iso3":"WLF","iso2":"WF","code":"876","type":"country"},{"id":"1f8bd503-8b6b-53b7-91e8-b4f01a87f55d","name":"Vanuatu","deprecated":true,"iso3":"VUT","iso2":"VU","code":"548","type":"country"},{"id":"0822041a-9790-514e-84a5-229c82007d22","name":"U.S. Minor Outlying Islands","deprecated":true,"iso3":"UMI","iso2":"UM","code":"581","type":"country"},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"9442da73-6b47-5cab-8a0b-baa977ec390b","name":"Tonga","deprecated":true,"iso3":"TON","iso2":"TO","code":"776","type":"country"},{"id":"37cfb898-ea93-52c7-bb5e-05b5e6ff3710","name":"East Timor","deprecated":false,"iso3":"TLS","iso2":"TL","code":"626","type":"country"},{"id":"d4c50c5a-d2a1-527e-81d7-b76ab3722771","name":"Tokelau","deprecated":false,"iso3":"TKL","iso2":"TK","code":"772","type":"country"},{"id":"2b6643b8-6fcb-5315-b350-5817c1573ea4","name":"Solomon Islands","deprecated":true,"iso3":"SLB","iso2":"SB","code":"090","type":"country"},{"id":"10a85a47-2aa1-5729-aa4d-cb226f57c280","name":"Palau","deprecated":false,"iso3":"PLW","iso2":"PW","code":"585","type":"country"},{"id":"dd1d13f6-78f2-5a0f-b4ca-ca27972be314","name":"Pitcairn Islands","deprecated":true,"iso3":"PCN","iso2":"PN","code":"612","type":"country"},{"id":"122477fe-9b24-50ed-88db-64565b4cc950","name":"Papua New Guinea","deprecated":false,"iso3":"PNG","iso2":"PG","code":"598","type":"country"},{"id":"642a86d2-e785-5f88-83a1-6b9299dc0cdf","name":"French Polynesia","deprecated":false,"iso3":"PYF","iso2":"PF","code":"258","type":"country"},{"id":"f2d903e0-16b9-5f01-a3dc-854970d49544","name":"New Zealand","deprecated":true,"iso3":"NZL","iso2":"NZ","code":"554","type":"country"},{"id":"643a299d-d43d-5be0-b5eb-4b30867675b1","name":"Niue","deprecated":false,"iso3":"NIU","iso2":"NU","code":"570","type":"country"},{"id":"65295b82-c8fc-5b50-9e20-e8a1ea9c3439","name":"Nauru","deprecated":true,"iso3":"NRU","iso2":"NR","code":"520","type":"country"},{"id":"fe7bb7a6-4c20-526b-a28f-59c99ffb6c79","name":"Norfolk Island","deprecated":true,"iso3":"NFK","iso2":"NF","code":"574","type":"country"},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"6d4a7385-b2b6-578c-b825-f2bae24ad903","name":"Northern Mariana Islands","deprecated":true,"iso3":"MNP","iso2":"MP","code":"580","type":"country"},{"id":"b49ff744-593f-5d86-ac9a-58d2d4e8307e","name":"Marshall Islands","deprecated":true,"iso3":"MHL","iso2":"MH","code":"584","type":"country"},{"id":"ec318859-4ec8-56f2-a06c-f2d23e06516e","name":"Kiribati","deprecated":false,"iso3":"KIR","iso2":"KI","code":"296","type":"country"},{"id":"6fff8b89-01f2-59d9-9a39-bd5a8c525fc9","name":"Guam","deprecated":false,"iso3":"GUM","iso2":"GU","code":"316","type":"country"},{"id":"87ea1078-3291-54f4-85e1-f2d54f97a96d","name":"Micronesia","deprecated":false,"iso3":"FSM","iso2":"FM","code":"583","type":"country"},{"id":"c7a81f83-2cd9-501d-9645-ed4170667b48","name":"Fiji","deprecated":true,"iso3":"FJI","iso2":"FJ","code":"242","type":"country"},{"id":"4343b55a-5fe8-567f-a099-f3d20b53a9cf","name":"Cook Islands","deprecated":true,"iso3":"COK","iso2":"CK","code":"184","type":"country"},{"id":"147f040e-b349-5414-81d3-dae7700c7e81","name":"Australia","deprecated":true,"iso3":"AUS","iso2":"AU","code":"036","type":"country"},{"id":"f3f980b4-9a78-5ff2-b7e7-be91523e3783","name":"American Samoa","deprecated":true,"iso3":"ASM","iso2":"AS","code":"016","type":"country"}],"countryCodes":["882","876","548","581","798","776","626","772","090","585","612","598","258","554","570","520","574","540","580","584","296","316","583","242","184","036","016"]},{"id":"28e90dfc-6bc0-556c-a014-d0dc49366442","name":"Albania","deprecated":true,"iso3":"ALB","iso2":"AL","code":"008","type":"country"},{"id":"ba4897cd-087a-5292-b1be-d3a00a7f26bb","name":"South Georgia and the South Sandwich Islands","deprecated":true,"iso3":"SGS","iso2":"GS","code":"239","type":"country"},{"id":"1adcc1e8-564f-5b54-a236-fc72bae227b9","name":"Argentina","deprecated":false,"iso3":"ARG","iso2":"AR","code":"032","type":"country"},{"id":"3589f9a6-a7c1-5332-a139-3f9595fdfd28","name":"Turks and Caicos Islands","deprecated":true,"iso3":"TCA","iso2":"TC","code":"796","type":"country"},{"id":"b110114a-4903-54d2-8925-cfa66175fc81","name":"Morocco","deprecated":true,"iso3":"MAR","iso2":"MA","code":"504","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"}]}],"destinationNetworks":[{"id":"8dabc86d-1558-5a56-8c32-bc388b6a93f3","name":"Network13","description":"Dojba epfaw rew reltuzaw vaifjen wilida kepsu gadcukam rewog ojudu to siokwig jakel.","version":"81a1cfa9-9bdf-5ac8-98e5-299f203d4289","type":"networkobject","subType":"HOST","value":"b4f1:f88e:09b6:827b:d85f:dbf9:751b:dc45","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"de4c912d-0f32-5730-92dd-e6ef7f12a099","name":"Network11","description":"Gisi kalej ih zum midogi gar vezsu reweh od sufmukce siici ki hepvevote ubu feva fabikdol.","version":"dc1b33e1-bb99-5727-85e6-6f30f624ffa2","type":"networkobject","subType":"HOST","value":"42.38.187.218","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"461303fa-0a19-58a2-9c11-f34f2bf0dfbd","name":"Geolocation8","description":"To ininegto gek zaloj voal tu hudodwa asaatapim olanlej wagwip mu ufu zobpe.","version":"729c6712-e56d-58b3-84f4-e9047261348c","type":"geolocation","locations":[{"id":"c7eb60a1-be27-5963-87ac-0c756fe76124","name":"Oceania","deprecated":true,"code":1006,"type":"continent","countries":[{"id":"28993a70-0f71-51a6-bd15-75bbbe151d39","name":"Samoa","deprecated":true,"iso3":"WSM","iso2":"WS","code":"882","type":"country"},{"id":"91d14642-b0c8-57a5-b226-e39b80213360","name":"Wallis and Futuna","deprecated":true,"iso3":"WLF","iso2":"WF","code":"876","type":"country"},{"id":"1f8bd503-8b6b-53b7-91e8-b4f01a87f55d","name":"Vanuatu","deprecated":true,"iso3":"VUT","iso2":"VU","code":"548","type":"country"},{"id":"0822041a-9790-514e-84a5-229c82007d22","name":"U.S. Minor Outlying Islands","deprecated":true,"iso3":"UMI","iso2":"UM","code":"581","type":"country"},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"9442da73-6b47-5cab-8a0b-baa977ec390b","name":"Tonga","deprecated":true,"iso3":"TON","iso2":"TO","code":"776","type":"country"},{"id":"37cfb898-ea93-52c7-bb5e-05b5e6ff3710","name":"East Timor","deprecated":false,"iso3":"TLS","iso2":"TL","code":"626","type":"country"},{"id":"d4c50c5a-d2a1-527e-81d7-b76ab3722771","name":"Tokelau","deprecated":false,"iso3":"TKL","iso2":"TK","code":"772","type":"country"},{"id":"2b6643b8-6fcb-5315-b350-5817c1573ea4","name":"Solomon Islands","deprecated":true,"iso3":"SLB","iso2":"SB","code":"090","type":"country"},{"id":"10a85a47-2aa1-5729-aa4d-cb226f57c280","name":"Palau","deprecated":false,"iso3":"PLW","iso2":"PW","code":"585","type":"country"},{"id":"dd1d13f6-78f2-5a0f-b4ca-ca27972be314","name":"Pitcairn Islands","deprecated":true,"iso3":"PCN","iso2":"PN","code":"612","type":"country"},{"id":"122477fe-9b24-50ed-88db-64565b4cc950","name":"Papua New Guinea","deprecated":false,"iso3":"PNG","iso2":"PG","code":"598","type":"country"},{"id":"642a86d2-e785-5f88-83a1-6b9299dc0cdf","name":"French Polynesia","deprecated":false,"iso3":"PYF","iso2":"PF","code":"258","type":"country"},{"id":"f2d903e0-16b9-5f01-a3dc-854970d49544","name":"New Zealand","deprecated":true,"iso3":"NZL","iso2":"NZ","code":"554","type":"country"},{"id":"643a299d-d43d-5be0-b5eb-4b30867675b1","name":"Niue","deprecated":false,"iso3":"NIU","iso2":"NU","code":"570","type":"country"},{"id":"65295b82-c8fc-5b50-9e20-e8a1ea9c3439","name":"Nauru","deprecated":true,"iso3":"NRU","iso2":"NR","code":"520","type":"country"},{"id":"fe7bb7a6-4c20-526b-a28f-59c99ffb6c79","name":"Norfolk Island","deprecated":true,"iso3":"NFK","iso2":"NF","code":"574","type":"country"},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"6d4a7385-b2b6-578c-b825-f2bae24ad903","name":"Northern Mariana Islands","deprecated":true,"iso3":"MNP","iso2":"MP","code":"580","type":"country"},{"id":"b49ff744-593f-5d86-ac9a-58d2d4e8307e","name":"Marshall Islands","deprecated":true,"iso3":"MHL","iso2":"MH","code":"584","type":"country"},{"id":"ec318859-4ec8-56f2-a06c-f2d23e06516e","name":"Kiribati","deprecated":false,"iso3":"KIR","iso2":"KI","code":"296","type":"country"},{"id":"6fff8b89-01f2-59d9-9a39-bd5a8c525fc9","name":"Guam","deprecated":false,"iso3":"GUM","iso2":"GU","code":"316","type":"country"},{"id":"87ea1078-3291-54f4-85e1-f2d54f97a96d","name":"Micronesia","deprecated":false,"iso3":"FSM","iso2":"FM","code":"583","type":"country"},{"id":"c7a81f83-2cd9-501d-9645-ed4170667b48","name":"Fiji","deprecated":true,"iso3":"FJI","iso2":"FJ","code":"242","type":"country"},{"id":"4343b55a-5fe8-567f-a099-f3d20b53a9cf","name":"Cook Islands","deprecated":true,"iso3":"COK","iso2":"CK","code":"184","type":"country"},{"id":"147f040e-b349-5414-81d3-dae7700c7e81","name":"Australia","deprecated":true,"iso3":"AUS","iso2":"AU","code":"036","type":"country"},{"id":"f3f980b4-9a78-5ff2-b7e7-be91523e3783","name":"American Samoa","deprecated":true,"iso3":"ASM","iso2":"AS","code":"016","type":"country"}],"countryCodes":["882","876","548","581","798","776","626","772","090","585","612","598","258","554","570","520","574","540","580","584","296","316","583","242","184","036","016"]},{"id":"28e90dfc-6bc0-556c-a014-d0dc49366442","name":"Albania","deprecated":true,"iso3":"ALB","iso2":"AL","code":"008","type":"country"},{"id":"ba4897cd-087a-5292-b1be-d3a00a7f26bb","name":"South Georgia and the South Sandwich Islands","deprecated":true,"iso3":"SGS","iso2":"GS","code":"239","type":"country"},{"id":"1adcc1e8-564f-5b54-a236-fc72bae227b9","name":"Argentina","deprecated":false,"iso3":"ARG","iso2":"AR","code":"032","type":"country"},{"id":"3589f9a6-a7c1-5332-a139-3f9595fdfd28","name":"Turks and Caicos Islands","deprecated":true,"iso3":"TCA","iso2":"TC","code":"796","type":"country"},{"id":"b110114a-4903-54d2-8925-cfa66175fc81","name":"Morocco","deprecated":true,"iso3":"MAR","iso2":"MA","code":"504","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"}]}],"sourcePorts":[{"id":"34f7bed0-39b1-5064-a6e7-27b5431b2066","name":"udp_port_2","description":"Eji leklo infagziv wut vujapvug avvutu toduj dulnarse ifdo bipujhas ajo vualo efapomiw ge nepe gomhuh.","version":"5785591f-a79c-5ff4-bc82-b3dd6d70a236","type":"udpportobject","port":8830,"isSystemDefined":false},{"id":"b19e16f9-5846-596a-9757-161e7154e68c","name":"tcp_port_1","description":"Ruwus webwepfa fo copoko aligimaj riz zeti bivsu jah ve virip kesnenwer fi wede magbuf ojku sadruh ji.","version":"a90e8fa8-216a-59a4-bce1-da2f92acd1ad","type":"tcpportobject","port":8721,"isSystemDefined":true}],"destinationPorts":[{"id":"5e4d4b4d-706c-5325-b034-896d42bf9087","name":"udp_port_1","description":"Rupkoedo zuv egodid ca buapesug tu mawaduh etaeha pigfa keh it bozute wovi zijuci poscuren ifohhe.","version":"db631abc-32a3-5ca5-8ae5-a3b6f3c8371a","type":"udpportobject","port":8537,"isSystemDefined":true},{"id":"d0ecb6d1-cc76-58fb-a392-4e9c9537be4c","name":"icmpv4port2","description":"Asci be jutgu wo susadagi woveven bafosjoc ceec wovukiv tati tepav gu za muhhudbi.","version":"54ed4735-cf04-5504-8a5a-2dd0bec3f5a9","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8251,"isSystemDefined":false}],"users":[{"id":"56333652-27c4-5f8b-a6b4-d6f92023c62f","name":"User Group 27","realmName":"ecfomeov","type":"trafficusergroup","realmId":2,"version":"nemawpopew"},{"id":"19329003-b80c-51e0-9c5e-b210e6102c0a","name":"User 34","realmName":"uraapimozocu","type":"trafficuser","realmId":0,"version":"asdebjiat"},{"id":"b5063789-8609-522b-9468-8ab4b95df771","name":"User Group 19","realmName":"bulculewube","type":"trafficusergroup","realmId":2,"version":"cuwoziuf"}],"embeddedAppFilter":{"conditions":[{"filter":"jignorebes","tags":[{"id":"e9812b72-2a36-5146-bce0-b09f876df88d","version":"080dca18-c677-5dd1-8f2f-40555beb4fe4","appId":10,"name":"ApplicationTag10","description":"Viswilo ariuzaf pih wa mul vugavrip rijfon aba kac giicse wolifa cowudzuv vev iztafit.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"0928e8e9-25a4-53d0-b118-342a26b44100","version":"cccc44d5-b855-569b-90ad-b26d4e3e0c66","appId":7,"name":"ApplicationCategory8","description":"Mifzonu fokero acdu panvo cuvubde tovli maz cawag kaoj gosoojo falkof hezel sig ca vo wak.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"MEDIUM"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"},{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"},{"filter":"tazfeofgut","tags":[{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"e9812b72-2a36-5146-bce0-b09f876df88d","version":"080dca18-c677-5dd1-8f2f-40555beb4fe4","appId":10,"name":"ApplicationTag10","description":"Viswilo ariuzaf pih wa mul vugavrip rijfon aba kac giicse wolifa cowudzuv vev iztafit.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"},{"id":"ea9b4aa3-c8a2-52f9-87ba-b33f1b452a42","version":"e289f52e-a078-5581-a775-4c8435a534f0","appId":3,"name":"ApplicationCategory7","description":"Ci sovo ig ivebcag gif uk eztez ezofi jizrebi lafozu ehje daj noiw vajru modpoteh juizu.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"MEDIUM"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"MEDIUM"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"cc35245d-826d-5658-b4fe-95991a398ec6","version":"d479ec11-d1a3-5f15-b8dc-04f5ecbe8b48","name":"ApplicationFilter1","description":"Foan parot akitu nufidsu purfu biwowobi piahote noturtus otsido sa jihda pebip tuwi gocre.","applications":[{"id":"f8c5fef0-916a-541e-9113-de4951dde18b","version":"c07380b4-d91f-5a9b-aed7-efbe152c2f6b","description":"Aloul gouwtu riguse luzmokfof somi ehroz esecegwaf fafal heeg ohban fi ijga.","deprecated":true,"appId":6,"productivity":1,"risk":3,"name":"Application6","tagIds":["63db3391-02c9-5d1b-b971-5a6427f4c9fe"],"tags":[{"id":"63db3391-02c9-5d1b-b971-5a6427f4c9fe","version":"95d07b80-ad97-50b0-a64b-b279d1420618","appId":5,"name":"ApplicationTag5","description":"Uwano ujeoska rootmaj kammovu ivitarpoh percuk oto bacema da onsevsej jovocoog ge gafed zakas ijwimuf.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["33552c21-0930-5bb5-8459-9b7608cda68e","794d6605-f5d9-5f26-b11d-507eac471889"],"categories":[{"id":"33552c21-0930-5bb5-8459-9b7608cda68e","version":"73578557-169e-5431-99f4-4a87fb56d57c","appId":4,"name":"ApplicationCategory9","description":"Tir upwul taf foj igonas mawejus ba ni loj racwu pu nelkal gofifun zemcuz ut.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"794d6605-f5d9-5f26-b11d-507eac471889","version":"20176f07-7d98-5dd7-8a17-de688ee66220","appId":1,"name":"ApplicationCategory3","description":"Woc ved ecu hin potalbib la uweerabof mato dewahmo avutji wose pujda tunoduz ucu ho zopusno lo mu.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["WEBAPP"],"metadata":{"referenced":false},"type":"application"}],"conditions":[{"filter":"baketfale","tags":[{"id":"0b45de63-5252-5257-acf6-ce494cdb905a","version":"9c3ed423-1b8a-5f1f-aae0-a507cc188490","appId":6,"name":"ApplicationTag6","description":"Varejse ji ogouvu rin nubuten bezozmaj coeg zuralse pa zitomgon lu rigugip.","metadata":{"referenced":true},"type":"applicationtag"}],"categories":[{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"HIGH"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"VERY_LOW"},{"type":"productivitycondition","productivity":"MEDIUM"},{"type":"productivitycondition","productivity":"LOW"}],"type":"applicationfiltercondition"}],"isSystemDefined":true,"metadata":{"referenced":false},"type":"applicationfilter"}],"applications":[{"id":"83c8e0e6-3707-5128-b7da-4659f67b76a0","version":"5072ae78-a326-5b92-8176-c0c8132922a8","description":"Bo dese su ja elumuf ane zusjo fiplois ewariju ihjup nunnihep kosaldic kuhfovu.","deprecated":false,"appId":4,"productivity":0,"risk":1,"name":"Application1","tagIds":["62bc5d56-7e60-5a71-a467-2c4f2a035a06"],"tags":[{"id":"62bc5d56-7e60-5a71-a467-2c4f2a035a06","version":"e7e0ebc9-3a9a-5342-91e9-ae0ce54b3444","appId":12,"name":"ApplicationTag12","description":"Bamiwaga bo kek wawinta ovepozgan tibutef je kezaluk zonwoz fovul aw ter nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["ea9b4aa3-c8a2-52f9-87ba-b33f1b452a42","2ad8b880-5783-5919-bda2-46e8316f2d70"],"categories":[{"id":"ea9b4aa3-c8a2-52f9-87ba-b33f1b452a42","version":"e289f52e-a078-5581-a775-4c8435a534f0","appId":3,"name":"ApplicationCategory7","description":"Ci sovo ig ivebcag gif uk eztez ezofi jizrebi lafozu ehje daj noiw vajru modpoteh juizu.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"2ad8b880-5783-5919-bda2-46e8316f2d70","version":"c19f7a96-7634-5d1b-972d-99caa3e34a64","appId":1,"name":"ApplicationCategory12","description":"Ev zalapi hiwuhi peror lupu iv obalem gicobem vi bafuh ponij co hur linsis fukurod dehpupme.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["SERVER","WEBAPP"],"metadata":{"referenced":false},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"ce7eba4c-0b9a-5a3f-bb88-6ce71398fbc8","version":"epozikeccow","name":"UrlGroup1","description":"Kajili nockugda van cikepuh toavah kebpi muwnumo tezotu pelapdec sif fepgo hul sacwav na.","objects":[{"id":"d31c2d0e-3ad0-5053-9a7b-a0ef29eff5f9","version":"ajolouhog","name":"Url8","description":"Kirgirac rireto vu nimu kek bo dosoze tillen wisud kerecfar evibur wen cehpa weg ju doneh.","url":"http://de.co.uk/neni","type":"urlobject"},{"id":"d72bd5cf-710c-5048-b0fa-1bda6746520d","version":"onaisujuja","name":"Url3","description":"Nolze no gavrofkep dog di buc ta oko kon pigu fuezo uzara.","url":"http://gagonofi.edu/letiga","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlCategory":{"id":"e1088b47-43c6-509a-a722-763318471791","version":"53a76ab0-006b-5dd4-abc4-c0f9a0d58f50","name":"UrlCategory-13","deprecated":false,"urlCategoryId":13,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"intrusionPolicy":{"id":"a47cb8f5-fe55-11e4-8e99-ipsN40","name":"Maximum Detection","links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN40"},"rules":{"links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN40/rules/"}},"description":"Maximum Detection Layer","type":"intrusionpolicy","version":"124d1a7b-a1b4-5097-b6d4-5a399c5bdb68"},"filePolicy":{"id":"9c84889f-8c5c-5643-a489-d01bb07639a5","type":"filepolicy","policyType":"BLOCK_OFFICE_DOCUMENTS_PDF_UPLOAD_BLOCK_MALWARE_OTHERS","name":"File_Policy_3","description":"Mi rul etusisti iphogu acrevdid cas bijcaz nul ceaf napi kegpo su dozpov zikpul lohi gurukdi ke.","version":"d5e7c6d4-1f13-5cd2-9442-bdccd7e4b804"},"logFiles":false,"type":"accessrule"},{"id":"015d706e-7db2-5e7b-8d3f-b2ffbb7410b9","version":"3e45de38-bc9b-5346-80cb-c42ff03a67a0","ruleId":8,"name":"Access_Rule_8","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_BOTH","syslogServer":{"id":"8b2497cb-1dee-5d91-88e3-cf2ba71d6d57","version":"35ab6c5c-b8e4-5e24-b013-4ffd6ed479b6","host":"83.58.8.189","port":5897,"protocol":"UDP","useManagementInterface":true,"type":"syslogserver"},"sourceZones":[{"id":"8cb69a8f-7d8d-5f4e-9a4f-f6e717f833ed","name":"SecurityZone3Name","description":"Udanovja dupolo zurepi ufmu ah lezup ba ga jur duvorzu abevabji zil nuikihi wopuw.","version":"dd83a4d5-be23-51f8-9b73-2ae9e26f7d36","interfaces":[{"mtu":2652,"enabled":false,"description":"Efupaf nas ilureg zetikdav emki fafiv tihug orhid zimurfo naferal va ta ug za ur di zetsa ragizike.","name":"subinterface10name","id":"4307a6d5-0ef1-55d4-adc4-0461c31b7eb5","hardwareName":"SubInterface0/10.11","macAddress":"F617.A8F2.5DEB","monitorInterface":true,"standbyMacAddress":"0E24.391A.BFD9","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"c324:084e:8a04:523f:64ec:2b27:9f07:6a8d/32","ipAddress":"0faf:b8b8:7fbe:0d00:facd:c82d:f721:93dd/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"bc90:477f:99f9:ee80:1faa:1f0c:a2a6:77b7","ipAddress":"2d31:24c2:acd3:16b0:d1df:b4b6:763f:48c0"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"250.15.33.10","standbyIpAddress":"254.220.208.229"}},"version":"0f193aa1-ad09-52dd-98e8-eb32e2e61484","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}},{"id":"d2cf6df0-e095-59f1-9afe-4e1f95b290e7","name":"SecurityZone6Name","description":"Kivmeat sepfeheh jekacaloh awe wap vajan utiweb daczo ji ji pew wioha bawmivim ri kaj gibvevsa.","version":"5751e8ac-10c9-5b44-a9fa-1ed8e07d2d40","interfaces":[{"mtu":5818,"enabled":false,"description":"Jigiz malko navsup bojga widbihi vatel vahuwuta ugi bopuru duzwar zopi juinoito sibkonac fozgojmi toopu nurhiru ce joeho.","name":"inside","id":"bddde0e1-1b1f-5f42-b9b7-7c72d9099ef4","hardwareName":"GigabitEthernet1/1","macAddress":"ECFB.7E12.09E1","monitorInterface":true,"standbyMacAddress":"A09D.B513.9683","version":"69f9f38e-0479-58d1-961c-e4040d439200","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"PASSIVE","type":"physicalinterface"},{"mtu":2652,"enabled":true,"description":"Pipakaz ramkudu ulido ce boh ugmepku izareszeh katakuz vosinde takwa piprazipo fostoftug egjolut.","name":"subinterface3name","id":"4258612a-c6ac-5407-8edc-04b207b2b473","hardwareName":"SubInterface0/3.4","macAddress":"4A8E.2AFE.5DE9","monitorInterface":true,"standbyMacAddress":"F917.A989.864E","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"5b49:5a29:3cd4:5c83:7b30:0115:7927:eaf3/32","ipAddress":"a3eb:3b72:2cfa:9901:b7c7:1581:fa72:4b49/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"42e6:34b8:f5eb:802f:626b:503c:781e:aacd","ipAddress":"dcc0:3abc:3933:8a47:25c6:d9a7:2e80:06dc"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"137.234.118.13","standbyIpAddress":"67.162.53.251"}},"version":"2a53f3c3-fc6d-557c-bdbb-e97bc156553c","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"destinationZones":[{"id":"e960df5e-1ab8-5a15-85e5-a7a47f0ebcb0","name":"SecurityZone5Name","description":"Kinen aziheeci teniow ucezaw idikaki rupbu tieb rawihzec ufkedok iwewun le zihpisze vuzip roetjim fokbuwu jemrumvu cigzet.","version":"0925128c-48f1-552e-8507-379551253d9c","interfaces":[{"mtu":2652,"enabled":true,"description":"Hi vihjuup vueji zufmab wib zel woz ligok wu hi iremouto wahoato.","name":"subinterface5name","id":"9f816351-560c-5e5b-ba0a-2051828301e6","hardwareName":"SubInterface0/5.6","macAddress":"84F0.8C6A.D6DF","monitorInterface":true,"standbyMacAddress":"0971.695D.7024","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"e20a:2b14:aecc:7997:984d:9fcd:b3c4:2e66/32","ipAddress":"5753:596d:3c86:ab69:1e26:fa83:c032:8e71/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"44d8:5ccd:bbcd:60df:d35b:afb7:6211:375b","ipAddress":"7b7c:0b52:9938:5274:ef02:b8c5:577c:5028"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"119.148.92.111","standbyIpAddress":"106.21.74.31"}},"version":"7a7c4c69-3da2-5e43-a1f3-2f8026bfb0bd","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"sourceNetworks":[{"id":"25837b53-40d7-599f-9a1e-0a5391f2662e","name":"Network1","description":"Ser ahpi penul nuszil ojsuvo zavlatha junez afuhi soewuteh ha larhoose lijuto ruhi za murmurgu eznehfa nejag piv.","version":"0761c298-1c3c-5537-971c-17934322192b","type":"networkobject","subType":"HOST","value":"f92d:3cda:6fb3:7e4b:db95:8984:e616:928e","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"6f55bc7e-79ee-5271-b299-5eb7db9ece0e","name":"Network14","description":"Naduk tuto zatuli pedufu dowkol gapcetod ehukevnem oszi numudol ubibi pufhubfu ripsitfu.","version":"3ab046cd-f4be-55d8-af7a-7a84bc3f7716","type":"networkobject","subType":"HOST","value":"111.31.129.11","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"09d97c3e-0824-5e9d-bee8-28ea311458a5","name":"Geolocation4","description":"Detriwwot uwaan sa ta pohvab ako fi owe apefi ocde mok alcob.","version":"b599df3c-38d1-523e-9bc6-2d82e76d48ff","type":"geolocation","locations":[{"id":"18cbe485-d646-5aad-827e-13ec090dd450","name":"Europe","deprecated":false,"code":1005,"type":"continent","countries":[{"id":"a0d47a89-de9b-5f06-b5f2-b903320ecf26","name":"Kosovo","deprecated":true,"iso3":"XKX","iso2":"XK","code":"0","type":"country"},{"id":"0613c448-b6b0-55f9-9ab0-81470a794905","name":"Vatican City","deprecated":false,"iso3":"VAT","iso2":"VA","code":"336","type":"country"},{"id":"90c38868-27c0-5de2-a580-630b08b64406","name":"Ukraine","deprecated":false,"iso3":"UKR","iso2":"UA","code":"804","type":"country"},{"id":"e8b65d12-13e5-53b5-abe4-3c833e412440","name":"San Marino","deprecated":true,"iso3":"SMR","iso2":"SM","code":"674","type":"country"},{"id":"cbe10064-72a0-5b1a-813f-0d684567cb07","name":"Slovakia","deprecated":true,"iso3":"SVK","iso2":"SK","code":"703","type":"country"},{"id":"ce221115-d595-50d6-bd2f-fe0429b27b04","name":"Svalbard and Jan Mayen","deprecated":false,"iso3":"SJM","iso2":"SJ","code":"744","type":"country"},{"id":"9401a437-ee7e-51a8-bcc0-7623f8193dac","name":"Slovenia","deprecated":true,"iso3":"SVN","iso2":"SI","code":"705","type":"country"},{"id":"d4901422-c6fd-5ef4-bf4e-09d2074b34dc","name":"Sweden","deprecated":true,"iso3":"SWE","iso2":"SE","code":"752","type":"country"},{"id":"5f22f339-f1a0-5a70-9254-5dd0dad4d243","name":"Russia","deprecated":false,"iso3":"RUS","iso2":"RU","code":"643","type":"country"},{"id":"3a771763-9c5d-580f-9fc5-df41e7355def","name":"Serbia","deprecated":false,"iso3":"SRB","iso2":"RS","code":"688","type":"country"},{"id":"74759e4d-8901-5302-89b7-384fa438a9d2","name":"Romania","deprecated":true,"iso3":"ROU","iso2":"RO","code":"642","type":"country"},{"id":"58579a6d-8542-5c18-8ecb-4d54f527c8e5","name":"Portugal","deprecated":false,"iso3":"PRT","iso2":"PT","code":"620","type":"country"},{"id":"c095aa5d-350d-5db8-9d01-0a106f93c3a5","name":"Poland","deprecated":true,"iso3":"POL","iso2":"PL","code":"616","type":"country"},{"id":"02fa0428-9885-58ba-9fc1-9cc2cb30f0cb","name":"Norway","deprecated":true,"iso3":"NOR","iso2":"NO","code":"578","type":"country"},{"id":"39923980-c4f7-5dda-890c-ab8c290a5be5","name":"Netherlands","deprecated":false,"iso3":"NLD","iso2":"NL","code":"528","type":"country"},{"id":"aaad1a9f-fd04-5427-aea9-6a2216f61efe","name":"Malta","deprecated":false,"iso3":"MLT","iso2":"MT","code":"470","type":"country"},{"id":"ef8d2943-7ddf-57a6-8543-563cc13ebf4e","name":"Macedonia","deprecated":true,"iso3":"MKD","iso2":"MK","code":"807","type":"country"},{"id":"779cdf72-27d4-5e41-b81c-8ea5ef53f01a","name":"Montenegro","deprecated":false,"iso3":"MNE","iso2":"ME","code":"499","type":"country"},{"id":"8ecb3dd6-0cc2-5bac-b21d-83f1e3fbc848","name":"Moldova","deprecated":true,"iso3":"MDA","iso2":"MD","code":"498","type":"country"},{"id":"e0400095-a311-5b38-92e1-d635e6a1f938","name":"Monaco","deprecated":false,"iso3":"MCO","iso2":"MC","code":"492","type":"country"},{"id":"4e696592-960a-51d9-9078-985330e3feb1","name":"Latvia","deprecated":true,"iso3":"LVA","iso2":"LV","code":"428","type":"country"},{"id":"bb1fe9b8-9f49-56fe-9278-4cc73152f780","name":"Luxembourg","deprecated":true,"iso3":"LUX","iso2":"LU","code":"442","type":"country"},{"id":"76d4e398-d6e2-5f4f-ba11-d01a828f883d","name":"Lithuania","deprecated":true,"iso3":"LTU","iso2":"LT","code":"440","type":"country"},{"id":"059ecc8f-4828-5c94-a589-534028509f02","name":"Liechtenstein","deprecated":true,"iso3":"LIE","iso2":"LI","code":"438","type":"country"},{"id":"73f3b217-148d-5d48-a652-495178f5a046","name":"Jersey","deprecated":true,"iso3":"JEY","iso2":"JE","code":"832","type":"country"},{"id":"3e0ee5a1-a07b-52c0-b62c-a470c4269802","name":"Italy","deprecated":false,"iso3":"ITA","iso2":"IT","code":"380","type":"country"},{"id":"0a95f5f3-ed92-5adb-9e53-3a1d516b33f1","name":"Iceland","deprecated":true,"iso3":"ISL","iso2":"IS","code":"352","type":"country"},{"id":"968a378c-2885-5a3b-a0dc-160560765c7e","name":"Isle of Man","deprecated":true,"iso3":"IMN","iso2":"IM","code":"833","type":"country"},{"id":"cae04dab-514c-559a-94d5-b3930bcf5800","name":"Ireland","deprecated":false,"iso3":"IRL","iso2":"IE","code":"372","type":"country"},{"id":"bc5d918e-a2c8-508d-9a87-c990eeec6215","name":"Hungary","deprecated":true,"iso3":"HUN","iso2":"HU","code":"348","type":"country"},{"id":"4adcb40c-5d55-5860-97b6-ebac58830a04","name":"Croatia","deprecated":true,"iso3":"HRV","iso2":"HR","code":"191","type":"country"},{"id":"03330265-fe01-5435-899a-08042bc643b5","name":"Greece","deprecated":false,"iso3":"GRC","iso2":"GR","code":"300","type":"country"},{"id":"a3120da5-8f6f-5fdc-af6d-8ccac4e802b7","name":"Gibraltar","deprecated":true,"iso3":"GIB","iso2":"GI","code":"292","type":"country"},{"id":"7a31d958-157e-509d-bc9f-f52b45c85c6d","name":"Guernsey","deprecated":true,"iso3":"GGY","iso2":"GG","code":"831","type":"country"},{"id":"2fbb8b4c-cc35-5550-acef-bc53b5c0f0f4","name":"United Kingdom","deprecated":false,"iso3":"GBR","iso2":"GB","code":"826","type":"country"},{"id":"92e4bed7-5044-5b4f-8d3f-1239ff903965","name":"France","deprecated":true,"iso3":"FRA","iso2":"FR","code":"250","type":"country"},{"id":"5ee6b8ad-2c86-58d1-ac57-8db405e7dda8","name":"Faroe Islands","deprecated":true,"iso3":"FRO","iso2":"FO","code":"234","type":"country"},{"id":"a7a8cee7-9bad-5786-a874-6be00056cecd","name":"Finland","deprecated":true,"iso3":"FIN","iso2":"FI","code":"246","type":"country"},{"id":"1e9c9635-11bb-5544-8fab-27b6da86a545","name":"Spain","deprecated":true,"iso3":"ESP","iso2":"ES","code":"724","type":"country"},{"id":"355204ae-8c3e-5a96-8f23-3670fde3d26a","name":"Estonia","deprecated":true,"iso3":"EST","iso2":"EE","code":"233","type":"country"},{"id":"a7b4cd03-9dc0-572f-82ff-fef0153b4c8c","name":"Denmark","deprecated":true,"iso3":"DNK","iso2":"DK","code":"208","type":"country"},{"id":"004e74d4-cffc-599e-bd12-f4ac69a8a700","name":"Germany","deprecated":true,"iso3":"DEU","iso2":"DE","code":"276","type":"country"},{"id":"fbdea1d9-5ac4-53d0-be10-3220747421b8","name":"Czech Republic","deprecated":true,"iso3":"CZE","iso2":"CZ","code":"203","type":"country"},{"id":"d992dc09-5ab5-5126-a966-51dd89360213","name":"Cyprus","deprecated":false,"iso3":"CYP","iso2":"CY","code":"196","type":"country"},{"id":"eb716c3b-89e2-529c-a558-ca340a332486","name":"Switzerland","deprecated":true,"iso3":"CHE","iso2":"CH","code":"756","type":"country"},{"id":"089c406e-a4ff-52ae-9672-73a1bdf5a396","name":"Belarus","deprecated":true,"iso3":"BLR","iso2":"BY","code":"112","type":"country"},{"id":"3dfcd86f-2e29-59f7-9e44-27fe038c51a6","name":"Bulgaria","deprecated":false,"iso3":"BGR","iso2":"BG","code":"100","type":"country"},{"id":"8c299df7-5229-5596-963c-04cb2b46d34d","name":"Belgium","deprecated":true,"iso3":"BEL","iso2":"BE","code":"056","type":"country"},{"id":"fc99ebdb-5c82-5819-979d-d8f6310351af","name":"Bosnia and Herzegovina","deprecated":true,"iso3":"BIH","iso2":"BA","code":"070","type":"country"},{"id":"588e4f19-dfac-5134-98c1-c1cafee86399","name":"Åland","deprecated":false,"iso3":"ALA","iso2":"AX","code":"248","type":"country"},{"id":"67f08133-23b8-52ac-8436-41d77a2eebfb","name":"Austria","deprecated":false,"iso3":"AUT","iso2":"AT","code":"040","type":"country"},{"id":"28e90dfc-6bc0-556c-a014-d0dc49366442","name":"Albania","deprecated":true,"iso3":"ALB","iso2":"AL","code":"008","type":"country"}],"countryCodes":["0","336","804","674","703","744","705","752","643","688","642","620","616","578","528","470","807","499","498","492","428","442","440","438","832","380","352","833","372","348","191","300","292","831","826","250","234","246","724","233","208","276","203","196","756","112","100","056","070","248","040","008"]},{"id":"4343b55a-5fe8-567f-a099-f3d20b53a9cf","name":"Cook Islands","deprecated":true,"iso3":"COK","iso2":"CK","code":"184","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"},{"id":"c16f6991-a7d7-51dc-85d3-43752e0c5d10","name":"Suriname","deprecated":true,"iso3":"SUR","iso2":"SR","code":"740","type":"country"},{"id":"0b32f4f0-c8db-5011-ac99-73bfc4a31ecb","name":"Bonaire","deprecated":true,"iso3":"BES","iso2":"BQ","code":"535","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"}]}],"destinationNetworks":[{"id":"25837b53-40d7-599f-9a1e-0a5391f2662e","name":"Network1","description":"Ser ahpi penul nuszil ojsuvo zavlatha junez afuhi soewuteh ha larhoose lijuto ruhi za murmurgu eznehfa nejag piv.","version":"0761c298-1c3c-5537-971c-17934322192b","type":"networkobject","subType":"HOST","value":"f92d:3cda:6fb3:7e4b:db95:8984:e616:928e","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"6f55bc7e-79ee-5271-b299-5eb7db9ece0e","name":"Network14","description":"Naduk tuto zatuli pedufu dowkol gapcetod ehukevnem oszi numudol ubibi pufhubfu ripsitfu.","version":"3ab046cd-f4be-55d8-af7a-7a84bc3f7716","type":"networkobject","subType":"HOST","value":"111.31.129.11","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"09d97c3e-0824-5e9d-bee8-28ea311458a5","name":"Geolocation4","description":"Detriwwot uwaan sa ta pohvab ako fi owe apefi ocde mok alcob.","version":"b599df3c-38d1-523e-9bc6-2d82e76d48ff","type":"geolocation","locations":[{"id":"18cbe485-d646-5aad-827e-13ec090dd450","name":"Europe","deprecated":false,"code":1005,"type":"continent","countries":[{"id":"a0d47a89-de9b-5f06-b5f2-b903320ecf26","name":"Kosovo","deprecated":true,"iso3":"XKX","iso2":"XK","code":"0","type":"country"},{"id":"0613c448-b6b0-55f9-9ab0-81470a794905","name":"Vatican City","deprecated":false,"iso3":"VAT","iso2":"VA","code":"336","type":"country"},{"id":"90c38868-27c0-5de2-a580-630b08b64406","name":"Ukraine","deprecated":false,"iso3":"UKR","iso2":"UA","code":"804","type":"country"},{"id":"e8b65d12-13e5-53b5-abe4-3c833e412440","name":"San Marino","deprecated":true,"iso3":"SMR","iso2":"SM","code":"674","type":"country"},{"id":"cbe10064-72a0-5b1a-813f-0d684567cb07","name":"Slovakia","deprecated":true,"iso3":"SVK","iso2":"SK","code":"703","type":"country"},{"id":"ce221115-d595-50d6-bd2f-fe0429b27b04","name":"Svalbard and Jan Mayen","deprecated":false,"iso3":"SJM","iso2":"SJ","code":"744","type":"country"},{"id":"9401a437-ee7e-51a8-bcc0-7623f8193dac","name":"Slovenia","deprecated":true,"iso3":"SVN","iso2":"SI","code":"705","type":"country"},{"id":"d4901422-c6fd-5ef4-bf4e-09d2074b34dc","name":"Sweden","deprecated":true,"iso3":"SWE","iso2":"SE","code":"752","type":"country"},{"id":"5f22f339-f1a0-5a70-9254-5dd0dad4d243","name":"Russia","deprecated":false,"iso3":"RUS","iso2":"RU","code":"643","type":"country"},{"id":"3a771763-9c5d-580f-9fc5-df41e7355def","name":"Serbia","deprecated":false,"iso3":"SRB","iso2":"RS","code":"688","type":"country"},{"id":"74759e4d-8901-5302-89b7-384fa438a9d2","name":"Romania","deprecated":true,"iso3":"ROU","iso2":"RO","code":"642","type":"country"},{"id":"58579a6d-8542-5c18-8ecb-4d54f527c8e5","name":"Portugal","deprecated":false,"iso3":"PRT","iso2":"PT","code":"620","type":"country"},{"id":"c095aa5d-350d-5db8-9d01-0a106f93c3a5","name":"Poland","deprecated":true,"iso3":"POL","iso2":"PL","code":"616","type":"country"},{"id":"02fa0428-9885-58ba-9fc1-9cc2cb30f0cb","name":"Norway","deprecated":true,"iso3":"NOR","iso2":"NO","code":"578","type":"country"},{"id":"39923980-c4f7-5dda-890c-ab8c290a5be5","name":"Netherlands","deprecated":false,"iso3":"NLD","iso2":"NL","code":"528","type":"country"},{"id":"aaad1a9f-fd04-5427-aea9-6a2216f61efe","name":"Malta","deprecated":false,"iso3":"MLT","iso2":"MT","code":"470","type":"country"},{"id":"ef8d2943-7ddf-57a6-8543-563cc13ebf4e","name":"Macedonia","deprecated":true,"iso3":"MKD","iso2":"MK","code":"807","type":"country"},{"id":"779cdf72-27d4-5e41-b81c-8ea5ef53f01a","name":"Montenegro","deprecated":false,"iso3":"MNE","iso2":"ME","code":"499","type":"country"},{"id":"8ecb3dd6-0cc2-5bac-b21d-83f1e3fbc848","name":"Moldova","deprecated":true,"iso3":"MDA","iso2":"MD","code":"498","type":"country"},{"id":"e0400095-a311-5b38-92e1-d635e6a1f938","name":"Monaco","deprecated":false,"iso3":"MCO","iso2":"MC","code":"492","type":"country"},{"id":"4e696592-960a-51d9-9078-985330e3feb1","name":"Latvia","deprecated":true,"iso3":"LVA","iso2":"LV","code":"428","type":"country"},{"id":"bb1fe9b8-9f49-56fe-9278-4cc73152f780","name":"Luxembourg","deprecated":true,"iso3":"LUX","iso2":"LU","code":"442","type":"country"},{"id":"76d4e398-d6e2-5f4f-ba11-d01a828f883d","name":"Lithuania","deprecated":true,"iso3":"LTU","iso2":"LT","code":"440","type":"country"},{"id":"059ecc8f-4828-5c94-a589-534028509f02","name":"Liechtenstein","deprecated":true,"iso3":"LIE","iso2":"LI","code":"438","type":"country"},{"id":"73f3b217-148d-5d48-a652-495178f5a046","name":"Jersey","deprecated":true,"iso3":"JEY","iso2":"JE","code":"832","type":"country"},{"id":"3e0ee5a1-a07b-52c0-b62c-a470c4269802","name":"Italy","deprecated":false,"iso3":"ITA","iso2":"IT","code":"380","type":"country"},{"id":"0a95f5f3-ed92-5adb-9e53-3a1d516b33f1","name":"Iceland","deprecated":true,"iso3":"ISL","iso2":"IS","code":"352","type":"country"},{"id":"968a378c-2885-5a3b-a0dc-160560765c7e","name":"Isle of Man","deprecated":true,"iso3":"IMN","iso2":"IM","code":"833","type":"country"},{"id":"cae04dab-514c-559a-94d5-b3930bcf5800","name":"Ireland","deprecated":false,"iso3":"IRL","iso2":"IE","code":"372","type":"country"},{"id":"bc5d918e-a2c8-508d-9a87-c990eeec6215","name":"Hungary","deprecated":true,"iso3":"HUN","iso2":"HU","code":"348","type":"country"},{"id":"4adcb40c-5d55-5860-97b6-ebac58830a04","name":"Croatia","deprecated":true,"iso3":"HRV","iso2":"HR","code":"191","type":"country"},{"id":"03330265-fe01-5435-899a-08042bc643b5","name":"Greece","deprecated":false,"iso3":"GRC","iso2":"GR","code":"300","type":"country"},{"id":"a3120da5-8f6f-5fdc-af6d-8ccac4e802b7","name":"Gibraltar","deprecated":true,"iso3":"GIB","iso2":"GI","code":"292","type":"country"},{"id":"7a31d958-157e-509d-bc9f-f52b45c85c6d","name":"Guernsey","deprecated":true,"iso3":"GGY","iso2":"GG","code":"831","type":"country"},{"id":"2fbb8b4c-cc35-5550-acef-bc53b5c0f0f4","name":"United Kingdom","deprecated":false,"iso3":"GBR","iso2":"GB","code":"826","type":"country"},{"id":"92e4bed7-5044-5b4f-8d3f-1239ff903965","name":"France","deprecated":true,"iso3":"FRA","iso2":"FR","code":"250","type":"country"},{"id":"5ee6b8ad-2c86-58d1-ac57-8db405e7dda8","name":"Faroe Islands","deprecated":true,"iso3":"FRO","iso2":"FO","code":"234","type":"country"},{"id":"a7a8cee7-9bad-5786-a874-6be00056cecd","name":"Finland","deprecated":true,"iso3":"FIN","iso2":"FI","code":"246","type":"country"},{"id":"1e9c9635-11bb-5544-8fab-27b6da86a545","name":"Spain","deprecated":true,"iso3":"ESP","iso2":"ES","code":"724","type":"country"},{"id":"355204ae-8c3e-5a96-8f23-3670fde3d26a","name":"Estonia","deprecated":true,"iso3":"EST","iso2":"EE","code":"233","type":"country"},{"id":"a7b4cd03-9dc0-572f-82ff-fef0153b4c8c","name":"Denmark","deprecated":true,"iso3":"DNK","iso2":"DK","code":"208","type":"country"},{"id":"004e74d4-cffc-599e-bd12-f4ac69a8a700","name":"Germany","deprecated":true,"iso3":"DEU","iso2":"DE","code":"276","type":"country"},{"id":"fbdea1d9-5ac4-53d0-be10-3220747421b8","name":"Czech Republic","deprecated":true,"iso3":"CZE","iso2":"CZ","code":"203","type":"country"},{"id":"d992dc09-5ab5-5126-a966-51dd89360213","name":"Cyprus","deprecated":false,"iso3":"CYP","iso2":"CY","code":"196","type":"country"},{"id":"eb716c3b-89e2-529c-a558-ca340a332486","name":"Switzerland","deprecated":true,"iso3":"CHE","iso2":"CH","code":"756","type":"country"},{"id":"089c406e-a4ff-52ae-9672-73a1bdf5a396","name":"Belarus","deprecated":true,"iso3":"BLR","iso2":"BY","code":"112","type":"country"},{"id":"3dfcd86f-2e29-59f7-9e44-27fe038c51a6","name":"Bulgaria","deprecated":false,"iso3":"BGR","iso2":"BG","code":"100","type":"country"},{"id":"8c299df7-5229-5596-963c-04cb2b46d34d","name":"Belgium","deprecated":true,"iso3":"BEL","iso2":"BE","code":"056","type":"country"},{"id":"fc99ebdb-5c82-5819-979d-d8f6310351af","name":"Bosnia and Herzegovina","deprecated":true,"iso3":"BIH","iso2":"BA","code":"070","type":"country"},{"id":"588e4f19-dfac-5134-98c1-c1cafee86399","name":"Åland","deprecated":false,"iso3":"ALA","iso2":"AX","code":"248","type":"country"},{"id":"67f08133-23b8-52ac-8436-41d77a2eebfb","name":"Austria","deprecated":false,"iso3":"AUT","iso2":"AT","code":"040","type":"country"},{"id":"28e90dfc-6bc0-556c-a014-d0dc49366442","name":"Albania","deprecated":true,"iso3":"ALB","iso2":"AL","code":"008","type":"country"}],"countryCodes":["0","336","804","674","703","744","705","752","643","688","642","620","616","578","528","470","807","499","498","492","428","442","440","438","832","380","352","833","372","348","191","300","292","831","826","250","234","246","724","233","208","276","203","196","756","112","100","056","070","248","040","008"]},{"id":"4343b55a-5fe8-567f-a099-f3d20b53a9cf","name":"Cook Islands","deprecated":true,"iso3":"COK","iso2":"CK","code":"184","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"},{"id":"c16f6991-a7d7-51dc-85d3-43752e0c5d10","name":"Suriname","deprecated":true,"iso3":"SUR","iso2":"SR","code":"740","type":"country"},{"id":"0b32f4f0-c8db-5011-ac99-73bfc4a31ecb","name":"Bonaire","deprecated":true,"iso3":"BES","iso2":"BQ","code":"535","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"}]}],"sourcePorts":[{"id":"5e4d4b4d-706c-5325-b034-896d42bf9087","name":"udp_port_1","description":"Rupkoedo zuv egodid ca buapesug tu mawaduh etaeha pigfa keh it bozute wovi zijuci poscuren ifohhe.","version":"db631abc-32a3-5ca5-8ae5-a3b6f3c8371a","type":"udpportobject","port":8537,"isSystemDefined":true},{"id":"1a4f8032-f665-5045-b0d8-a48b339750d1","name":"tcp_port_2","description":"Ku soguzsi ragibi nupavidag faji kovor ikikov efa ha cozuju inietu daf hif iso.","version":"b6ff8844-fd46-5e03-9ca4-00b7bc8bd936","type":"tcpportobject","port":8189,"isSystemDefined":false}],"destinationPorts":[{"id":"b19e16f9-5846-596a-9757-161e7154e68c","name":"tcp_port_1","description":"Ruwus webwepfa fo copoko aligimaj riz zeti bivsu jah ve virip kesnenwer fi wede magbuf ojku sadruh ji.","version":"a90e8fa8-216a-59a4-bce1-da2f92acd1ad","type":"tcpportobject","port":8721,"isSystemDefined":true},{"id":"ff728962-8729-5bce-941c-1730e280dc0b","name":"icmpv6port1","description":"Uh letiof numsu bokewod gosso sowdilid bevliur idseaho vu delale luctid ila givcogev.","version":"9aca9371-12d1-5490-af24-a87e3160146f","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8452,"isSystemDefined":false}],"users":[{"id":"30d27489-6e16-5db3-a8b5-6571cfaa1b67","name":"User 30","realmName":"guhemtaip","type":"trafficuser","realmId":2,"version":"zudurotha"},{"id":"448736fd-bb0b-58e5-8e0f-0d4fe1b1823a","name":"User 25","realmName":"bomubnefwa","type":"trafficuser","realmId":2,"version":"afeapelopel"},{"id":"7145e63c-b952-5595-a3e0-b95cfd817553","name":"User 3","realmName":"owesizfani","type":"trafficuser","realmId":2,"version":"rilijzomu"}],"embeddedAppFilter":{"conditions":[{"filter":"baketfale","tags":[{"id":"0b45de63-5252-5257-acf6-ce494cdb905a","version":"9c3ed423-1b8a-5f1f-aae0-a507cc188490","appId":6,"name":"ApplicationTag6","description":"Varejse ji ogouvu rin nubuten bezozmaj coeg zuralse pa zitomgon lu rigugip.","metadata":{"referenced":true},"type":"applicationtag"}],"categories":[{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"HIGH"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"VERY_LOW"},{"type":"productivitycondition","productivity":"MEDIUM"},{"type":"productivitycondition","productivity":"LOW"}],"type":"applicationfiltercondition"},{"filter":"keludmubluf","tags":[{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"HIGH"}],"applicationTypes":[{"type":"typecondition","applicationType":"CLIENT"},{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"LOW"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"461cac69-03ff-5113-a215-4cdfaf8bd3f1","version":"c5c46d5e-163b-53e4-a12e-4ec6708cb4a7","name":"ApplicationFilter13","description":"Hi hug zad nolrepmum bil nuwbacora fa guhu ale ogve foksaruw cipzis zomdozun de is da uzifoma.","applications":[{"id":"368e2c4f-cce1-574d-b5ee-ab9d539cf248","version":"3ecf8402-8607-5fdc-a148-f5abddf84f0a","description":"Apeja libsul uweb osjoti ge uzu fal gob woletkew be tu hah ha wuvekohuz gacaw.","deprecated":true,"appId":4,"productivity":1,"risk":0,"name":"Application14","tagIds":["9b16dd72-476a-5ac0-8aeb-fbf6e1f45438"],"tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["5f0662ef-3382-5357-bf35-b9b7361aae44"],"categories":[{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["WEBAPP","SERVER"],"metadata":{"referenced":false},"type":"application"}],"conditions":[{"filter":"giasnovpe","tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"794d6605-f5d9-5f26-b11d-507eac471889","version":"20176f07-7d98-5dd7-8a17-de688ee66220","appId":1,"name":"ApplicationCategory3","description":"Woc ved ecu hin potalbib la uweerabof mato dewahmo avutji wose pujda tunoduz ucu ho zopusno lo mu.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"VERY_LOW"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"},{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":false},"type":"applicationfilter"}],"applications":[{"id":"f8c5fef0-916a-541e-9113-de4951dde18b","version":"c07380b4-d91f-5a9b-aed7-efbe152c2f6b","description":"Aloul gouwtu riguse luzmokfof somi ehroz esecegwaf fafal heeg ohban fi ijga.","deprecated":true,"appId":6,"productivity":1,"risk":3,"name":"Application6","tagIds":["63db3391-02c9-5d1b-b971-5a6427f4c9fe"],"tags":[{"id":"63db3391-02c9-5d1b-b971-5a6427f4c9fe","version":"95d07b80-ad97-50b0-a64b-b279d1420618","appId":5,"name":"ApplicationTag5","description":"Uwano ujeoska rootmaj kammovu ivitarpoh percuk oto bacema da onsevsej jovocoog ge gafed zakas ijwimuf.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["33552c21-0930-5bb5-8459-9b7608cda68e","794d6605-f5d9-5f26-b11d-507eac471889"],"categories":[{"id":"33552c21-0930-5bb5-8459-9b7608cda68e","version":"73578557-169e-5431-99f4-4a87fb56d57c","appId":4,"name":"ApplicationCategory9","description":"Tir upwul taf foj igonas mawejus ba ni loj racwu pu nelkal gofifun zemcuz ut.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"794d6605-f5d9-5f26-b11d-507eac471889","version":"20176f07-7d98-5dd7-8a17-de688ee66220","appId":1,"name":"ApplicationCategory3","description":"Woc ved ecu hin potalbib la uweerabof mato dewahmo avutji wose pujda tunoduz ucu ho zopusno lo mu.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["WEBAPP"],"metadata":{"referenced":false},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"23704998-7a6e-5a13-9b62-897a0ed5815b","version":"bikwemafa","name":"UrlGroup4","description":"Gaf abme waves bojda asola kud te jig rag zansojer mez okuji ojpo bom ta.","objects":[{"id":"ab75ba7b-b6c8-57f8-b62b-85a6e1047423","version":"mulmevkavvof","name":"Url13","description":"Gowop ranuhnif awronso ajado ozfu sov digmec tu mafhutid sum ca gelo.","url":"http://gar.io/pahum","type":"urlobject"},{"id":"8c8ec923-9d7c-59f2-8d13-7db0e9d0fc55","version":"inkitfovat","name":"Url1","description":"Cukji verwe wafit hada sirivza uso awba mezjaje gi bavtiim satudu cevonlem nugocok ibnaar zasado.","url":"http://geta.org/ozmeg","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlReputation":{"id":"d8b59166-b6ce-5232-a41d-e67269d63bc7","name":"Suspicious sites","index":4,"startPercentage":21,"endPercentage":40,"version":"cf849fee-4718-503d-bccb-a9e5c26d78b6","type":"urlreputation"},"urlCategory":{"id":"3a94fe91-baa1-5666-a509-a616e42f8f66","version":"d7d497cd-7431-59ca-be9a-bff06b1aec95","name":"UrlCategory-5","deprecated":false,"urlCategoryId":5,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"intrusionPolicy":{"id":"a47cb8f5-fe55-11e4-8e99-ipsN40","name":"Maximum Detection","links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN40"},"rules":{"links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN40/rules/"}},"description":"Maximum Detection Layer","type":"intrusionpolicy","version":"124d1a7b-a1b4-5097-b6d4-5a399c5bdb68"},"logFiles":false,"type":"accessrule"},{"id":"0c8e712c-ef86-54d2-be1a-304763da00f1","version":"3e4ea5b5-c286-5cb3-8a4a-0db0dcd39349","ruleId":9,"name":"Access_Rule_9","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_BOTH","syslogServer":{"id":"232c98bc-4d2b-5660-a387-becfdb0a182e","version":"a39bfe87-a20f-5ce8-87ba-ef6e3fb0d749","host":"150.96.13.71","port":5897,"deviceInterface":{"mtu":5818,"enabled":true,"description":"Dib wohomfa it firasugu joev ge nu dab caejuja ba no owezru rijbofnuv da ren.","name":"outside","id":"056580af-b7b5-5ea4-9434-84acde7b7b2b","hardwareName":"GigabitEthernet1/2","macAddress":"B807.AD9D.0E4C","monitorInterface":false,"standbyMacAddress":"8F66.A03C.5C85","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"398d:4979:fd8c:5c79:130d:af73:39ac:575b/32","ipAddress":"0e08:b1ea:5a22:75ba:8e01:eaed:3442:684c/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"264c:f9d4:85a8:fdee:b56d:4b03:96d7:6285","ipAddress":"d0f4:3235:0882:22a2:f8c8:c2db:683c:9639"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"178.90.249.165","standbyIpAddress":"41.101.191.177"}},"version":"53c69bde-efdf-5307-96bb-1d0c92bec9a5","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"PASSIVE","type":"physicalinterface"},"protocol":"TCP","useManagementInterface":false,"type":"syslogserver"},"sourceZones":[{"id":"d2cf6df0-e095-59f1-9afe-4e1f95b290e7","name":"SecurityZone6Name","description":"Kivmeat sepfeheh jekacaloh awe wap vajan utiweb daczo ji ji pew wioha bawmivim ri kaj gibvevsa.","version":"5751e8ac-10c9-5b44-a9fa-1ed8e07d2d40","interfaces":[{"mtu":5818,"enabled":false,"description":"Jigiz malko navsup bojga widbihi vatel vahuwuta ugi bopuru duzwar zopi juinoito sibkonac fozgojmi toopu nurhiru ce joeho.","name":"inside","id":"bddde0e1-1b1f-5f42-b9b7-7c72d9099ef4","hardwareName":"GigabitEthernet1/1","macAddress":"ECFB.7E12.09E1","monitorInterface":true,"standbyMacAddress":"A09D.B513.9683","version":"69f9f38e-0479-58d1-961c-e4040d439200","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"PASSIVE","type":"physicalinterface"},{"mtu":2652,"enabled":true,"description":"Pipakaz ramkudu ulido ce boh ugmepku izareszeh katakuz vosinde takwa piprazipo fostoftug egjolut.","name":"subinterface3name","id":"4258612a-c6ac-5407-8edc-04b207b2b473","hardwareName":"SubInterface0/3.4","macAddress":"4A8E.2AFE.5DE9","monitorInterface":true,"standbyMacAddress":"F917.A989.864E","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"5b49:5a29:3cd4:5c83:7b30:0115:7927:eaf3/32","ipAddress":"a3eb:3b72:2cfa:9901:b7c7:1581:fa72:4b49/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"42e6:34b8:f5eb:802f:626b:503c:781e:aacd","ipAddress":"dcc0:3abc:3933:8a47:25c6:d9a7:2e80:06dc"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"137.234.118.13","standbyIpAddress":"67.162.53.251"}},"version":"2a53f3c3-fc6d-557c-bdbb-e97bc156553c","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}},{"id":"a3e7f3ef-3d09-5365-9a73-229ded43ba48","name":"SecurityZone15Name","description":"Wofa mukko zugal efamosaj ape vurugepa memepi woutod lu ergifde ceini den pegvuni ja.","version":"e721fda0-83ce-51b6-a003-bedfe42bb5db","interfaces":[{"mtu":2652,"enabled":false,"description":"Bo afri kewbiezu atda okpibmim faelaja jip tu ena oc pek mu piwnehsab puspon nuuja ziwelnak ilwu teew.","name":"subinterface9name","id":"a54e4784-eafc-5bc4-bfa1-985dd51ea923","hardwareName":"SubInterface0/9.10","macAddress":"A82E.76DF.F146","monitorInterface":false,"standbyMacAddress":"11D9.182D.C518","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"4f09:724e:c874:a60e:ff7c:0374:170f:cacf/32","ipAddress":"4313:8aa3:d274:f439:ea48:c8c7:c19b:22e2/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"0484:520a:88d4:9a88:6e95:64c9:65b9:f83b","ipAddress":"4ad5:881b:7ff6:552a:b882:7de7:21fc:972d"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"0.192.1.63","standbyIpAddress":"195.235.84.107"}},"version":"877f9f31-9402-5eaa-b18c-9333e068e73e","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}}],"destinationZones":[{"id":"e12d0a2e-afc7-53cb-85e7-38aa135de327","name":"SecurityZone13Name","description":"Do tewuznas ucait mad ziwgef iw unjup guzov dize guzut vibuk anpekpib nerviw ip ijpa koruf.","version":"09dc0dd3-4a94-5cf2-9efb-89a0f352e003","interfaces":[{"mtu":2652,"enabled":true,"description":"Agi pobjotu zukac rive putsi herima mepues ezijo wicimub utjamoj noskavup wupoje ra dujipale.","name":"subinterface2name","id":"353dee59-d2b6-5df6-9b8e-4f444b489176","hardwareName":"SubInterface0/2.3","macAddress":"EDB8.12E9.D2DB","monitorInterface":false,"standbyMacAddress":"5667.5103.F034","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"2647:2aea:3fdf:b4cc:6433:554a:6ab5:c594/32","ipAddress":"04f0:7320:ae63:ce9f:664b:c7e3:8867:daa9/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"3d77:5e5d:78ec:d370:2293:4026:1bbb:aee3","ipAddress":"e6eb:6fef:da47:e1c1:1523:464b:1cab:92a1"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"96.88.118.226","standbyIpAddress":"17.135.120.105"}},"version":"82ce2f08-42bf-5b19-bbbb-0c4ef276caa0","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"sourceNetworks":[{"id":"8dabc86d-1558-5a56-8c32-bc388b6a93f3","name":"Network13","description":"Dojba epfaw rew reltuzaw vaifjen wilida kepsu gadcukam rewog ojudu to siokwig jakel.","version":"81a1cfa9-9bdf-5ac8-98e5-299f203d4289","type":"networkobject","subType":"HOST","value":"b4f1:f88e:09b6:827b:d85f:dbf9:751b:dc45","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"6f55bc7e-79ee-5271-b299-5eb7db9ece0e","name":"Network14","description":"Naduk tuto zatuli pedufu dowkol gapcetod ehukevnem oszi numudol ubibi pufhubfu ripsitfu.","version":"3ab046cd-f4be-55d8-af7a-7a84bc3f7716","type":"networkobject","subType":"HOST","value":"111.31.129.11","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"912f3e58-ef04-5c3d-bbb9-7e9f2dd84ba3","name":"Geolocation3","description":"Kig zesa kutne wiwurmo rulzu mowisuwo omoecce lenurac ukpe huh vehot zedohe.","version":"c89fbe8c-4751-5e39-9901-8630baec0e53","type":"geolocation","locations":[{"id":"58c1b14d-e032-5b9c-a581-a5c8857e2260","name":"North America","deprecated":true,"code":1002,"type":"continent","countries":[{"id":"2ba895c9-9f2b-5182-95b9-59306b13ebc4","name":"U.S. Virgin Islands","deprecated":true,"iso3":"VIR","iso2":"VI","code":"850","type":"country"},{"id":"e6bb9c77-a955-5f2b-ac2d-9082a5160f71","name":"British Virgin Islands","deprecated":true,"iso3":"VGB","iso2":"VG","code":"092","type":"country"},{"id":"b3735b95-7d83-5ed3-916e-3379993398f6","name":"Saint Vincent and the Grenadines","deprecated":false,"iso3":"VCT","iso2":"VC","code":"670","type":"country"},{"id":"816c5c8f-f624-561e-99f1-1a26d826a4f3","name":"United States","deprecated":true,"iso3":"USA","iso2":"US","code":"840","type":"country"},{"id":"3fefff2b-d89c-55b1-8cbc-3ef1a65be130","name":"Trinidad and Tobago","deprecated":true,"iso3":"TTO","iso2":"TT","code":"780","type":"country"},{"id":"3589f9a6-a7c1-5332-a139-3f9595fdfd28","name":"Turks and Caicos Islands","deprecated":true,"iso3":"TCA","iso2":"TC","code":"796","type":"country"},{"id":"76d9fd77-8fb0-5b69-a7b9-5ceae0c32261","name":"Sint Maarten","deprecated":false,"iso3":"SXM","iso2":"SX","code":"534","type":"country"},{"id":"85d297a7-310d-59f0-a0ca-ebf303a096cc","name":"El Salvador","deprecated":true,"iso3":"SLV","iso2":"SV","code":"222","type":"country"},{"id":"fa707d6d-a72f-5469-985d-5173dbe32666","name":"Puerto Rico","deprecated":false,"iso3":"PRI","iso2":"PR","code":"630","type":"country"},{"id":"93eb0baf-8f56-5cb2-8282-ab1ad5e85c10","name":"Saint Pierre and Miquelon","deprecated":false,"iso3":"SPM","iso2":"PM","code":"666","type":"country"},{"id":"8701b229-f2cb-5873-9ad8-d4f15407cd99","name":"Panama","deprecated":true,"iso3":"PAN","iso2":"PA","code":"591","type":"country"},{"id":"f9fcc680-cfb6-5541-9a22-5d708e664cd7","name":"Nicaragua","deprecated":true,"iso3":"NIC","iso2":"NI","code":"558","type":"country"},{"id":"2acf54f9-dcef-583a-b011-1ade5b0c8337","name":"Mexico","deprecated":false,"iso3":"MEX","iso2":"MX","code":"484","type":"country"},{"id":"d8b849e3-61d8-5e6b-9616-e84333164d82","name":"Montserrat","deprecated":false,"iso3":"MSR","iso2":"MS","code":"500","type":"country"},{"id":"00bdfb06-2438-5d19-ab21-536be76831df","name":"Martinique","deprecated":false,"iso3":"MTQ","iso2":"MQ","code":"474","type":"country"},{"id":"e41f17d8-47ba-5889-a3f9-757a2d6dbf53","name":"Saint Martin","deprecated":true,"iso3":"MAF","iso2":"MF","code":"663","type":"country"},{"id":"d6056e12-c9d7-52e1-affd-5e54f743c415","name":"Saint Lucia","deprecated":false,"iso3":"LCA","iso2":"LC","code":"662","type":"country"},{"id":"5e6b0423-d9b1-5c70-b1fc-c35c581af83a","name":"Cayman Islands","deprecated":true,"iso3":"CYM","iso2":"KY","code":"136","type":"country"},{"id":"d86293d3-8d1d-59bd-8b48-16fb532231d9","name":"Saint Kitts and Nevis","deprecated":true,"iso3":"KNA","iso2":"KN","code":"659","type":"country"},{"id":"5ca89c40-c558-55ae-b606-c4a7c84900d0","name":"Jamaica","deprecated":true,"iso3":"JAM","iso2":"JM","code":"388","type":"country"},{"id":"d8fbf1b8-0581-5bf5-a03d-ca9382c3a25f","name":"Haiti","deprecated":true,"iso3":"HTI","iso2":"HT","code":"332","type":"country"},{"id":"d42e37aa-8ab2-5cee-be19-f8bc7123029e","name":"Honduras","deprecated":false,"iso3":"HND","iso2":"HN","code":"340","type":"country"},{"id":"deb2c3f7-7c6e-5fae-859a-d19da6b88bf7","name":"Guatemala","deprecated":false,"iso3":"GTM","iso2":"GT","code":"320","type":"country"},{"id":"1339e3d7-5dbf-59d5-9dc4-0c9928509839","name":"Guadeloupe","deprecated":true,"iso3":"GLP","iso2":"GP","code":"312","type":"country"},{"id":"f1ef7a41-03d9-5725-a34c-e7dce349dc68","name":"Greenland","deprecated":true,"iso3":"GRL","iso2":"GL","code":"304","type":"country"},{"id":"627efa23-c14e-5fc0-b2d2-a197986eaa58","name":"Grenada","deprecated":true,"iso3":"GRD","iso2":"GD","code":"308","type":"country"},{"id":"2cef5772-f72d-5ca9-bd72-de4bda8da061","name":"Dominican Republic","deprecated":false,"iso3":"DOM","iso2":"DO","code":"214","type":"country"},{"id":"4ecd121e-af06-5def-a17d-5aeb58e5834b","name":"Dominica","deprecated":true,"iso3":"DMA","iso2":"DM","code":"212","type":"country"},{"id":"57110fb6-aee4-50cf-a1ad-e8e3cf723b03","name":"Curacao","deprecated":false,"iso3":"CUW","iso2":"CW","code":"531","type":"country"},{"id":"473581e5-1b39-5d06-a56c-44a01298ba3d","name":"Cuba","deprecated":false,"iso3":"CUB","iso2":"CU","code":"192","type":"country"},{"id":"6b162de0-602e-5a7d-a241-50ccdb10c3ea","name":"Costa Rica","deprecated":true,"iso3":"CRI","iso2":"CR","code":"188","type":"country"},{"id":"338c3d83-e4bb-5c7e-854a-5370a23c9b06","name":"Canada","deprecated":true,"iso3":"CAN","iso2":"CA","code":"124","type":"country"},{"id":"32ee65e9-d6c1-5d5b-95a4-83dd798ab6fc","name":"Belize","deprecated":true,"iso3":"BLZ","iso2":"BZ","code":"084","type":"country"},{"id":"e37aa05a-1414-5366-abdd-eae7482267de","name":"Bahamas","deprecated":false,"iso3":"BHS","iso2":"BS","code":"044","type":"country"},{"id":"0b32f4f0-c8db-5011-ac99-73bfc4a31ecb","name":"Bonaire","deprecated":true,"iso3":"BES","iso2":"BQ","code":"535","type":"country"},{"id":"8fc88712-b063-55fa-adf9-7d1090098ca4","name":"Bermuda","deprecated":false,"iso3":"BMU","iso2":"BM","code":"060","type":"country"},{"id":"830ae2eb-65f0-56f2-8823-e293c1b6f086","name":"Saint Barthélemy","deprecated":true,"iso3":"BLM","iso2":"BL","code":"652","type":"country"},{"id":"9cd8a90c-1915-51dc-978b-b35c591d11c0","name":"Barbados","deprecated":false,"iso3":"BRB","iso2":"BB","code":"052","type":"country"},{"id":"a91f1f86-8c52-569f-9244-f914a4438731","name":"Aruba","deprecated":true,"iso3":"ABW","iso2":"AW","code":"533","type":"country"},{"id":"50d84fbd-fb07-51a0-ad92-be08d1dd5471","name":"Anguilla","deprecated":true,"iso3":"AIA","iso2":"AI","code":"660","type":"country"},{"id":"2494c782-b35f-5a88-8313-4eda120aa623","name":"Antigua and Barbuda","deprecated":false,"iso3":"ATG","iso2":"AG","code":"028","type":"country"}],"countryCodes":["850","092","670","840","780","796","534","222","630","666","591","558","484","500","474","663","662","136","659","388","332","340","320","312","304","308","214","212","531","192","188","124","084","044","535","060","652","052","533","660","028"]},{"id":"d6f6aa91-7e0d-5137-abbf-328cc779888c","name":"Antarctica","deprecated":true,"code":1004,"type":"continent","countries":[{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"3358686b-4139-5062-b3a1-e838d19918cf","name":"Heard Island and McDonald Islands","deprecated":true,"iso3":"HMD","iso2":"HM","code":"334","type":"country"},{"id":"ba4897cd-087a-5292-b1be-d3a00a7f26bb","name":"South Georgia and the South Sandwich Islands","deprecated":true,"iso3":"SGS","iso2":"GS","code":"239","type":"country"},{"id":"fa4cea3e-1888-5481-9934-8f815bc26857","name":"Bouvet Island","deprecated":true,"iso3":"BVT","iso2":"BV","code":"074","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"}],"countryCodes":["260","334","239","074","010"]},{"id":"65295b82-c8fc-5b50-9e20-e8a1ea9c3439","name":"Nauru","deprecated":true,"iso3":"NRU","iso2":"NR","code":"520","type":"country"},{"id":"a0d47a89-de9b-5f06-b5f2-b903320ecf26","name":"Kosovo","deprecated":true,"iso3":"XKX","iso2":"XK","code":"0","type":"country"},{"id":"1bb5225e-e880-5bc6-b4b5-373e05ab4ebf","name":"Colombia","deprecated":false,"iso3":"COL","iso2":"CO","code":"170","type":"country"},{"id":"c6218172-7179-5f37-9302-48a0ac1e3082","name":"Angola","deprecated":true,"iso3":"AGO","iso2":"AO","code":"024","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"}]}],"destinationNetworks":[{"id":"8dabc86d-1558-5a56-8c32-bc388b6a93f3","name":"Network13","description":"Dojba epfaw rew reltuzaw vaifjen wilida kepsu gadcukam rewog ojudu to siokwig jakel.","version":"81a1cfa9-9bdf-5ac8-98e5-299f203d4289","type":"networkobject","subType":"HOST","value":"b4f1:f88e:09b6:827b:d85f:dbf9:751b:dc45","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"6f55bc7e-79ee-5271-b299-5eb7db9ece0e","name":"Network14","description":"Naduk tuto zatuli pedufu dowkol gapcetod ehukevnem oszi numudol ubibi pufhubfu ripsitfu.","version":"3ab046cd-f4be-55d8-af7a-7a84bc3f7716","type":"networkobject","subType":"HOST","value":"111.31.129.11","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"912f3e58-ef04-5c3d-bbb9-7e9f2dd84ba3","name":"Geolocation3","description":"Kig zesa kutne wiwurmo rulzu mowisuwo omoecce lenurac ukpe huh vehot zedohe.","version":"c89fbe8c-4751-5e39-9901-8630baec0e53","type":"geolocation","locations":[{"id":"58c1b14d-e032-5b9c-a581-a5c8857e2260","name":"North America","deprecated":true,"code":1002,"type":"continent","countries":[{"id":"2ba895c9-9f2b-5182-95b9-59306b13ebc4","name":"U.S. Virgin Islands","deprecated":true,"iso3":"VIR","iso2":"VI","code":"850","type":"country"},{"id":"e6bb9c77-a955-5f2b-ac2d-9082a5160f71","name":"British Virgin Islands","deprecated":true,"iso3":"VGB","iso2":"VG","code":"092","type":"country"},{"id":"b3735b95-7d83-5ed3-916e-3379993398f6","name":"Saint Vincent and the Grenadines","deprecated":false,"iso3":"VCT","iso2":"VC","code":"670","type":"country"},{"id":"816c5c8f-f624-561e-99f1-1a26d826a4f3","name":"United States","deprecated":true,"iso3":"USA","iso2":"US","code":"840","type":"country"},{"id":"3fefff2b-d89c-55b1-8cbc-3ef1a65be130","name":"Trinidad and Tobago","deprecated":true,"iso3":"TTO","iso2":"TT","code":"780","type":"country"},{"id":"3589f9a6-a7c1-5332-a139-3f9595fdfd28","name":"Turks and Caicos Islands","deprecated":true,"iso3":"TCA","iso2":"TC","code":"796","type":"country"},{"id":"76d9fd77-8fb0-5b69-a7b9-5ceae0c32261","name":"Sint Maarten","deprecated":false,"iso3":"SXM","iso2":"SX","code":"534","type":"country"},{"id":"85d297a7-310d-59f0-a0ca-ebf303a096cc","name":"El Salvador","deprecated":true,"iso3":"SLV","iso2":"SV","code":"222","type":"country"},{"id":"fa707d6d-a72f-5469-985d-5173dbe32666","name":"Puerto Rico","deprecated":false,"iso3":"PRI","iso2":"PR","code":"630","type":"country"},{"id":"93eb0baf-8f56-5cb2-8282-ab1ad5e85c10","name":"Saint Pierre and Miquelon","deprecated":false,"iso3":"SPM","iso2":"PM","code":"666","type":"country"},{"id":"8701b229-f2cb-5873-9ad8-d4f15407cd99","name":"Panama","deprecated":true,"iso3":"PAN","iso2":"PA","code":"591","type":"country"},{"id":"f9fcc680-cfb6-5541-9a22-5d708e664cd7","name":"Nicaragua","deprecated":true,"iso3":"NIC","iso2":"NI","code":"558","type":"country"},{"id":"2acf54f9-dcef-583a-b011-1ade5b0c8337","name":"Mexico","deprecated":false,"iso3":"MEX","iso2":"MX","code":"484","type":"country"},{"id":"d8b849e3-61d8-5e6b-9616-e84333164d82","name":"Montserrat","deprecated":false,"iso3":"MSR","iso2":"MS","code":"500","type":"country"},{"id":"00bdfb06-2438-5d19-ab21-536be76831df","name":"Martinique","deprecated":false,"iso3":"MTQ","iso2":"MQ","code":"474","type":"country"},{"id":"e41f17d8-47ba-5889-a3f9-757a2d6dbf53","name":"Saint Martin","deprecated":true,"iso3":"MAF","iso2":"MF","code":"663","type":"country"},{"id":"d6056e12-c9d7-52e1-affd-5e54f743c415","name":"Saint Lucia","deprecated":false,"iso3":"LCA","iso2":"LC","code":"662","type":"country"},{"id":"5e6b0423-d9b1-5c70-b1fc-c35c581af83a","name":"Cayman Islands","deprecated":true,"iso3":"CYM","iso2":"KY","code":"136","type":"country"},{"id":"d86293d3-8d1d-59bd-8b48-16fb532231d9","name":"Saint Kitts and Nevis","deprecated":true,"iso3":"KNA","iso2":"KN","code":"659","type":"country"},{"id":"5ca89c40-c558-55ae-b606-c4a7c84900d0","name":"Jamaica","deprecated":true,"iso3":"JAM","iso2":"JM","code":"388","type":"country"},{"id":"d8fbf1b8-0581-5bf5-a03d-ca9382c3a25f","name":"Haiti","deprecated":true,"iso3":"HTI","iso2":"HT","code":"332","type":"country"},{"id":"d42e37aa-8ab2-5cee-be19-f8bc7123029e","name":"Honduras","deprecated":false,"iso3":"HND","iso2":"HN","code":"340","type":"country"},{"id":"deb2c3f7-7c6e-5fae-859a-d19da6b88bf7","name":"Guatemala","deprecated":false,"iso3":"GTM","iso2":"GT","code":"320","type":"country"},{"id":"1339e3d7-5dbf-59d5-9dc4-0c9928509839","name":"Guadeloupe","deprecated":true,"iso3":"GLP","iso2":"GP","code":"312","type":"country"},{"id":"f1ef7a41-03d9-5725-a34c-e7dce349dc68","name":"Greenland","deprecated":true,"iso3":"GRL","iso2":"GL","code":"304","type":"country"},{"id":"627efa23-c14e-5fc0-b2d2-a197986eaa58","name":"Grenada","deprecated":true,"iso3":"GRD","iso2":"GD","code":"308","type":"country"},{"id":"2cef5772-f72d-5ca9-bd72-de4bda8da061","name":"Dominican Republic","deprecated":false,"iso3":"DOM","iso2":"DO","code":"214","type":"country"},{"id":"4ecd121e-af06-5def-a17d-5aeb58e5834b","name":"Dominica","deprecated":true,"iso3":"DMA","iso2":"DM","code":"212","type":"country"},{"id":"57110fb6-aee4-50cf-a1ad-e8e3cf723b03","name":"Curacao","deprecated":false,"iso3":"CUW","iso2":"CW","code":"531","type":"country"},{"id":"473581e5-1b39-5d06-a56c-44a01298ba3d","name":"Cuba","deprecated":false,"iso3":"CUB","iso2":"CU","code":"192","type":"country"},{"id":"6b162de0-602e-5a7d-a241-50ccdb10c3ea","name":"Costa Rica","deprecated":true,"iso3":"CRI","iso2":"CR","code":"188","type":"country"},{"id":"338c3d83-e4bb-5c7e-854a-5370a23c9b06","name":"Canada","deprecated":true,"iso3":"CAN","iso2":"CA","code":"124","type":"country"},{"id":"32ee65e9-d6c1-5d5b-95a4-83dd798ab6fc","name":"Belize","deprecated":true,"iso3":"BLZ","iso2":"BZ","code":"084","type":"country"},{"id":"e37aa05a-1414-5366-abdd-eae7482267de","name":"Bahamas","deprecated":false,"iso3":"BHS","iso2":"BS","code":"044","type":"country"},{"id":"0b32f4f0-c8db-5011-ac99-73bfc4a31ecb","name":"Bonaire","deprecated":true,"iso3":"BES","iso2":"BQ","code":"535","type":"country"},{"id":"8fc88712-b063-55fa-adf9-7d1090098ca4","name":"Bermuda","deprecated":false,"iso3":"BMU","iso2":"BM","code":"060","type":"country"},{"id":"830ae2eb-65f0-56f2-8823-e293c1b6f086","name":"Saint Barthélemy","deprecated":true,"iso3":"BLM","iso2":"BL","code":"652","type":"country"},{"id":"9cd8a90c-1915-51dc-978b-b35c591d11c0","name":"Barbados","deprecated":false,"iso3":"BRB","iso2":"BB","code":"052","type":"country"},{"id":"a91f1f86-8c52-569f-9244-f914a4438731","name":"Aruba","deprecated":true,"iso3":"ABW","iso2":"AW","code":"533","type":"country"},{"id":"50d84fbd-fb07-51a0-ad92-be08d1dd5471","name":"Anguilla","deprecated":true,"iso3":"AIA","iso2":"AI","code":"660","type":"country"},{"id":"2494c782-b35f-5a88-8313-4eda120aa623","name":"Antigua and Barbuda","deprecated":false,"iso3":"ATG","iso2":"AG","code":"028","type":"country"}],"countryCodes":["850","092","670","840","780","796","534","222","630","666","591","558","484","500","474","663","662","136","659","388","332","340","320","312","304","308","214","212","531","192","188","124","084","044","535","060","652","052","533","660","028"]},{"id":"d6f6aa91-7e0d-5137-abbf-328cc779888c","name":"Antarctica","deprecated":true,"code":1004,"type":"continent","countries":[{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"3358686b-4139-5062-b3a1-e838d19918cf","name":"Heard Island and McDonald Islands","deprecated":true,"iso3":"HMD","iso2":"HM","code":"334","type":"country"},{"id":"ba4897cd-087a-5292-b1be-d3a00a7f26bb","name":"South Georgia and the South Sandwich Islands","deprecated":true,"iso3":"SGS","iso2":"GS","code":"239","type":"country"},{"id":"fa4cea3e-1888-5481-9934-8f815bc26857","name":"Bouvet Island","deprecated":true,"iso3":"BVT","iso2":"BV","code":"074","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"}],"countryCodes":["260","334","239","074","010"]},{"id":"65295b82-c8fc-5b50-9e20-e8a1ea9c3439","name":"Nauru","deprecated":true,"iso3":"NRU","iso2":"NR","code":"520","type":"country"},{"id":"a0d47a89-de9b-5f06-b5f2-b903320ecf26","name":"Kosovo","deprecated":true,"iso3":"XKX","iso2":"XK","code":"0","type":"country"},{"id":"1bb5225e-e880-5bc6-b4b5-373e05ab4ebf","name":"Colombia","deprecated":false,"iso3":"COL","iso2":"CO","code":"170","type":"country"},{"id":"c6218172-7179-5f37-9302-48a0ac1e3082","name":"Angola","deprecated":true,"iso3":"AGO","iso2":"AO","code":"024","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"}]}],"sourcePorts":[{"id":"b19e16f9-5846-596a-9757-161e7154e68c","name":"tcp_port_1","description":"Ruwus webwepfa fo copoko aligimaj riz zeti bivsu jah ve virip kesnenwer fi wede magbuf ojku sadruh ji.","version":"a90e8fa8-216a-59a4-bce1-da2f92acd1ad","type":"tcpportobject","port":8721,"isSystemDefined":true},{"id":"5e4d4b4d-706c-5325-b034-896d42bf9087","name":"udp_port_1","description":"Rupkoedo zuv egodid ca buapesug tu mawaduh etaeha pigfa keh it bozute wovi zijuci poscuren ifohhe.","version":"db631abc-32a3-5ca5-8ae5-a3b6f3c8371a","type":"udpportobject","port":8537,"isSystemDefined":true}],"destinationPorts":[{"id":"2a40730e-7878-5969-ba53-1d9278cde125","name":"icmpv4port1","description":"Uva ceti behga hetivasu ajbebu rakepe ame ifa aceuriso kejic fucaoti gigvivvo gishelpob jurevmu ov maclefe.","version":"e62c0f51-027e-5a7f-b725-a96162bb7138","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8508,"isSystemDefined":false},{"id":"d0ecb6d1-cc76-58fb-a392-4e9c9537be4c","name":"icmpv4port2","description":"Asci be jutgu wo susadagi woveven bafosjoc ceec wovukiv tati tepav gu za muhhudbi.","version":"54ed4735-cf04-5504-8a5a-2dd0bec3f5a9","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8251,"isSystemDefined":false}],"users":[{"id":"dd95afe8-437e-51ab-985a-c48929c0e3ba","name":"User 14","realmName":"ugaopezuepi","type":"trafficuser","realmId":2,"version":"esdafroce"},{"id":"e4cf55a1-9e8b-5e8b-a91e-ed734a516447","name":"User Group 29","realmName":"wicocetifow","type":"trafficusergroup","realmId":2,"version":"ohkofalezi"},{"id":"4cfa5549-4e3c-518e-a754-cda57317bbd8","name":"User Group 6","realmName":"mokodozmov","type":"trafficusergroup","realmId":2,"version":"korgepezfa"}],"embeddedAppFilter":{"conditions":[{"filter":"detfaodvej","tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"CRITICAL"}],"applicationTypes":[{"type":"typecondition","applicationType":"CLIENT"},{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"MEDIUM"},{"type":"productivitycondition","productivity":"VERY_HIGH"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"},{"filter":"tazfeofgut","tags":[{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"e9812b72-2a36-5146-bce0-b09f876df88d","version":"080dca18-c677-5dd1-8f2f-40555beb4fe4","appId":10,"name":"ApplicationTag10","description":"Viswilo ariuzaf pih wa mul vugavrip rijfon aba kac giicse wolifa cowudzuv vev iztafit.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"},{"id":"ea9b4aa3-c8a2-52f9-87ba-b33f1b452a42","version":"e289f52e-a078-5581-a775-4c8435a534f0","appId":3,"name":"ApplicationCategory7","description":"Ci sovo ig ivebcag gif uk eztez ezofi jizrebi lafozu ehje daj noiw vajru modpoteh juizu.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"MEDIUM"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"MEDIUM"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"75251c34-4dfe-5cb2-a779-5c4cba9eb2ae","version":"66eab5b5-cd48-52d7-9797-8e846f22fbeb","name":"ApplicationFilter6","description":"Ve hijusla tazwomur cekzinso uho nahulni sifadu taf leare vezrovi su noruv bippupo dimuz gu ceuwa caki bi.","applications":[{"id":"44b7bb09-58d5-59ef-abd3-7341fa4d1c7b","version":"fe155cb3-e78d-5a5b-8713-5c056c0ea86f","description":"Dazgo jefeci dulhel lowez cotgo mu ewuufih indeh bo urjur vursosoc cetco eb.","deprecated":false,"appId":8,"productivity":3,"risk":3,"name":"Application3","tagIds":["58edda62-c97b-56e5-9e6c-32926f4d3009"],"tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["794d6605-f5d9-5f26-b11d-507eac471889","0928e8e9-25a4-53d0-b118-342a26b44100"],"categories":[{"id":"794d6605-f5d9-5f26-b11d-507eac471889","version":"20176f07-7d98-5dd7-8a17-de688ee66220","appId":1,"name":"ApplicationCategory3","description":"Woc ved ecu hin potalbib la uweerabof mato dewahmo avutji wose pujda tunoduz ucu ho zopusno lo mu.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"0928e8e9-25a4-53d0-b118-342a26b44100","version":"cccc44d5-b855-569b-90ad-b26d4e3e0c66","appId":7,"name":"ApplicationCategory8","description":"Mifzonu fokero acdu panvo cuvubde tovli maz cawag kaoj gosoojo falkof hezel sig ca vo wak.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["SERVER"],"metadata":{"referenced":false},"type":"application"},{"id":"c51fa076-7516-5b1a-b689-87d5d4dd6656","version":"71b129f0-e504-5ee0-85b0-3d683c7fbc85","description":"Fishak luksa juw magaldi igo kaipojo vifpok jarado fefadkiw keogo mow kojepoha bonewke hobomag vo gi om tam.","deprecated":false,"appId":4,"productivity":1,"risk":3,"name":"Application4","tagIds":["58edda62-c97b-56e5-9e6c-32926f4d3009","63db3391-02c9-5d1b-b971-5a6427f4c9fe"],"tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"63db3391-02c9-5d1b-b971-5a6427f4c9fe","version":"95d07b80-ad97-50b0-a64b-b279d1420618","appId":5,"name":"ApplicationTag5","description":"Uwano ujeoska rootmaj kammovu ivitarpoh percuk oto bacema da onsevsej jovocoog ge gafed zakas ijwimuf.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["794d6605-f5d9-5f26-b11d-507eac471889","33552c21-0930-5bb5-8459-9b7608cda68e"],"categories":[{"id":"794d6605-f5d9-5f26-b11d-507eac471889","version":"20176f07-7d98-5dd7-8a17-de688ee66220","appId":1,"name":"ApplicationCategory3","description":"Woc ved ecu hin potalbib la uweerabof mato dewahmo avutji wose pujda tunoduz ucu ho zopusno lo mu.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"33552c21-0930-5bb5-8459-9b7608cda68e","version":"73578557-169e-5431-99f4-4a87fb56d57c","appId":4,"name":"ApplicationCategory9","description":"Tir upwul taf foj igonas mawejus ba ni loj racwu pu nelkal gofifun zemcuz ut.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["CLIENT","WEBAPP"],"metadata":{"referenced":false},"type":"application"}],"conditions":[{"filter":"tazfeofgut","tags":[{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"e9812b72-2a36-5146-bce0-b09f876df88d","version":"080dca18-c677-5dd1-8f2f-40555beb4fe4","appId":10,"name":"ApplicationTag10","description":"Viswilo ariuzaf pih wa mul vugavrip rijfon aba kac giicse wolifa cowudzuv vev iztafit.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"},{"id":"ea9b4aa3-c8a2-52f9-87ba-b33f1b452a42","version":"e289f52e-a078-5581-a775-4c8435a534f0","appId":3,"name":"ApplicationCategory7","description":"Ci sovo ig ivebcag gif uk eztez ezofi jizrebi lafozu ehje daj noiw vajru modpoteh juizu.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"MEDIUM"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"MEDIUM"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":true},"type":"applicationfilter"}],"applications":[{"id":"c51fa076-7516-5b1a-b689-87d5d4dd6656","version":"71b129f0-e504-5ee0-85b0-3d683c7fbc85","description":"Fishak luksa juw magaldi igo kaipojo vifpok jarado fefadkiw keogo mow kojepoha bonewke hobomag vo gi om tam.","deprecated":false,"appId":4,"productivity":1,"risk":3,"name":"Application4","tagIds":["58edda62-c97b-56e5-9e6c-32926f4d3009","63db3391-02c9-5d1b-b971-5a6427f4c9fe"],"tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"63db3391-02c9-5d1b-b971-5a6427f4c9fe","version":"95d07b80-ad97-50b0-a64b-b279d1420618","appId":5,"name":"ApplicationTag5","description":"Uwano ujeoska rootmaj kammovu ivitarpoh percuk oto bacema da onsevsej jovocoog ge gafed zakas ijwimuf.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["794d6605-f5d9-5f26-b11d-507eac471889","33552c21-0930-5bb5-8459-9b7608cda68e"],"categories":[{"id":"794d6605-f5d9-5f26-b11d-507eac471889","version":"20176f07-7d98-5dd7-8a17-de688ee66220","appId":1,"name":"ApplicationCategory3","description":"Woc ved ecu hin potalbib la uweerabof mato dewahmo avutji wose pujda tunoduz ucu ho zopusno lo mu.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"33552c21-0930-5bb5-8459-9b7608cda68e","version":"73578557-169e-5431-99f4-4a87fb56d57c","appId":4,"name":"ApplicationCategory9","description":"Tir upwul taf foj igonas mawejus ba ni loj racwu pu nelkal gofifun zemcuz ut.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["CLIENT","WEBAPP"],"metadata":{"referenced":false},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"ffe7a902-b85c-5fd6-af84-62f80cd30c65","version":"weowagopwib","name":"UrlGroup7","description":"Doaniopa kojutwef va uzu ji riw hoap veruhro ge nej tozbuz uzbohi ma pok.","objects":[{"id":"4dcd5400-fbdc-5d2e-a182-437ae706284c","version":"erreupih","name":"Url11","description":"Mu wiod pa winhuta ukzup foveba conefda zecvi wit ciahujah bo lahfonhe adcogo mori.","url":"http://sodzup.io/pivkaod","type":"urlobject"},{"id":"1ec355c1-47fb-55b1-b8d1-6d6a465821ca","version":"hapevemoco","name":"Url10","description":"Cagsif ju ilawusne kal uw tewwuvmul cu suilu putuz fuwabe wi favig bibothep ti hire gucrak.","url":"http://ni.net/civ","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlCategory":{"id":"293f3f8b-e996-5139-bee7-ff7e376ed4f0","version":"2b059a77-a530-5bd9-8694-f4754a6e7538","name":"UrlCategory-8","deprecated":false,"urlCategoryId":65534,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"filePolicy":{"id":"de5b742d-70db-535d-bb42-6e6ba949ef53","type":"filepolicy","policyType":"BLOCK_MALWARE_ALL","name":"File_Policy_1","description":"Wiakeno ja barfowole aredu wutra loc fe soc cakdo se la agokim gevsirrog cagome.","version":"e0e81a67-2608-53e2-a015-f53dc3a9de10"},"logFiles":false,"type":"accessrule"},{"id":"de9e9540-2f2d-5646-97cf-96d390d945c1","version":"7efccc26-095d-5607-a360-6f78623f186c","ruleId":10,"name":"Access_Rule_10","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_FLOW_END","syslogServer":{"id":"57bc6178-2f01-52b2-8d55-29366cb35285","version":"beeb6d44-207b-5a07-b708-0b4fba7c56c5","host":"171.25.188.89","port":5897,"deviceInterface":{"mtu":5818,"enabled":true,"description":"Setta biwofega af ihi ebele inowo inagiobo nu it fe heivu lijivok.","name":"diagnostic","id":"f7509b61-168c-5d86-9a4c-8d3a2bb23e90","hardwareName":"Management0/0","macAddress":"249A.16A4.5DED","monitorInterface":true,"standbyMacAddress":"06D4.757D.FF06","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0c4e:e907:93c3:ba7a:7842:4899:f454:2a33/32","ipAddress":"41e0:3a60:0ca6:5f1c:cdd5:9c57:4918:682f/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d039:d6f4:278a:cdd3:b9e3:2711:460f:1555","ipAddress":"7e31:6d3f:5bbc:0d7f:4df6:58b9:26a6:d462"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"227.88.54.119","standbyIpAddress":"119.107.19.197"}},"version":"e50dac9e-5493-5760-b5e5-294741f3c409","managementInterface":true,"managementOnly":true,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"},"protocol":"UDP","useManagementInterface":false,"type":"syslogserver"},"sourceZones":[{"id":"83e3721c-b23f-5eb1-b660-40655c216680","name":"SecurityZone9Name","description":"Iha kiuh ja iweacce tuh hajmipjuj fikufuv bofijwi esede tu gahak wenab belif lupilsif udo puzabke ferfa ofwon.","version":"17150a55-f982-526f-aa60-9e435d2c5455","interfaces":[{"mtu":5818,"enabled":true,"description":"Wabjenuv vuhtevguf zucce omiogu anitug cuho gaejma vesumob oduuro levhid uniozwej olkavcuv dawiim mehub wuka suj.","id":"3faf4981-2b04-5091-9c1f-fa0ab78379b4","hardwareName":"GigabitEthernet1/5","macAddress":"7472.5071.519E","monitorInterface":false,"standbyMacAddress":"5387.1EFE.E0E6","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"84c0:cd09:bceb:ce0c:5cfa:f535:d426:01db/32","ipAddress":"067a:e7f9:1bf0:6af4:b89b:4c11:ec0c:51b4/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"02eb:e82a:bb44:e0a0:d969:6055:6744:cfa2","ipAddress":"aa33:0271:1f23:9725:0d24:7767:0fd2:0cf8"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"6.124.202.116","standbyIpAddress":"40.108.171.23"}},"version":"472d2c22-e548-5cb1-983f-f81ee3e14422","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]},{"mtu":5818,"enabled":true,"description":"Dib wohomfa it firasugu joev ge nu dab caejuja ba no owezru rijbofnuv da ren.","name":"outside","id":"056580af-b7b5-5ea4-9434-84acde7b7b2b","hardwareName":"GigabitEthernet1/2","macAddress":"B807.AD9D.0E4C","monitorInterface":false,"standbyMacAddress":"8F66.A03C.5C85","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"398d:4979:fd8c:5c79:130d:af73:39ac:575b/32","ipAddress":"0e08:b1ea:5a22:75ba:8e01:eaed:3442:684c/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"264c:f9d4:85a8:fdee:b56d:4b03:96d7:6285","ipAddress":"d0f4:3235:0882:22a2:f8c8:c2db:683c:9639"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"178.90.249.165","standbyIpAddress":"41.101.191.177"}},"version":"53c69bde-efdf-5307-96bb-1d0c92bec9a5","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"PASSIVE","type":"physicalinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}},{"id":"aff2c9fc-0b0e-58f4-b418-5ccd970fd67f","name":"SecurityZone11Name","description":"Nued mos di majri nih ebhebe desalu ivif novrove razjihew kepfa okforec lajatet sifu fa.","version":"d334e386-a53c-5345-9181-d20421a28e34","interfaces":[{"mtu":5818,"enabled":true,"description":"Ke vuhdojos zudgopa seto bere refcengo he camohpik pir risvup pum omhos zalpe sukjo rufe.","id":"2cf6e4b9-0bf0-5d7d-9110-6ab397d400a4","hardwareName":"GigabitEthernet1/4","macAddress":"0ABE.1A2F.DC3A","monitorInterface":false,"standbyMacAddress":"6057.AC6B.C47F","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"6d9d:2a5c:831a:6482:0268:e3fe:244e:1c1c/32","ipAddress":"c4fb:ea12:d0f3:42e4:10ed:e3f4:8e5a:6c9a/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"77f1:3852:307c:1449:a914:b786:3831:5ed1","ipAddress":"9eee:0707:2706:edd3:22f1:30d5:52f1:39fb"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"51.99.206.42","standbyIpAddress":"138.81.67.160"}},"version":"365fb3c7-62eb-5a7d-a412-b1cb7a387375","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"destinationZones":[{"id":"e12d0a2e-afc7-53cb-85e7-38aa135de327","name":"SecurityZone13Name","description":"Do tewuznas ucait mad ziwgef iw unjup guzov dize guzut vibuk anpekpib nerviw ip ijpa koruf.","version":"09dc0dd3-4a94-5cf2-9efb-89a0f352e003","interfaces":[{"mtu":2652,"enabled":true,"description":"Agi pobjotu zukac rive putsi herima mepues ezijo wicimub utjamoj noskavup wupoje ra dujipale.","name":"subinterface2name","id":"353dee59-d2b6-5df6-9b8e-4f444b489176","hardwareName":"SubInterface0/2.3","macAddress":"EDB8.12E9.D2DB","monitorInterface":false,"standbyMacAddress":"5667.5103.F034","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"2647:2aea:3fdf:b4cc:6433:554a:6ab5:c594/32","ipAddress":"04f0:7320:ae63:ce9f:664b:c7e3:8867:daa9/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"3d77:5e5d:78ec:d370:2293:4026:1bbb:aee3","ipAddress":"e6eb:6fef:da47:e1c1:1523:464b:1cab:92a1"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"96.88.118.226","standbyIpAddress":"17.135.120.105"}},"version":"82ce2f08-42bf-5b19-bbbb-0c4ef276caa0","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"sourceNetworks":[{"id":"b483d38e-bce7-5bb7-9769-57ec8151bd4f","name":"Network12","description":"Tikafnaz lujis rirunuf sehi ubfewe kabhili zota funfof zagujnuf mel ejejegto fihjunmu ma funah va.","version":"3132162a-9791-5f26-9146-79add126c19f","type":"networkobject","subType":"NETWORK","value":"23.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"8dabc86d-1558-5a56-8c32-bc388b6a93f3","name":"Network13","description":"Dojba epfaw rew reltuzaw vaifjen wilida kepsu gadcukam rewog ojudu to siokwig jakel.","version":"81a1cfa9-9bdf-5ac8-98e5-299f203d4289","type":"networkobject","subType":"HOST","value":"b4f1:f88e:09b6:827b:d85f:dbf9:751b:dc45","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"8681f6d1-4c1b-58ca-bac5-c217895fbbcd","name":"Geolocation7","description":"Ciriro waavwef icmadate zuh lobba amroc mehufi huabwe mi gowukose dapedvip pa uz baoruaj mowka popbiola.","version":"f2554e00-8f4c-5f06-8e33-1e6ece1334ee","type":"geolocation","locations":[{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"87ea1078-3291-54f4-85e1-f2d54f97a96d","name":"Micronesia","deprecated":false,"iso3":"FSM","iso2":"FM","code":"583","type":"country"},{"id":"e8b65d12-13e5-53b5-abe4-3c833e412440","name":"San Marino","deprecated":true,"iso3":"SMR","iso2":"SM","code":"674","type":"country"},{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"9c4fc5b1-9569-52be-a502-a076da629c1a","name":"Falkland Islands","deprecated":false,"iso3":"FLK","iso2":"FK","code":"238","type":"country"},{"id":"627efa23-c14e-5fc0-b2d2-a197986eaa58","name":"Grenada","deprecated":true,"iso3":"GRD","iso2":"GD","code":"308","type":"country"},{"id":"ac567919-9e6f-5712-8ef8-817d2875ae89","name":"Libya","deprecated":false,"iso3":"LBY","iso2":"LY","code":"434","type":"country"}]}],"destinationNetworks":[{"id":"b483d38e-bce7-5bb7-9769-57ec8151bd4f","name":"Network12","description":"Tikafnaz lujis rirunuf sehi ubfewe kabhili zota funfof zagujnuf mel ejejegto fihjunmu ma funah va.","version":"3132162a-9791-5f26-9146-79add126c19f","type":"networkobject","subType":"NETWORK","value":"23.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"8dabc86d-1558-5a56-8c32-bc388b6a93f3","name":"Network13","description":"Dojba epfaw rew reltuzaw vaifjen wilida kepsu gadcukam rewog ojudu to siokwig jakel.","version":"81a1cfa9-9bdf-5ac8-98e5-299f203d4289","type":"networkobject","subType":"HOST","value":"b4f1:f88e:09b6:827b:d85f:dbf9:751b:dc45","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"8681f6d1-4c1b-58ca-bac5-c217895fbbcd","name":"Geolocation7","description":"Ciriro waavwef icmadate zuh lobba amroc mehufi huabwe mi gowukose dapedvip pa uz baoruaj mowka popbiola.","version":"f2554e00-8f4c-5f06-8e33-1e6ece1334ee","type":"geolocation","locations":[{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"87ea1078-3291-54f4-85e1-f2d54f97a96d","name":"Micronesia","deprecated":false,"iso3":"FSM","iso2":"FM","code":"583","type":"country"},{"id":"e8b65d12-13e5-53b5-abe4-3c833e412440","name":"San Marino","deprecated":true,"iso3":"SMR","iso2":"SM","code":"674","type":"country"},{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"9c4fc5b1-9569-52be-a502-a076da629c1a","name":"Falkland Islands","deprecated":false,"iso3":"FLK","iso2":"FK","code":"238","type":"country"},{"id":"627efa23-c14e-5fc0-b2d2-a197986eaa58","name":"Grenada","deprecated":true,"iso3":"GRD","iso2":"GD","code":"308","type":"country"},{"id":"ac567919-9e6f-5712-8ef8-817d2875ae89","name":"Libya","deprecated":false,"iso3":"LBY","iso2":"LY","code":"434","type":"country"}]}],"sourcePorts":[{"id":"1a4f8032-f665-5045-b0d8-a48b339750d1","name":"tcp_port_2","description":"Ku soguzsi ragibi nupavidag faji kovor ikikov efa ha cozuju inietu daf hif iso.","version":"b6ff8844-fd46-5e03-9ca4-00b7bc8bd936","type":"tcpportobject","port":8189,"isSystemDefined":false},{"id":"39c5e145-2ed4-5038-ab20-3c4878437d1d","name":"icmpv6port2","description":"Fajla geffe heseipu tez toluhpap ve uhmoba garoeb ozafuzli suhwof aw likofat erige hentejpi jajaza faztiav osece na.","version":"d4492bb3-d9b0-52fc-acc6-81061c83c6b8","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8267,"isSystemDefined":false}],"destinationPorts":[{"id":"5e4d4b4d-706c-5325-b034-896d42bf9087","name":"udp_port_1","description":"Rupkoedo zuv egodid ca buapesug tu mawaduh etaeha pigfa keh it bozute wovi zijuci poscuren ifohhe.","version":"db631abc-32a3-5ca5-8ae5-a3b6f3c8371a","type":"udpportobject","port":8537,"isSystemDefined":true},{"id":"d0ecb6d1-cc76-58fb-a392-4e9c9537be4c","name":"icmpv4port2","description":"Asci be jutgu wo susadagi woveven bafosjoc ceec wovukiv tati tepav gu za muhhudbi.","version":"54ed4735-cf04-5504-8a5a-2dd0bec3f5a9","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8251,"isSystemDefined":false}],"users":[{"id":"4cfa5549-4e3c-518e-a754-cda57317bbd8","name":"User Group 6","realmName":"mokodozmov","type":"trafficusergroup","realmId":2,"version":"korgepezfa"},{"id":"d23c586b-9046-57c8-b0d7-cd6200ca8e84","name":"User Group 15","realmName":"zutnotecasi","type":"trafficusergroup","realmId":2,"version":"gacvubereb"},{"id":"57ae914d-bedf-542a-8d66-6a07b01168da","name":"User Group 17","realmName":"kanologobiw","type":"trafficusergroup","realmId":2,"version":"pevisabeko"}],"embeddedAppFilter":{"conditions":[{"filter":"detfaodvej","tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"CRITICAL"}],"applicationTypes":[{"type":"typecondition","applicationType":"CLIENT"},{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"MEDIUM"},{"type":"productivitycondition","productivity":"VERY_HIGH"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"},{"filter":"huimezuben","tags":[{"id":"63db3391-02c9-5d1b-b971-5a6427f4c9fe","version":"95d07b80-ad97-50b0-a64b-b279d1420618","appId":5,"name":"ApplicationTag5","description":"Uwano ujeoska rootmaj kammovu ivitarpoh percuk oto bacema da onsevsej jovocoog ge gafed zakas ijwimuf.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"},{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"VERY_HIGH"},{"type":"productivitycondition","productivity":"LOW"},{"type":"productivitycondition","productivity":"HIGH"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"71b15970-f3f3-5b1b-b7bb-f0613eba06e2","version":"a1f1ec4f-62c4-56f7-85ab-ffa7d87ea131","name":"ApplicationFilter7","description":"Vul ejube iwu bodjaaki neros atwiha pi tamgek mazce zilitufa volvaz mibgo tubzesuwi bunefon enuhoj.","applications":[{"id":"ce901dd3-4e85-5bf0-a273-2018d76527c8","version":"84a4f0c6-57b3-50f3-bf20-0cf68bbbb806","description":"Gipus bovawge vel ceoziwo nuim ehdifir nowe onoli atsewav irfer semowi ge turos mufo tahukca jaz.","deprecated":true,"appId":5,"productivity":0,"risk":2,"name":"Application2","tagIds":["58edda62-c97b-56e5-9e6c-32926f4d3009"],"tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["1323d445-72c0-5d8b-9f58-c223feb51bac","328094ea-7b95-58e5-a2de-09018514e679"],"categories":[{"id":"1323d445-72c0-5d8b-9f58-c223feb51bac","version":"f85374d2-b1c5-5e65-b746-77dc6a21decb","appId":7,"name":"ApplicationCategory14","description":"Ohoad agoteveto irewomi adizogo lurtoop tizesuca himewwak poftoj cow nunapivif cisge pe hi raam hatdunze.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"328094ea-7b95-58e5-a2de-09018514e679","version":"a9f6d6f5-e2ce-5a1b-8c7f-1a5ba3c375b4","appId":4,"name":"ApplicationCategory1","description":"Pilooru amavudek uhzidkah sieha duhni ikfo celrid az ocolu loplun buj nodlial do ahme henacava so ecevega wemtumacu.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["CLIENT","WEBAPP"],"metadata":{"referenced":false},"type":"application"}],"conditions":[{"filter":"tazfeofgut","tags":[{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"e9812b72-2a36-5146-bce0-b09f876df88d","version":"080dca18-c677-5dd1-8f2f-40555beb4fe4","appId":10,"name":"ApplicationTag10","description":"Viswilo ariuzaf pih wa mul vugavrip rijfon aba kac giicse wolifa cowudzuv vev iztafit.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"},{"id":"ea9b4aa3-c8a2-52f9-87ba-b33f1b452a42","version":"e289f52e-a078-5581-a775-4c8435a534f0","appId":3,"name":"ApplicationCategory7","description":"Ci sovo ig ivebcag gif uk eztez ezofi jizrebi lafozu ehje daj noiw vajru modpoteh juizu.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"MEDIUM"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"MEDIUM"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":true},"type":"applicationfilter"}],"applications":[{"id":"7cd12f14-70e7-51d8-abf1-af76ca735eef","version":"544ddfb1-dbc2-5901-aeaf-e76f489ff422","description":"Mata he jijto miaked lirki fuus ediupu rarengu ke iri escut gusotpi fa so piltef ob ocaguzuc zi.","deprecated":true,"appId":7,"productivity":3,"risk":4,"name":"Application9","tagIds":["aad0af81-b4ad-5a4a-a395-d88fc2abb8c4"],"tags":[{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["fff4b47c-a653-5729-a31a-e6353d420768","24cd3c21-8c19-531f-81d5-08aca7b587b9"],"categories":[{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"24cd3c21-8c19-531f-81d5-08aca7b587b9","version":"b18c67e8-0f51-5f2c-88a2-11994eea44b1","appId":5,"name":"ApplicationCategory5","description":"Camweg wevovic diowu fi vo kacag vibumjih lus bowi ewatige epewa ecifoder mu gopeges.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["SERVER","WEBAPP"],"metadata":{"referenced":true},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"ce7eba4c-0b9a-5a3f-bb88-6ce71398fbc8","version":"epozikeccow","name":"UrlGroup1","description":"Kajili nockugda van cikepuh toavah kebpi muwnumo tezotu pelapdec sif fepgo hul sacwav na.","objects":[{"id":"d31c2d0e-3ad0-5053-9a7b-a0ef29eff5f9","version":"ajolouhog","name":"Url8","description":"Kirgirac rireto vu nimu kek bo dosoze tillen wisud kerecfar evibur wen cehpa weg ju doneh.","url":"http://de.co.uk/neni","type":"urlobject"},{"id":"d72bd5cf-710c-5048-b0fa-1bda6746520d","version":"onaisujuja","name":"Url3","description":"Nolze no gavrofkep dog di buc ta oko kon pigu fuezo uzara.","url":"http://gagonofi.edu/letiga","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlCategory":{"id":"e1088b47-43c6-509a-a722-763318471791","version":"53a76ab0-006b-5dd4-abc4-c0f9a0d58f50","name":"UrlCategory-13","deprecated":false,"urlCategoryId":13,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"intrusionPolicy":{"id":"a47cb8f5-fe55-11e4-8e99-ipsN40","name":"Maximum Detection","links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN40"},"rules":{"links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN40/rules/"}},"description":"Maximum Detection Layer","type":"intrusionpolicy","version":"124d1a7b-a1b4-5097-b6d4-5a399c5bdb68"},"logFiles":false,"type":"accessrule"},{"id":"49505f5e-1301-51dd-9c13-09524dbc0620","version":"8f824582-dad7-5e2a-bd95-927d4e79434f","ruleId":11,"name":"Access_Rule_11","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_NONE","sourceZones":[{"id":"0453e827-ea9e-5279-b45d-49df10666f7f","name":"SecurityZone14Name","description":"Kojugbel ram kucdowaf dozabace bagi vizlujva ibeali humupici apefin sig wiwdocduw halsoz.","version":"aaaea33f-d703-5f8e-9fb0-8647d4f28f12","interfaces":[{"mtu":2652,"enabled":true,"description":"Dijiz mavajmak suhihi ja piobba vigsasu pulasa heka lus nuapoap gar weuluvaz faf duke sojpov pamdaba juhoflon ugosum.","name":"subinterface4name","id":"80110552-0168-5ca1-9539-159176e34426","hardwareName":"SubInterface0/4.5","macAddress":"1753.227B.5D9A","monitorInterface":false,"standbyMacAddress":"FF7B.C256.4778","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"1bb9:5d4d:1200:c9eb:97ff:589e:edd4:16e4/32","ipAddress":"eaba:377e:f390:0e98:800f:a6a7:5709:6b52/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"5189:1c32:5064:5495:0ecf:92dd:9175:944a","ipAddress":"479b:2e4a:a86f:13c2:425b:1e14:b1a3:ddfd"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"213.34.152.190","standbyIpAddress":"91.47.228.196"}},"version":"8bcf839f-438a-5cd4-99a7-b6f07ab652a0","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Povlulmi maev usma nizguv ve win coocila colo dunde karib wadu ku huhakla kikel gas.","name":"subinterface13name","id":"edd991bd-6b34-5057-9389-003a56e10179","hardwareName":"SubInterface0/13.14","macAddress":"CC55.5B72.5979","monitorInterface":true,"standbyMacAddress":"9F25.7162.695C","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0d43:9009:33b7:805f:2a41:1ed1:0ea0:3cd6/32","ipAddress":"e093:0b7d:4775:c0dc:8433:a3b6:1071:8974/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"bf79:78d0:19ad:cc70:9f5b:5882:e462:ba1d","ipAddress":"5ffa:92d3:6efd:ef6f:c194:ff49:7d28:7d56"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"237.58.152.175","standbyIpAddress":"233.37.45.228"}},"version":"f9997393-39da-5999-bef9-a0aa1c914d96","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}},{"id":"d2cf6df0-e095-59f1-9afe-4e1f95b290e7","name":"SecurityZone6Name","description":"Kivmeat sepfeheh jekacaloh awe wap vajan utiweb daczo ji ji pew wioha bawmivim ri kaj gibvevsa.","version":"5751e8ac-10c9-5b44-a9fa-1ed8e07d2d40","interfaces":[{"mtu":5818,"enabled":false,"description":"Jigiz malko navsup bojga widbihi vatel vahuwuta ugi bopuru duzwar zopi juinoito sibkonac fozgojmi toopu nurhiru ce joeho.","name":"inside","id":"bddde0e1-1b1f-5f42-b9b7-7c72d9099ef4","hardwareName":"GigabitEthernet1/1","macAddress":"ECFB.7E12.09E1","monitorInterface":true,"standbyMacAddress":"A09D.B513.9683","version":"69f9f38e-0479-58d1-961c-e4040d439200","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"PASSIVE","type":"physicalinterface"},{"mtu":2652,"enabled":true,"description":"Pipakaz ramkudu ulido ce boh ugmepku izareszeh katakuz vosinde takwa piprazipo fostoftug egjolut.","name":"subinterface3name","id":"4258612a-c6ac-5407-8edc-04b207b2b473","hardwareName":"SubInterface0/3.4","macAddress":"4A8E.2AFE.5DE9","monitorInterface":true,"standbyMacAddress":"F917.A989.864E","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"5b49:5a29:3cd4:5c83:7b30:0115:7927:eaf3/32","ipAddress":"a3eb:3b72:2cfa:9901:b7c7:1581:fa72:4b49/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"42e6:34b8:f5eb:802f:626b:503c:781e:aacd","ipAddress":"dcc0:3abc:3933:8a47:25c6:d9a7:2e80:06dc"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"137.234.118.13","standbyIpAddress":"67.162.53.251"}},"version":"2a53f3c3-fc6d-557c-bdbb-e97bc156553c","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"destinationZones":[{"id":"340bf250-a4a5-5049-bddf-a6201a9b8e86","name":"SecurityZone7Name","description":"So gitejipo sotvotdab watu la ica fojum dorog odohog mil etuw ta daghavke dig.","version":"273d67ab-abb9-5af1-8574-3e9af6e98aed","interfaces":[{"mtu":2652,"enabled":false,"description":"Wa cep gi lankowtu ce uvujed tad wo vezke vib vezvufgev hun vob velumde.","name":"subinterface11name","id":"ffc74b4d-ad27-5459-9907-186a8c739189","hardwareName":"SubInterface0/11.12","macAddress":"1534.AB09.4146","monitorInterface":true,"standbyMacAddress":"CF72.BDFB.98A1","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"fafb:559d:106d:67ac:52dd:e182:d306:4792/32","ipAddress":"a7bd:69ea:f24f:04ea:40c5:3f80:0416:0f09/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d544:6d26:411c:e460:9911:cb8b:ca9e:3a15","ipAddress":"f96f:858d:9ed1:fc9f:7b47:0fb4:246d:6cb6"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"17.76.225.83","standbyIpAddress":"195.253.157.229"}},"version":"e22e21d2-9d64-51a4-adc2-a775a4572916","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}}],"sourceNetworks":[{"id":"884f239a-2976-5e8e-9cb5-5aeb31fc1554","name":"Network15","description":"Rad ladfevhez vucvibbu omeheh hi rulsusva nut diw sikeznag ehazelu witam tocrah irca wavegezi na nidmimle.","version":"7c7865f0-2dcd-5833-a31b-7fe684b3c2ff","type":"networkobject","subType":"HOST","value":"80.87.24.187","isSystemDefined":false,"metadata":{"referenced":false}},{"id":"929d7320-9aa2-52c7-b853-76aae05eef6b","name":"Network8","description":"Todviad wi vuckivna otkot nevaiz divu caszi fezmirera tumhugej muv bi vedohile.","version":"cf69d58a-8e9c-52c5-af3f-f3d5f88cd456","type":"networkobject","subType":"HOST","value":"6804:d23a:5056:cdbd:dc9f:9d53:1cf7:f368","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"461303fa-0a19-58a2-9c11-f34f2bf0dfbd","name":"Geolocation8","description":"To ininegto gek zaloj voal tu hudodwa asaatapim olanlej wagwip mu ufu zobpe.","version":"729c6712-e56d-58b3-84f4-e9047261348c","type":"geolocation","locations":[{"id":"c7eb60a1-be27-5963-87ac-0c756fe76124","name":"Oceania","deprecated":true,"code":1006,"type":"continent","countries":[{"id":"28993a70-0f71-51a6-bd15-75bbbe151d39","name":"Samoa","deprecated":true,"iso3":"WSM","iso2":"WS","code":"882","type":"country"},{"id":"91d14642-b0c8-57a5-b226-e39b80213360","name":"Wallis and Futuna","deprecated":true,"iso3":"WLF","iso2":"WF","code":"876","type":"country"},{"id":"1f8bd503-8b6b-53b7-91e8-b4f01a87f55d","name":"Vanuatu","deprecated":true,"iso3":"VUT","iso2":"VU","code":"548","type":"country"},{"id":"0822041a-9790-514e-84a5-229c82007d22","name":"U.S. Minor Outlying Islands","deprecated":true,"iso3":"UMI","iso2":"UM","code":"581","type":"country"},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"9442da73-6b47-5cab-8a0b-baa977ec390b","name":"Tonga","deprecated":true,"iso3":"TON","iso2":"TO","code":"776","type":"country"},{"id":"37cfb898-ea93-52c7-bb5e-05b5e6ff3710","name":"East Timor","deprecated":false,"iso3":"TLS","iso2":"TL","code":"626","type":"country"},{"id":"d4c50c5a-d2a1-527e-81d7-b76ab3722771","name":"Tokelau","deprecated":false,"iso3":"TKL","iso2":"TK","code":"772","type":"country"},{"id":"2b6643b8-6fcb-5315-b350-5817c1573ea4","name":"Solomon Islands","deprecated":true,"iso3":"SLB","iso2":"SB","code":"090","type":"country"},{"id":"10a85a47-2aa1-5729-aa4d-cb226f57c280","name":"Palau","deprecated":false,"iso3":"PLW","iso2":"PW","code":"585","type":"country"},{"id":"dd1d13f6-78f2-5a0f-b4ca-ca27972be314","name":"Pitcairn Islands","deprecated":true,"iso3":"PCN","iso2":"PN","code":"612","type":"country"},{"id":"122477fe-9b24-50ed-88db-64565b4cc950","name":"Papua New Guinea","deprecated":false,"iso3":"PNG","iso2":"PG","code":"598","type":"country"},{"id":"642a86d2-e785-5f88-83a1-6b9299dc0cdf","name":"French Polynesia","deprecated":false,"iso3":"PYF","iso2":"PF","code":"258","type":"country"},{"id":"f2d903e0-16b9-5f01-a3dc-854970d49544","name":"New Zealand","deprecated":true,"iso3":"NZL","iso2":"NZ","code":"554","type":"country"},{"id":"643a299d-d43d-5be0-b5eb-4b30867675b1","name":"Niue","deprecated":false,"iso3":"NIU","iso2":"NU","code":"570","type":"country"},{"id":"65295b82-c8fc-5b50-9e20-e8a1ea9c3439","name":"Nauru","deprecated":true,"iso3":"NRU","iso2":"NR","code":"520","type":"country"},{"id":"fe7bb7a6-4c20-526b-a28f-59c99ffb6c79","name":"Norfolk Island","deprecated":true,"iso3":"NFK","iso2":"NF","code":"574","type":"country"},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"6d4a7385-b2b6-578c-b825-f2bae24ad903","name":"Northern Mariana Islands","deprecated":true,"iso3":"MNP","iso2":"MP","code":"580","type":"country"},{"id":"b49ff744-593f-5d86-ac9a-58d2d4e8307e","name":"Marshall Islands","deprecated":true,"iso3":"MHL","iso2":"MH","code":"584","type":"country"},{"id":"ec318859-4ec8-56f2-a06c-f2d23e06516e","name":"Kiribati","deprecated":false,"iso3":"KIR","iso2":"KI","code":"296","type":"country"},{"id":"6fff8b89-01f2-59d9-9a39-bd5a8c525fc9","name":"Guam","deprecated":false,"iso3":"GUM","iso2":"GU","code":"316","type":"country"},{"id":"87ea1078-3291-54f4-85e1-f2d54f97a96d","name":"Micronesia","deprecated":false,"iso3":"FSM","iso2":"FM","code":"583","type":"country"},{"id":"c7a81f83-2cd9-501d-9645-ed4170667b48","name":"Fiji","deprecated":true,"iso3":"FJI","iso2":"FJ","code":"242","type":"country"},{"id":"4343b55a-5fe8-567f-a099-f3d20b53a9cf","name":"Cook Islands","deprecated":true,"iso3":"COK","iso2":"CK","code":"184","type":"country"},{"id":"147f040e-b349-5414-81d3-dae7700c7e81","name":"Australia","deprecated":true,"iso3":"AUS","iso2":"AU","code":"036","type":"country"},{"id":"f3f980b4-9a78-5ff2-b7e7-be91523e3783","name":"American Samoa","deprecated":true,"iso3":"ASM","iso2":"AS","code":"016","type":"country"}],"countryCodes":["882","876","548","581","798","776","626","772","090","585","612","598","258","554","570","520","574","540","580","584","296","316","583","242","184","036","016"]},{"id":"28e90dfc-6bc0-556c-a014-d0dc49366442","name":"Albania","deprecated":true,"iso3":"ALB","iso2":"AL","code":"008","type":"country"},{"id":"ba4897cd-087a-5292-b1be-d3a00a7f26bb","name":"South Georgia and the South Sandwich Islands","deprecated":true,"iso3":"SGS","iso2":"GS","code":"239","type":"country"},{"id":"1adcc1e8-564f-5b54-a236-fc72bae227b9","name":"Argentina","deprecated":false,"iso3":"ARG","iso2":"AR","code":"032","type":"country"},{"id":"3589f9a6-a7c1-5332-a139-3f9595fdfd28","name":"Turks and Caicos Islands","deprecated":true,"iso3":"TCA","iso2":"TC","code":"796","type":"country"},{"id":"b110114a-4903-54d2-8925-cfa66175fc81","name":"Morocco","deprecated":true,"iso3":"MAR","iso2":"MA","code":"504","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"}]}],"destinationNetworks":[{"id":"884f239a-2976-5e8e-9cb5-5aeb31fc1554","name":"Network15","description":"Rad ladfevhez vucvibbu omeheh hi rulsusva nut diw sikeznag ehazelu witam tocrah irca wavegezi na nidmimle.","version":"7c7865f0-2dcd-5833-a31b-7fe684b3c2ff","type":"networkobject","subType":"HOST","value":"80.87.24.187","isSystemDefined":false,"metadata":{"referenced":false}},{"id":"929d7320-9aa2-52c7-b853-76aae05eef6b","name":"Network8","description":"Todviad wi vuckivna otkot nevaiz divu caszi fezmirera tumhugej muv bi vedohile.","version":"cf69d58a-8e9c-52c5-af3f-f3d5f88cd456","type":"networkobject","subType":"HOST","value":"6804:d23a:5056:cdbd:dc9f:9d53:1cf7:f368","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"461303fa-0a19-58a2-9c11-f34f2bf0dfbd","name":"Geolocation8","description":"To ininegto gek zaloj voal tu hudodwa asaatapim olanlej wagwip mu ufu zobpe.","version":"729c6712-e56d-58b3-84f4-e9047261348c","type":"geolocation","locations":[{"id":"c7eb60a1-be27-5963-87ac-0c756fe76124","name":"Oceania","deprecated":true,"code":1006,"type":"continent","countries":[{"id":"28993a70-0f71-51a6-bd15-75bbbe151d39","name":"Samoa","deprecated":true,"iso3":"WSM","iso2":"WS","code":"882","type":"country"},{"id":"91d14642-b0c8-57a5-b226-e39b80213360","name":"Wallis and Futuna","deprecated":true,"iso3":"WLF","iso2":"WF","code":"876","type":"country"},{"id":"1f8bd503-8b6b-53b7-91e8-b4f01a87f55d","name":"Vanuatu","deprecated":true,"iso3":"VUT","iso2":"VU","code":"548","type":"country"},{"id":"0822041a-9790-514e-84a5-229c82007d22","name":"U.S. Minor Outlying Islands","deprecated":true,"iso3":"UMI","iso2":"UM","code":"581","type":"country"},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"9442da73-6b47-5cab-8a0b-baa977ec390b","name":"Tonga","deprecated":true,"iso3":"TON","iso2":"TO","code":"776","type":"country"},{"id":"37cfb898-ea93-52c7-bb5e-05b5e6ff3710","name":"East Timor","deprecated":false,"iso3":"TLS","iso2":"TL","code":"626","type":"country"},{"id":"d4c50c5a-d2a1-527e-81d7-b76ab3722771","name":"Tokelau","deprecated":false,"iso3":"TKL","iso2":"TK","code":"772","type":"country"},{"id":"2b6643b8-6fcb-5315-b350-5817c1573ea4","name":"Solomon Islands","deprecated":true,"iso3":"SLB","iso2":"SB","code":"090","type":"country"},{"id":"10a85a47-2aa1-5729-aa4d-cb226f57c280","name":"Palau","deprecated":false,"iso3":"PLW","iso2":"PW","code":"585","type":"country"},{"id":"dd1d13f6-78f2-5a0f-b4ca-ca27972be314","name":"Pitcairn Islands","deprecated":true,"iso3":"PCN","iso2":"PN","code":"612","type":"country"},{"id":"122477fe-9b24-50ed-88db-64565b4cc950","name":"Papua New Guinea","deprecated":false,"iso3":"PNG","iso2":"PG","code":"598","type":"country"},{"id":"642a86d2-e785-5f88-83a1-6b9299dc0cdf","name":"French Polynesia","deprecated":false,"iso3":"PYF","iso2":"PF","code":"258","type":"country"},{"id":"f2d903e0-16b9-5f01-a3dc-854970d49544","name":"New Zealand","deprecated":true,"iso3":"NZL","iso2":"NZ","code":"554","type":"country"},{"id":"643a299d-d43d-5be0-b5eb-4b30867675b1","name":"Niue","deprecated":false,"iso3":"NIU","iso2":"NU","code":"570","type":"country"},{"id":"65295b82-c8fc-5b50-9e20-e8a1ea9c3439","name":"Nauru","deprecated":true,"iso3":"NRU","iso2":"NR","code":"520","type":"country"},{"id":"fe7bb7a6-4c20-526b-a28f-59c99ffb6c79","name":"Norfolk Island","deprecated":true,"iso3":"NFK","iso2":"NF","code":"574","type":"country"},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"6d4a7385-b2b6-578c-b825-f2bae24ad903","name":"Northern Mariana Islands","deprecated":true,"iso3":"MNP","iso2":"MP","code":"580","type":"country"},{"id":"b49ff744-593f-5d86-ac9a-58d2d4e8307e","name":"Marshall Islands","deprecated":true,"iso3":"MHL","iso2":"MH","code":"584","type":"country"},{"id":"ec318859-4ec8-56f2-a06c-f2d23e06516e","name":"Kiribati","deprecated":false,"iso3":"KIR","iso2":"KI","code":"296","type":"country"},{"id":"6fff8b89-01f2-59d9-9a39-bd5a8c525fc9","name":"Guam","deprecated":false,"iso3":"GUM","iso2":"GU","code":"316","type":"country"},{"id":"87ea1078-3291-54f4-85e1-f2d54f97a96d","name":"Micronesia","deprecated":false,"iso3":"FSM","iso2":"FM","code":"583","type":"country"},{"id":"c7a81f83-2cd9-501d-9645-ed4170667b48","name":"Fiji","deprecated":true,"iso3":"FJI","iso2":"FJ","code":"242","type":"country"},{"id":"4343b55a-5fe8-567f-a099-f3d20b53a9cf","name":"Cook Islands","deprecated":true,"iso3":"COK","iso2":"CK","code":"184","type":"country"},{"id":"147f040e-b349-5414-81d3-dae7700c7e81","name":"Australia","deprecated":true,"iso3":"AUS","iso2":"AU","code":"036","type":"country"},{"id":"f3f980b4-9a78-5ff2-b7e7-be91523e3783","name":"American Samoa","deprecated":true,"iso3":"ASM","iso2":"AS","code":"016","type":"country"}],"countryCodes":["882","876","548","581","798","776","626","772","090","585","612","598","258","554","570","520","574","540","580","584","296","316","583","242","184","036","016"]},{"id":"28e90dfc-6bc0-556c-a014-d0dc49366442","name":"Albania","deprecated":true,"iso3":"ALB","iso2":"AL","code":"008","type":"country"},{"id":"ba4897cd-087a-5292-b1be-d3a00a7f26bb","name":"South Georgia and the South Sandwich Islands","deprecated":true,"iso3":"SGS","iso2":"GS","code":"239","type":"country"},{"id":"1adcc1e8-564f-5b54-a236-fc72bae227b9","name":"Argentina","deprecated":false,"iso3":"ARG","iso2":"AR","code":"032","type":"country"},{"id":"3589f9a6-a7c1-5332-a139-3f9595fdfd28","name":"Turks and Caicos Islands","deprecated":true,"iso3":"TCA","iso2":"TC","code":"796","type":"country"},{"id":"b110114a-4903-54d2-8925-cfa66175fc81","name":"Morocco","deprecated":true,"iso3":"MAR","iso2":"MA","code":"504","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"}]}],"sourcePorts":[{"id":"34f7bed0-39b1-5064-a6e7-27b5431b2066","name":"udp_port_2","description":"Eji leklo infagziv wut vujapvug avvutu toduj dulnarse ifdo bipujhas ajo vualo efapomiw ge nepe gomhuh.","version":"5785591f-a79c-5ff4-bc82-b3dd6d70a236","type":"udpportobject","port":8830,"isSystemDefined":false},{"id":"d0ecb6d1-cc76-58fb-a392-4e9c9537be4c","name":"icmpv4port2","description":"Asci be jutgu wo susadagi woveven bafosjoc ceec wovukiv tati tepav gu za muhhudbi.","version":"54ed4735-cf04-5504-8a5a-2dd0bec3f5a9","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8251,"isSystemDefined":false}],"destinationPorts":[{"id":"ff728962-8729-5bce-941c-1730e280dc0b","name":"icmpv6port1","description":"Uh letiof numsu bokewod gosso sowdilid bevliur idseaho vu delale luctid ila givcogev.","version":"9aca9371-12d1-5490-af24-a87e3160146f","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8452,"isSystemDefined":false},{"id":"2a40730e-7878-5969-ba53-1d9278cde125","name":"icmpv4port1","description":"Uva ceti behga hetivasu ajbebu rakepe ame ifa aceuriso kejic fucaoti gigvivvo gishelpob jurevmu ov maclefe.","version":"e62c0f51-027e-5a7f-b725-a96162bb7138","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8508,"isSystemDefined":false}],"users":[{"id":"448736fd-bb0b-58e5-8e0f-0d4fe1b1823a","name":"User 25","realmName":"bomubnefwa","type":"trafficuser","realmId":2,"version":"afeapelopel"},{"id":"d3638498-9eeb-5283-9a18-cd184ddbf6cd","name":"User 26","realmName":"oppogitceh","type":"trafficuser","realmId":2,"version":"gusedivkaw"},{"id":"0ed423f9-17f4-5e1d-93f2-f5a403a721f5","name":"User 20","realmName":"ecekulurapu","type":"trafficuser","realmId":2,"version":"aznukjiidu"}],"embeddedAppFilter":{"conditions":[{"filter":"muechicpoh","tags":[{"id":"7269266f-8413-59ef-9085-0de4aa64660b","version":"6eb7235a-74ab-5701-8a37-2522e325519d","appId":2,"name":"ApplicationTag2","description":"Zu wep pag palu mazu irowil rag bore ev ica miljov iwoog besjezew fi regevi ap vo.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"VERY_LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"},{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"},{"filter":"kazrutivni","tags":[{"id":"f7e90abe-ce71-56da-9f43-dd8685ec1a3a","version":"8b4ad1f1-dab6-5988-a793-c67eb8dbd3ee","appId":1,"name":"ApplicationTag1","description":"Opa zov vek obnam nobbab midzusmow riwehar gufugin mogfuana nairu camu fupim mo hov nizunfej.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"62bc5d56-7e60-5a71-a467-2c4f2a035a06","version":"e7e0ebc9-3a9a-5342-91e9-ae0ce54b3444","appId":12,"name":"ApplicationTag12","description":"Bamiwaga bo kek wawinta ovepozgan tibutef je kezaluk zonwoz fovul aw ter nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"24cd3c21-8c19-531f-81d5-08aca7b587b9","version":"b18c67e8-0f51-5f2c-88a2-11994eea44b1","appId":5,"name":"ApplicationCategory5","description":"Camweg wevovic diowu fi vo kacag vibumjih lus bowi ewatige epewa ecifoder mu gopeges.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"VERY_LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"0a6d59d9-86bf-5ca6-bcdc-8f9bbdfa8542","version":"55d07968-5435-5c3e-8840-2f0761cf28e1","name":"ApplicationFilter4","description":"Ro isuopwo azjuswu an dadwiwen kapoteno ifsi vef je omeanni riho lema berezas geci se.","applications":[{"id":"44b7bb09-58d5-59ef-abd3-7341fa4d1c7b","version":"fe155cb3-e78d-5a5b-8713-5c056c0ea86f","description":"Dazgo jefeci dulhel lowez cotgo mu ewuufih indeh bo urjur vursosoc cetco eb.","deprecated":false,"appId":8,"productivity":3,"risk":3,"name":"Application3","tagIds":["58edda62-c97b-56e5-9e6c-32926f4d3009"],"tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["794d6605-f5d9-5f26-b11d-507eac471889","0928e8e9-25a4-53d0-b118-342a26b44100"],"categories":[{"id":"794d6605-f5d9-5f26-b11d-507eac471889","version":"20176f07-7d98-5dd7-8a17-de688ee66220","appId":1,"name":"ApplicationCategory3","description":"Woc ved ecu hin potalbib la uweerabof mato dewahmo avutji wose pujda tunoduz ucu ho zopusno lo mu.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"0928e8e9-25a4-53d0-b118-342a26b44100","version":"cccc44d5-b855-569b-90ad-b26d4e3e0c66","appId":7,"name":"ApplicationCategory8","description":"Mifzonu fokero acdu panvo cuvubde tovli maz cawag kaoj gosoojo falkof hezel sig ca vo wak.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["SERVER"],"metadata":{"referenced":false},"type":"application"}],"conditions":[{"filter":"loweteziwno","tags":[{"id":"11d43e11-683f-5ec2-89c6-6b4e9a8c756d","version":"13924388-a6d9-5f80-8b3b-825736afd2bc","appId":13,"name":"ApplicationTag13","description":"Fiwjag safe jujohmi lipa gucpi la tocgomkap fozensir jafuhi vutbinij jov lifo ciduwno fuzegvef consibe hope.","metadata":{"referenced":true},"type":"applicationtag"}],"categories":[{"id":"24cd3c21-8c19-531f-81d5-08aca7b587b9","version":"b18c67e8-0f51-5f2c-88a2-11994eea44b1","appId":5,"name":"ApplicationCategory5","description":"Camweg wevovic diowu fi vo kacag vibumjih lus bowi ewatige epewa ecifoder mu gopeges.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"3cd37a5a-b5c2-516a-8eb9-c5d87fcdb2a2","version":"76af8e96-44af-5285-a65a-172f138b8941","appId":3,"name":"ApplicationCategory10","description":"Taljooco pi wo cahorti fih heose wicueci emiwoube no iwozovban ip oho im uke wu ko noed.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"VERY_HIGH"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":false},"type":"applicationfilter"}],"applications":[{"id":"8f425fed-eadf-5687-8e75-9b4fe967fcc9","version":"91b94988-c56f-5a96-a552-c943995e0b82","description":"Aduuhi zinco zi larcacha pesu umetouki wet jikoh zu vi ot jelrevap.","deprecated":false,"appId":8,"productivity":3,"risk":3,"name":"Application11","tagIds":["f7e90abe-ce71-56da-9f43-dd8685ec1a3a"],"tags":[{"id":"f7e90abe-ce71-56da-9f43-dd8685ec1a3a","version":"8b4ad1f1-dab6-5988-a793-c67eb8dbd3ee","appId":1,"name":"ApplicationTag1","description":"Opa zov vek obnam nobbab midzusmow riwehar gufugin mogfuana nairu camu fupim mo hov nizunfej.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["5b6fae52-502e-50ff-921a-a7a474f7a857","33552c21-0930-5bb5-8459-9b7608cda68e"],"categories":[{"id":"5b6fae52-502e-50ff-921a-a7a474f7a857","version":"fb5f760a-3774-5c39-b306-9174ad3e3c0a","appId":7,"name":"ApplicationCategory6","description":"Wafekioke nozo tu fazif mef tuve rokpicfab maer cu vaz pibcub ifi so noho wazubta cewsinu hakoj.","metadata":{"referenced":true},"type":"applicationcategory"},{"id":"33552c21-0930-5bb5-8459-9b7608cda68e","version":"73578557-169e-5431-99f4-4a87fb56d57c","appId":4,"name":"ApplicationCategory9","description":"Tir upwul taf foj igonas mawejus ba ni loj racwu pu nelkal gofifun zemcuz ut.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["SERVER"],"metadata":{"referenced":true},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"0d8fb7ba-1aee-5509-a833-5a64db795ba3","version":"nokkivamota","name":"UrlGroup10","description":"Umijidep raticce kainusev di gijo if os necullo dadjus jow zajoz ri pasiz kufdah uskikuw la.","objects":[{"id":"d72bd5cf-710c-5048-b0fa-1bda6746520d","version":"onaisujuja","name":"Url3","description":"Nolze no gavrofkep dog di buc ta oko kon pigu fuezo uzara.","url":"http://gagonofi.edu/letiga","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlCategory":{"id":"a346d600-32a4-535c-9887-eda79f629be1","version":"1e8d8d5d-ba06-5537-94e9-cda4faa3128e","name":"UrlCategory-12","deprecated":false,"urlCategoryId":12,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"filePolicy":{"id":"de5b742d-70db-535d-bb42-6e6ba949ef53","type":"filepolicy","policyType":"BLOCK_MALWARE_ALL","name":"File_Policy_1","description":"Wiakeno ja barfowole aredu wutra loc fe soc cakdo se la agokim gevsirrog cagome.","version":"e0e81a67-2608-53e2-a015-f53dc3a9de10"},"logFiles":false,"type":"accessrule"},{"id":"188d78f7-2f21-5ce5-acfb-9df6b7117599","version":"75366f7d-ce16-5542-bf0a-f9ec963323b6","ruleId":12,"name":"Access_Rule_12","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_BOTH","syslogServer":{"id":"b7731ecd-011b-5f95-90b4-72b024a040d9","version":"8287a57f-56d1-51e9-83f1-361ad172f158","host":"28.235.174.9","port":5897,"deviceInterface":{"mtu":5818,"enabled":true,"description":"Setta biwofega af ihi ebele inowo inagiobo nu it fe heivu lijivok.","name":"diagnostic","id":"f7509b61-168c-5d86-9a4c-8d3a2bb23e90","hardwareName":"Management0/0","macAddress":"249A.16A4.5DED","monitorInterface":true,"standbyMacAddress":"06D4.757D.FF06","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0c4e:e907:93c3:ba7a:7842:4899:f454:2a33/32","ipAddress":"41e0:3a60:0ca6:5f1c:cdd5:9c57:4918:682f/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d039:d6f4:278a:cdd3:b9e3:2711:460f:1555","ipAddress":"7e31:6d3f:5bbc:0d7f:4df6:58b9:26a6:d462"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"227.88.54.119","standbyIpAddress":"119.107.19.197"}},"version":"e50dac9e-5493-5760-b5e5-294741f3c409","managementInterface":true,"managementOnly":true,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"},"protocol":"UDP","useManagementInterface":false,"type":"syslogserver"},"sourceZones":[{"id":"e960df5e-1ab8-5a15-85e5-a7a47f0ebcb0","name":"SecurityZone5Name","description":"Kinen aziheeci teniow ucezaw idikaki rupbu tieb rawihzec ufkedok iwewun le zihpisze vuzip roetjim fokbuwu jemrumvu cigzet.","version":"0925128c-48f1-552e-8507-379551253d9c","interfaces":[{"mtu":2652,"enabled":true,"description":"Hi vihjuup vueji zufmab wib zel woz ligok wu hi iremouto wahoato.","name":"subinterface5name","id":"9f816351-560c-5e5b-ba0a-2051828301e6","hardwareName":"SubInterface0/5.6","macAddress":"84F0.8C6A.D6DF","monitorInterface":true,"standbyMacAddress":"0971.695D.7024","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"e20a:2b14:aecc:7997:984d:9fcd:b3c4:2e66/32","ipAddress":"5753:596d:3c86:ab69:1e26:fa83:c032:8e71/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"44d8:5ccd:bbcd:60df:d35b:afb7:6211:375b","ipAddress":"7b7c:0b52:9938:5274:ef02:b8c5:577c:5028"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"119.148.92.111","standbyIpAddress":"106.21.74.31"}},"version":"7a7c4c69-3da2-5e43-a1f3-2f8026bfb0bd","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}},{"id":"8cb69a8f-7d8d-5f4e-9a4f-f6e717f833ed","name":"SecurityZone3Name","description":"Udanovja dupolo zurepi ufmu ah lezup ba ga jur duvorzu abevabji zil nuikihi wopuw.","version":"dd83a4d5-be23-51f8-9b73-2ae9e26f7d36","interfaces":[{"mtu":2652,"enabled":false,"description":"Efupaf nas ilureg zetikdav emki fafiv tihug orhid zimurfo naferal va ta ug za ur di zetsa ragizike.","name":"subinterface10name","id":"4307a6d5-0ef1-55d4-adc4-0461c31b7eb5","hardwareName":"SubInterface0/10.11","macAddress":"F617.A8F2.5DEB","monitorInterface":true,"standbyMacAddress":"0E24.391A.BFD9","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"c324:084e:8a04:523f:64ec:2b27:9f07:6a8d/32","ipAddress":"0faf:b8b8:7fbe:0d00:facd:c82d:f721:93dd/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"bc90:477f:99f9:ee80:1faa:1f0c:a2a6:77b7","ipAddress":"2d31:24c2:acd3:16b0:d1df:b4b6:763f:48c0"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"250.15.33.10","standbyIpAddress":"254.220.208.229"}},"version":"0f193aa1-ad09-52dd-98e8-eb32e2e61484","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"destinationZones":[{"id":"d2cf6df0-e095-59f1-9afe-4e1f95b290e7","name":"SecurityZone6Name","description":"Kivmeat sepfeheh jekacaloh awe wap vajan utiweb daczo ji ji pew wioha bawmivim ri kaj gibvevsa.","version":"5751e8ac-10c9-5b44-a9fa-1ed8e07d2d40","interfaces":[{"mtu":5818,"enabled":false,"description":"Jigiz malko navsup bojga widbihi vatel vahuwuta ugi bopuru duzwar zopi juinoito sibkonac fozgojmi toopu nurhiru ce joeho.","name":"inside","id":"bddde0e1-1b1f-5f42-b9b7-7c72d9099ef4","hardwareName":"GigabitEthernet1/1","macAddress":"ECFB.7E12.09E1","monitorInterface":true,"standbyMacAddress":"A09D.B513.9683","version":"69f9f38e-0479-58d1-961c-e4040d439200","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"PASSIVE","type":"physicalinterface"},{"mtu":2652,"enabled":true,"description":"Pipakaz ramkudu ulido ce boh ugmepku izareszeh katakuz vosinde takwa piprazipo fostoftug egjolut.","name":"subinterface3name","id":"4258612a-c6ac-5407-8edc-04b207b2b473","hardwareName":"SubInterface0/3.4","macAddress":"4A8E.2AFE.5DE9","monitorInterface":true,"standbyMacAddress":"F917.A989.864E","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"5b49:5a29:3cd4:5c83:7b30:0115:7927:eaf3/32","ipAddress":"a3eb:3b72:2cfa:9901:b7c7:1581:fa72:4b49/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"42e6:34b8:f5eb:802f:626b:503c:781e:aacd","ipAddress":"dcc0:3abc:3933:8a47:25c6:d9a7:2e80:06dc"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"137.234.118.13","standbyIpAddress":"67.162.53.251"}},"version":"2a53f3c3-fc6d-557c-bdbb-e97bc156553c","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"sourceNetworks":[{"id":"6f55bc7e-79ee-5271-b299-5eb7db9ece0e","name":"Network14","description":"Naduk tuto zatuli pedufu dowkol gapcetod ehukevnem oszi numudol ubibi pufhubfu ripsitfu.","version":"3ab046cd-f4be-55d8-af7a-7a84bc3f7716","type":"networkobject","subType":"HOST","value":"111.31.129.11","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"a820f102-7786-5e65-8b4e-66022cb061cd","name":"Network4","description":"Cutfuf ni ka viz vave cajto wouvirak rogzizde puk zogvintus jisaslit hos guvbujloc giivuzob fafanod.","version":"37093e3e-c4bb-5188-b023-e0f6a4d12463","type":"networkobject","subType":"HOST","value":"3eab:67af:0576:1163:4699:9d76:4a97:ca53","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"eb6bb0a1-cecb-55ba-8f96-9656ef090bfd","name":"Geolocation10","description":"Ziwe tukina pubki ifro winwo fo piog roswuife to ugouj zer dula haip ju.","version":"06ed679a-dbbb-5eb6-a535-ecc514c1a364","type":"geolocation","locations":[{"id":"c7eb60a1-be27-5963-87ac-0c756fe76124","name":"Oceania","deprecated":true,"code":1006,"type":"continent","countries":[{"id":"28993a70-0f71-51a6-bd15-75bbbe151d39","name":"Samoa","deprecated":true,"iso3":"WSM","iso2":"WS","code":"882","type":"country"},{"id":"91d14642-b0c8-57a5-b226-e39b80213360","name":"Wallis and Futuna","deprecated":true,"iso3":"WLF","iso2":"WF","code":"876","type":"country"},{"id":"1f8bd503-8b6b-53b7-91e8-b4f01a87f55d","name":"Vanuatu","deprecated":true,"iso3":"VUT","iso2":"VU","code":"548","type":"country"},{"id":"0822041a-9790-514e-84a5-229c82007d22","name":"U.S. Minor Outlying Islands","deprecated":true,"iso3":"UMI","iso2":"UM","code":"581","type":"country"},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"9442da73-6b47-5cab-8a0b-baa977ec390b","name":"Tonga","deprecated":true,"iso3":"TON","iso2":"TO","code":"776","type":"country"},{"id":"37cfb898-ea93-52c7-bb5e-05b5e6ff3710","name":"East Timor","deprecated":false,"iso3":"TLS","iso2":"TL","code":"626","type":"country"},{"id":"d4c50c5a-d2a1-527e-81d7-b76ab3722771","name":"Tokelau","deprecated":false,"iso3":"TKL","iso2":"TK","code":"772","type":"country"},{"id":"2b6643b8-6fcb-5315-b350-5817c1573ea4","name":"Solomon Islands","deprecated":true,"iso3":"SLB","iso2":"SB","code":"090","type":"country"},{"id":"10a85a47-2aa1-5729-aa4d-cb226f57c280","name":"Palau","deprecated":false,"iso3":"PLW","iso2":"PW","code":"585","type":"country"},{"id":"dd1d13f6-78f2-5a0f-b4ca-ca27972be314","name":"Pitcairn Islands","deprecated":true,"iso3":"PCN","iso2":"PN","code":"612","type":"country"},{"id":"122477fe-9b24-50ed-88db-64565b4cc950","name":"Papua New Guinea","deprecated":false,"iso3":"PNG","iso2":"PG","code":"598","type":"country"},{"id":"642a86d2-e785-5f88-83a1-6b9299dc0cdf","name":"French Polynesia","deprecated":false,"iso3":"PYF","iso2":"PF","code":"258","type":"country"},{"id":"f2d903e0-16b9-5f01-a3dc-854970d49544","name":"New Zealand","deprecated":true,"iso3":"NZL","iso2":"NZ","code":"554","type":"country"},{"id":"643a299d-d43d-5be0-b5eb-4b30867675b1","name":"Niue","deprecated":false,"iso3":"NIU","iso2":"NU","code":"570","type":"country"},{"id":"65295b82-c8fc-5b50-9e20-e8a1ea9c3439","name":"Nauru","deprecated":true,"iso3":"NRU","iso2":"NR","code":"520","type":"country"},{"id":"fe7bb7a6-4c20-526b-a28f-59c99ffb6c79","name":"Norfolk Island","deprecated":true,"iso3":"NFK","iso2":"NF","code":"574","type":"country"},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"6d4a7385-b2b6-578c-b825-f2bae24ad903","name":"Northern Mariana Islands","deprecated":true,"iso3":"MNP","iso2":"MP","code":"580","type":"country"},{"id":"b49ff744-593f-5d86-ac9a-58d2d4e8307e","name":"Marshall Islands","deprecated":true,"iso3":"MHL","iso2":"MH","code":"584","type":"country"},{"id":"ec318859-4ec8-56f2-a06c-f2d23e06516e","name":"Kiribati","deprecated":false,"iso3":"KIR","iso2":"KI","code":"296","type":"country"},{"id":"6fff8b89-01f2-59d9-9a39-bd5a8c525fc9","name":"Guam","deprecated":false,"iso3":"GUM","iso2":"GU","code":"316","type":"country"},{"id":"87ea1078-3291-54f4-85e1-f2d54f97a96d","name":"Micronesia","deprecated":false,"iso3":"FSM","iso2":"FM","code":"583","type":"country"},{"id":"c7a81f83-2cd9-501d-9645-ed4170667b48","name":"Fiji","deprecated":true,"iso3":"FJI","iso2":"FJ","code":"242","type":"country"},{"id":"4343b55a-5fe8-567f-a099-f3d20b53a9cf","name":"Cook Islands","deprecated":true,"iso3":"COK","iso2":"CK","code":"184","type":"country"},{"id":"147f040e-b349-5414-81d3-dae7700c7e81","name":"Australia","deprecated":true,"iso3":"AUS","iso2":"AU","code":"036","type":"country"},{"id":"f3f980b4-9a78-5ff2-b7e7-be91523e3783","name":"American Samoa","deprecated":true,"iso3":"ASM","iso2":"AS","code":"016","type":"country"}],"countryCodes":["882","876","548","581","798","776","626","772","090","585","612","598","258","554","570","520","574","540","580","584","296","316","583","242","184","036","016"]},{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"4adcb40c-5d55-5860-97b6-ebac58830a04","name":"Croatia","deprecated":true,"iso3":"HRV","iso2":"HR","code":"191","type":"country"},{"id":"3358686b-4139-5062-b3a1-e838d19918cf","name":"Heard Island and McDonald Islands","deprecated":true,"iso3":"HMD","iso2":"HM","code":"334","type":"country"},{"id":"e92d8edd-80b3-56dd-bf35-7423b7740c84","name":"Paraguay","deprecated":false,"iso3":"PRY","iso2":"PY","code":"600","type":"country"},{"id":"8701b229-f2cb-5873-9ad8-d4f15407cd99","name":"Panama","deprecated":true,"iso3":"PAN","iso2":"PA","code":"591","type":"country"},{"id":"9cbd51af-d825-56f1-b3c3-1412697fe6d8","name":"Ghana","deprecated":true,"iso3":"GHA","iso2":"GH","code":"288","type":"country"}]}],"destinationNetworks":[{"id":"6f55bc7e-79ee-5271-b299-5eb7db9ece0e","name":"Network14","description":"Naduk tuto zatuli pedufu dowkol gapcetod ehukevnem oszi numudol ubibi pufhubfu ripsitfu.","version":"3ab046cd-f4be-55d8-af7a-7a84bc3f7716","type":"networkobject","subType":"HOST","value":"111.31.129.11","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"a820f102-7786-5e65-8b4e-66022cb061cd","name":"Network4","description":"Cutfuf ni ka viz vave cajto wouvirak rogzizde puk zogvintus jisaslit hos guvbujloc giivuzob fafanod.","version":"37093e3e-c4bb-5188-b023-e0f6a4d12463","type":"networkobject","subType":"HOST","value":"3eab:67af:0576:1163:4699:9d76:4a97:ca53","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"eb6bb0a1-cecb-55ba-8f96-9656ef090bfd","name":"Geolocation10","description":"Ziwe tukina pubki ifro winwo fo piog roswuife to ugouj zer dula haip ju.","version":"06ed679a-dbbb-5eb6-a535-ecc514c1a364","type":"geolocation","locations":[{"id":"c7eb60a1-be27-5963-87ac-0c756fe76124","name":"Oceania","deprecated":true,"code":1006,"type":"continent","countries":[{"id":"28993a70-0f71-51a6-bd15-75bbbe151d39","name":"Samoa","deprecated":true,"iso3":"WSM","iso2":"WS","code":"882","type":"country"},{"id":"91d14642-b0c8-57a5-b226-e39b80213360","name":"Wallis and Futuna","deprecated":true,"iso3":"WLF","iso2":"WF","code":"876","type":"country"},{"id":"1f8bd503-8b6b-53b7-91e8-b4f01a87f55d","name":"Vanuatu","deprecated":true,"iso3":"VUT","iso2":"VU","code":"548","type":"country"},{"id":"0822041a-9790-514e-84a5-229c82007d22","name":"U.S. Minor Outlying Islands","deprecated":true,"iso3":"UMI","iso2":"UM","code":"581","type":"country"},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"9442da73-6b47-5cab-8a0b-baa977ec390b","name":"Tonga","deprecated":true,"iso3":"TON","iso2":"TO","code":"776","type":"country"},{"id":"37cfb898-ea93-52c7-bb5e-05b5e6ff3710","name":"East Timor","deprecated":false,"iso3":"TLS","iso2":"TL","code":"626","type":"country"},{"id":"d4c50c5a-d2a1-527e-81d7-b76ab3722771","name":"Tokelau","deprecated":false,"iso3":"TKL","iso2":"TK","code":"772","type":"country"},{"id":"2b6643b8-6fcb-5315-b350-5817c1573ea4","name":"Solomon Islands","deprecated":true,"iso3":"SLB","iso2":"SB","code":"090","type":"country"},{"id":"10a85a47-2aa1-5729-aa4d-cb226f57c280","name":"Palau","deprecated":false,"iso3":"PLW","iso2":"PW","code":"585","type":"country"},{"id":"dd1d13f6-78f2-5a0f-b4ca-ca27972be314","name":"Pitcairn Islands","deprecated":true,"iso3":"PCN","iso2":"PN","code":"612","type":"country"},{"id":"122477fe-9b24-50ed-88db-64565b4cc950","name":"Papua New Guinea","deprecated":false,"iso3":"PNG","iso2":"PG","code":"598","type":"country"},{"id":"642a86d2-e785-5f88-83a1-6b9299dc0cdf","name":"French Polynesia","deprecated":false,"iso3":"PYF","iso2":"PF","code":"258","type":"country"},{"id":"f2d903e0-16b9-5f01-a3dc-854970d49544","name":"New Zealand","deprecated":true,"iso3":"NZL","iso2":"NZ","code":"554","type":"country"},{"id":"643a299d-d43d-5be0-b5eb-4b30867675b1","name":"Niue","deprecated":false,"iso3":"NIU","iso2":"NU","code":"570","type":"country"},{"id":"65295b82-c8fc-5b50-9e20-e8a1ea9c3439","name":"Nauru","deprecated":true,"iso3":"NRU","iso2":"NR","code":"520","type":"country"},{"id":"fe7bb7a6-4c20-526b-a28f-59c99ffb6c79","name":"Norfolk Island","deprecated":true,"iso3":"NFK","iso2":"NF","code":"574","type":"country"},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"6d4a7385-b2b6-578c-b825-f2bae24ad903","name":"Northern Mariana Islands","deprecated":true,"iso3":"MNP","iso2":"MP","code":"580","type":"country"},{"id":"b49ff744-593f-5d86-ac9a-58d2d4e8307e","name":"Marshall Islands","deprecated":true,"iso3":"MHL","iso2":"MH","code":"584","type":"country"},{"id":"ec318859-4ec8-56f2-a06c-f2d23e06516e","name":"Kiribati","deprecated":false,"iso3":"KIR","iso2":"KI","code":"296","type":"country"},{"id":"6fff8b89-01f2-59d9-9a39-bd5a8c525fc9","name":"Guam","deprecated":false,"iso3":"GUM","iso2":"GU","code":"316","type":"country"},{"id":"87ea1078-3291-54f4-85e1-f2d54f97a96d","name":"Micronesia","deprecated":false,"iso3":"FSM","iso2":"FM","code":"583","type":"country"},{"id":"c7a81f83-2cd9-501d-9645-ed4170667b48","name":"Fiji","deprecated":true,"iso3":"FJI","iso2":"FJ","code":"242","type":"country"},{"id":"4343b55a-5fe8-567f-a099-f3d20b53a9cf","name":"Cook Islands","deprecated":true,"iso3":"COK","iso2":"CK","code":"184","type":"country"},{"id":"147f040e-b349-5414-81d3-dae7700c7e81","name":"Australia","deprecated":true,"iso3":"AUS","iso2":"AU","code":"036","type":"country"},{"id":"f3f980b4-9a78-5ff2-b7e7-be91523e3783","name":"American Samoa","deprecated":true,"iso3":"ASM","iso2":"AS","code":"016","type":"country"}],"countryCodes":["882","876","548","581","798","776","626","772","090","585","612","598","258","554","570","520","574","540","580","584","296","316","583","242","184","036","016"]},{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"4adcb40c-5d55-5860-97b6-ebac58830a04","name":"Croatia","deprecated":true,"iso3":"HRV","iso2":"HR","code":"191","type":"country"},{"id":"3358686b-4139-5062-b3a1-e838d19918cf","name":"Heard Island and McDonald Islands","deprecated":true,"iso3":"HMD","iso2":"HM","code":"334","type":"country"},{"id":"e92d8edd-80b3-56dd-bf35-7423b7740c84","name":"Paraguay","deprecated":false,"iso3":"PRY","iso2":"PY","code":"600","type":"country"},{"id":"8701b229-f2cb-5873-9ad8-d4f15407cd99","name":"Panama","deprecated":true,"iso3":"PAN","iso2":"PA","code":"591","type":"country"},{"id":"9cbd51af-d825-56f1-b3c3-1412697fe6d8","name":"Ghana","deprecated":true,"iso3":"GHA","iso2":"GH","code":"288","type":"country"}]}],"sourcePorts":[{"id":"b19e16f9-5846-596a-9757-161e7154e68c","name":"tcp_port_1","description":"Ruwus webwepfa fo copoko aligimaj riz zeti bivsu jah ve virip kesnenwer fi wede magbuf ojku sadruh ji.","version":"a90e8fa8-216a-59a4-bce1-da2f92acd1ad","type":"tcpportobject","port":8721,"isSystemDefined":true},{"id":"2a40730e-7878-5969-ba53-1d9278cde125","name":"icmpv4port1","description":"Uva ceti behga hetivasu ajbebu rakepe ame ifa aceuriso kejic fucaoti gigvivvo gishelpob jurevmu ov maclefe.","version":"e62c0f51-027e-5a7f-b725-a96162bb7138","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8508,"isSystemDefined":false}],"destinationPorts":[{"id":"5e4d4b4d-706c-5325-b034-896d42bf9087","name":"udp_port_1","description":"Rupkoedo zuv egodid ca buapesug tu mawaduh etaeha pigfa keh it bozute wovi zijuci poscuren ifohhe.","version":"db631abc-32a3-5ca5-8ae5-a3b6f3c8371a","type":"udpportobject","port":8537,"isSystemDefined":true},{"id":"ff728962-8729-5bce-941c-1730e280dc0b","name":"icmpv6port1","description":"Uh letiof numsu bokewod gosso sowdilid bevliur idseaho vu delale luctid ila givcogev.","version":"9aca9371-12d1-5490-af24-a87e3160146f","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8452,"isSystemDefined":false}],"users":[{"id":"89cbd128-8343-5d9d-ba2e-95fec21748eb","name":"User Group 25","realmName":"taawebet","type":"trafficusergroup","realmId":2,"version":"filwupguzgur"},{"id":"08ccb2fe-b3b5-524a-8857-8df8d2b8cd4c","name":"User 6","realmName":"mazivezgez","type":"trafficuser","realmId":2,"version":"vibnilkiza"},{"id":"dfb1b17e-f313-5fb7-ae2a-62c207e63b66","name":"User 35","realmName":"jovusisenunu","type":"trafficuser","realmId":0,"version":"simohdaviz"}],"embeddedAppFilter":{"conditions":[{"filter":"detfaodvej","tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"CRITICAL"}],"applicationTypes":[{"type":"typecondition","applicationType":"CLIENT"},{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"MEDIUM"},{"type":"productivitycondition","productivity":"VERY_HIGH"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"},{"filter":"huimezuben","tags":[{"id":"63db3391-02c9-5d1b-b971-5a6427f4c9fe","version":"95d07b80-ad97-50b0-a64b-b279d1420618","appId":5,"name":"ApplicationTag5","description":"Uwano ujeoska rootmaj kammovu ivitarpoh percuk oto bacema da onsevsej jovocoog ge gafed zakas ijwimuf.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"},{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"VERY_HIGH"},{"type":"productivitycondition","productivity":"LOW"},{"type":"productivitycondition","productivity":"HIGH"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"0a6d59d9-86bf-5ca6-bcdc-8f9bbdfa8542","version":"55d07968-5435-5c3e-8840-2f0761cf28e1","name":"ApplicationFilter4","description":"Ro isuopwo azjuswu an dadwiwen kapoteno ifsi vef je omeanni riho lema berezas geci se.","applications":[{"id":"44b7bb09-58d5-59ef-abd3-7341fa4d1c7b","version":"fe155cb3-e78d-5a5b-8713-5c056c0ea86f","description":"Dazgo jefeci dulhel lowez cotgo mu ewuufih indeh bo urjur vursosoc cetco eb.","deprecated":false,"appId":8,"productivity":3,"risk":3,"name":"Application3","tagIds":["58edda62-c97b-56e5-9e6c-32926f4d3009"],"tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["794d6605-f5d9-5f26-b11d-507eac471889","0928e8e9-25a4-53d0-b118-342a26b44100"],"categories":[{"id":"794d6605-f5d9-5f26-b11d-507eac471889","version":"20176f07-7d98-5dd7-8a17-de688ee66220","appId":1,"name":"ApplicationCategory3","description":"Woc ved ecu hin potalbib la uweerabof mato dewahmo avutji wose pujda tunoduz ucu ho zopusno lo mu.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"0928e8e9-25a4-53d0-b118-342a26b44100","version":"cccc44d5-b855-569b-90ad-b26d4e3e0c66","appId":7,"name":"ApplicationCategory8","description":"Mifzonu fokero acdu panvo cuvubde tovli maz cawag kaoj gosoojo falkof hezel sig ca vo wak.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["SERVER"],"metadata":{"referenced":false},"type":"application"}],"conditions":[{"filter":"loweteziwno","tags":[{"id":"11d43e11-683f-5ec2-89c6-6b4e9a8c756d","version":"13924388-a6d9-5f80-8b3b-825736afd2bc","appId":13,"name":"ApplicationTag13","description":"Fiwjag safe jujohmi lipa gucpi la tocgomkap fozensir jafuhi vutbinij jov lifo ciduwno fuzegvef consibe hope.","metadata":{"referenced":true},"type":"applicationtag"}],"categories":[{"id":"24cd3c21-8c19-531f-81d5-08aca7b587b9","version":"b18c67e8-0f51-5f2c-88a2-11994eea44b1","appId":5,"name":"ApplicationCategory5","description":"Camweg wevovic diowu fi vo kacag vibumjih lus bowi ewatige epewa ecifoder mu gopeges.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"3cd37a5a-b5c2-516a-8eb9-c5d87fcdb2a2","version":"76af8e96-44af-5285-a65a-172f138b8941","appId":3,"name":"ApplicationCategory10","description":"Taljooco pi wo cahorti fih heose wicueci emiwoube no iwozovban ip oho im uke wu ko noed.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"VERY_HIGH"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":false},"type":"applicationfilter"}],"applications":[{"id":"d2f1b4a3-4704-59c8-9beb-dffb7ed07518","version":"b0a0aecb-aa27-5c7e-af44-3696768ae771","description":"Ruzik dat pimpe kinri teroh so ruwekat kikan fakajoz juk deb vusma iji madbizzoc carpecre moajiwa vojpi.","deprecated":true,"appId":2,"productivity":1,"risk":2,"name":"Application13","tagIds":["9b266171-0bc7-5f71-aa6c-44b8cbafa329"],"tags":[{"id":"9b266171-0bc7-5f71-aa6c-44b8cbafa329","version":"746ac683-b500-5781-b179-f61db662f8d3","appId":9,"name":"ApplicationTag9","description":"Ja lohivap wim saj zuw hinakug tiduze noemo azonimi ici kovaz ikuza wiihboz bubopmin la uge jeko.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["24cd3c21-8c19-531f-81d5-08aca7b587b9"],"categories":[{"id":"24cd3c21-8c19-531f-81d5-08aca7b587b9","version":"b18c67e8-0f51-5f2c-88a2-11994eea44b1","appId":5,"name":"ApplicationCategory5","description":"Camweg wevovic diowu fi vo kacag vibumjih lus bowi ewatige epewa ecifoder mu gopeges.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["CLIENT"],"metadata":{"referenced":true},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"ce7eba4c-0b9a-5a3f-bb88-6ce71398fbc8","version":"epozikeccow","name":"UrlGroup1","description":"Kajili nockugda van cikepuh toavah kebpi muwnumo tezotu pelapdec sif fepgo hul sacwav na.","objects":[{"id":"d31c2d0e-3ad0-5053-9a7b-a0ef29eff5f9","version":"ajolouhog","name":"Url8","description":"Kirgirac rireto vu nimu kek bo dosoze tillen wisud kerecfar evibur wen cehpa weg ju doneh.","url":"http://de.co.uk/neni","type":"urlobject"},{"id":"d72bd5cf-710c-5048-b0fa-1bda6746520d","version":"onaisujuja","name":"Url3","description":"Nolze no gavrofkep dog di buc ta oko kon pigu fuezo uzara.","url":"http://gagonofi.edu/letiga","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlCategory":{"id":"293f3f8b-e996-5139-bee7-ff7e376ed4f0","version":"2b059a77-a530-5bd9-8694-f4754a6e7538","name":"UrlCategory-8","deprecated":false,"urlCategoryId":65534,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"intrusionPolicy":{"id":"a47cb8f5-fe55-11e4-8e99-ipsN20","name":"Balanced Security and Connectivity","links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN20"},"rules":{"links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN20/rules/"}},"description":"Balanced Security and Connectivity Layer","type":"intrusionpolicy","version":"d3d7a26f-ddb0-57fb-a9bf-772424bbdd0a"},"filePolicy":{"id":"9c84889f-8c5c-5643-a489-d01bb07639a5","type":"filepolicy","policyType":"BLOCK_OFFICE_DOCUMENTS_PDF_UPLOAD_BLOCK_MALWARE_OTHERS","name":"File_Policy_3","description":"Mi rul etusisti iphogu acrevdid cas bijcaz nul ceaf napi kegpo su dozpov zikpul lohi gurukdi ke.","version":"d5e7c6d4-1f13-5cd2-9442-bdccd7e4b804"},"logFiles":false,"type":"accessrule"},{"id":"0ee93ff6-a56a-52b1-a83f-8b54dafe3154","version":"f010475d-4cda-582b-9249-754759f34394","ruleId":13,"name":"Access_Rule_13","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_FLOW_END","syslogServer":{"id":"232c98bc-4d2b-5660-a387-becfdb0a182e","version":"a39bfe87-a20f-5ce8-87ba-ef6e3fb0d749","host":"150.96.13.71","port":5897,"deviceInterface":{"mtu":5818,"enabled":true,"description":"Dib wohomfa it firasugu joev ge nu dab caejuja ba no owezru rijbofnuv da ren.","name":"outside","id":"056580af-b7b5-5ea4-9434-84acde7b7b2b","hardwareName":"GigabitEthernet1/2","macAddress":"B807.AD9D.0E4C","monitorInterface":false,"standbyMacAddress":"8F66.A03C.5C85","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"398d:4979:fd8c:5c79:130d:af73:39ac:575b/32","ipAddress":"0e08:b1ea:5a22:75ba:8e01:eaed:3442:684c/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"264c:f9d4:85a8:fdee:b56d:4b03:96d7:6285","ipAddress":"d0f4:3235:0882:22a2:f8c8:c2db:683c:9639"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"178.90.249.165","standbyIpAddress":"41.101.191.177"}},"version":"53c69bde-efdf-5307-96bb-1d0c92bec9a5","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"PASSIVE","type":"physicalinterface"},"protocol":"TCP","useManagementInterface":false,"type":"syslogserver"},"sourceZones":[{"id":"ec43d6a8-fe32-5daa-a8bd-766b57a23892","name":"SecurityZone12Name","description":"Etzasus comdupo lu jeitlov zedoj no lidwa ka beni ujenapse lowon dil ami jir.","version":"3091782d-2bd2-57e7-8447-191d486665aa","interfaces":[{"mtu":5818,"enabled":true,"description":"Setta biwofega af ihi ebele inowo inagiobo nu it fe heivu lijivok.","name":"diagnostic","id":"f7509b61-168c-5d86-9a4c-8d3a2bb23e90","hardwareName":"Management0/0","macAddress":"249A.16A4.5DED","monitorInterface":true,"standbyMacAddress":"06D4.757D.FF06","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0c4e:e907:93c3:ba7a:7842:4899:f454:2a33/32","ipAddress":"41e0:3a60:0ca6:5f1c:cdd5:9c57:4918:682f/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d039:d6f4:278a:cdd3:b9e3:2711:460f:1555","ipAddress":"7e31:6d3f:5bbc:0d7f:4df6:58b9:26a6:d462"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"227.88.54.119","standbyIpAddress":"119.107.19.197"}},"version":"e50dac9e-5493-5760-b5e5-294741f3c409","managementInterface":true,"managementOnly":true,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}},{"id":"e12d0a2e-afc7-53cb-85e7-38aa135de327","name":"SecurityZone13Name","description":"Do tewuznas ucait mad ziwgef iw unjup guzov dize guzut vibuk anpekpib nerviw ip ijpa koruf.","version":"09dc0dd3-4a94-5cf2-9efb-89a0f352e003","interfaces":[{"mtu":2652,"enabled":true,"description":"Agi pobjotu zukac rive putsi herima mepues ezijo wicimub utjamoj noskavup wupoje ra dujipale.","name":"subinterface2name","id":"353dee59-d2b6-5df6-9b8e-4f444b489176","hardwareName":"SubInterface0/2.3","macAddress":"EDB8.12E9.D2DB","monitorInterface":false,"standbyMacAddress":"5667.5103.F034","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"2647:2aea:3fdf:b4cc:6433:554a:6ab5:c594/32","ipAddress":"04f0:7320:ae63:ce9f:664b:c7e3:8867:daa9/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"3d77:5e5d:78ec:d370:2293:4026:1bbb:aee3","ipAddress":"e6eb:6fef:da47:e1c1:1523:464b:1cab:92a1"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"96.88.118.226","standbyIpAddress":"17.135.120.105"}},"version":"82ce2f08-42bf-5b19-bbbb-0c4ef276caa0","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"destinationZones":[{"id":"7fa724f3-b64c-585b-9176-69aed2b36237","name":"SecurityZone1Name","description":"Do pefa ritapo ovauciku vogomougi utino gudo momna sagocbiw bowce awu muzabwoz zetpec kit fe.","version":"9d1d113e-86e0-5106-9f6c-29cc8e8fc7fb","interfaces":[{"mtu":5818,"enabled":true,"description":"Wonca cotfo biok ugfejbah ro itedere itoh pijazu ocozojgi buk facheuho zo.","id":"ef57753e-8a0c-5454-a3b3-fbc3c570851d","hardwareName":"GigabitEthernet1/3","macAddress":"34B5.AF3E.B9E9","monitorInterface":true,"standbyMacAddress":"4AF5.3F46.87FE","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"da83:da11:93ff:4f56:084e:f1c1:269c:0dd0/32","ipAddress":"831e:6e6b:281e:8b10:94d0:03f1:b4d5:3373/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"6a3f:c0b2:5d20:fdb6:945d:bcd1:a144:7558","ipAddress":"af4f:d5f4:67bb:3263:e183:fc6c:ea34:f2e6"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"204.8.215.52","standbyIpAddress":"108.106.112.194"}},"version":"46c1bc9f-9a0a-5425-8dc2-3a04dd84c3f1","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"sourceNetworks":[{"id":"73ee665b-fbee-563d-92d0-c41d4e5fb7f2","name":"Network2","description":"Wavfu uk unlofu daefi ow fi te zebnah abaco so lodtiw kijeh upzesin kew zo eg.","version":"d5877fad-91a9-5848-95bd-509fc9538ec7","type":"networkobject","subType":"NETWORK","value":"166.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":false}},{"id":"91eec2e0-40a0-5a21-8e47-895180936601","name":"Network3","description":"Sipato cebda bujno ajnona kata sacigi kirkoc adicazin wewomu hiferkuz wekog ja domkag ovnejegu bihod.","version":"4bd8c9f6-0f14-5c4f-9946-58217f033d54","type":"networkobject","subType":"NETWORK","value":"233.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":false}},{"id":"6fd7b2ed-8cb5-5f6d-9484-1eb947d9d21d","name":"Geolocation2","description":"Hu ewecorek laknueto mene nacudule pa can bevuniv ajhidzug daw murpeuza nafkoz oga.","version":"12c26d86-219a-59fd-85fb-aaf5939a4e66","type":"geolocation","locations":[{"id":"8d0b6206-9550-54d8-9ec8-3ffa76cf5aa1","name":"South America","deprecated":true,"code":1003,"type":"continent","countries":[{"id":"f15f76ba-d150-5ed1-8d49-329860b8a4c2","name":"Venezuela","deprecated":false,"iso3":"VEN","iso2":"VE","code":"862","type":"country"},{"id":"a05f1e97-1b5e-5f45-b53a-373f28de0edc","name":"Uruguay","deprecated":false,"iso3":"URY","iso2":"UY","code":"858","type":"country"},{"id":"c16f6991-a7d7-51dc-85d3-43752e0c5d10","name":"Suriname","deprecated":true,"iso3":"SUR","iso2":"SR","code":"740","type":"country"},{"id":"e92d8edd-80b3-56dd-bf35-7423b7740c84","name":"Paraguay","deprecated":false,"iso3":"PRY","iso2":"PY","code":"600","type":"country"},{"id":"465abc15-6361-5901-99d0-014fd0a8fb59","name":"Peru","deprecated":false,"iso3":"PER","iso2":"PE","code":"604","type":"country"},{"id":"28b8a9fc-2a6a-5fd0-ba10-e3607052f0d1","name":"Guyana","deprecated":false,"iso3":"GUY","iso2":"GY","code":"328","type":"country"},{"id":"f21ae5ba-5139-5bc5-9b7c-6607bf1064c0","name":"French Guiana","deprecated":false,"iso3":"GUF","iso2":"GF","code":"254","type":"country"},{"id":"9c4fc5b1-9569-52be-a502-a076da629c1a","name":"Falkland Islands","deprecated":false,"iso3":"FLK","iso2":"FK","code":"238","type":"country"},{"id":"90518b4d-6bb9-52e6-abd1-d2f35624ff20","name":"Ecuador","deprecated":true,"iso3":"ECU","iso2":"EC","code":"218","type":"country"},{"id":"1bb5225e-e880-5bc6-b4b5-373e05ab4ebf","name":"Colombia","deprecated":false,"iso3":"COL","iso2":"CO","code":"170","type":"country"},{"id":"c73e21a5-7336-58ba-9d53-a3d2eb1e1fdd","name":"Chile","deprecated":true,"iso3":"CHL","iso2":"CL","code":"152","type":"country"},{"id":"df4f3356-7c77-5629-8a0c-7ed0e899c303","name":"Brazil","deprecated":false,"iso3":"BRA","iso2":"BR","code":"076","type":"country"},{"id":"8b0d595a-61a0-508f-bacd-264ee85755cf","name":"Bolivia","deprecated":false,"iso3":"BOL","iso2":"BO","code":"068","type":"country"},{"id":"1adcc1e8-564f-5b54-a236-fc72bae227b9","name":"Argentina","deprecated":false,"iso3":"ARG","iso2":"AR","code":"032","type":"country"}],"countryCodes":["862","858","740","600","604","328","254","238","218","170","152","076","068","032"]},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"a7b4cd03-9dc0-572f-82ff-fef0153b4c8c","name":"Denmark","deprecated":true,"iso3":"DNK","iso2":"DK","code":"208","type":"country"},{"id":"ba4897cd-087a-5292-b1be-d3a00a7f26bb","name":"South Georgia and the South Sandwich Islands","deprecated":true,"iso3":"SGS","iso2":"GS","code":"239","type":"country"},{"id":"76d9fd77-8fb0-5b69-a7b9-5ceae0c32261","name":"Sint Maarten","deprecated":false,"iso3":"SXM","iso2":"SX","code":"534","type":"country"},{"id":"b4bd346d-94ee-5893-8439-83dcc230d37e","name":"Burkina Faso","deprecated":false,"iso3":"BFA","iso2":"BF","code":"854","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"}]}],"destinationNetworks":[{"id":"73ee665b-fbee-563d-92d0-c41d4e5fb7f2","name":"Network2","description":"Wavfu uk unlofu daefi ow fi te zebnah abaco so lodtiw kijeh upzesin kew zo eg.","version":"d5877fad-91a9-5848-95bd-509fc9538ec7","type":"networkobject","subType":"NETWORK","value":"166.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":false}},{"id":"91eec2e0-40a0-5a21-8e47-895180936601","name":"Network3","description":"Sipato cebda bujno ajnona kata sacigi kirkoc adicazin wewomu hiferkuz wekog ja domkag ovnejegu bihod.","version":"4bd8c9f6-0f14-5c4f-9946-58217f033d54","type":"networkobject","subType":"NETWORK","value":"233.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":false}},{"id":"6fd7b2ed-8cb5-5f6d-9484-1eb947d9d21d","name":"Geolocation2","description":"Hu ewecorek laknueto mene nacudule pa can bevuniv ajhidzug daw murpeuza nafkoz oga.","version":"12c26d86-219a-59fd-85fb-aaf5939a4e66","type":"geolocation","locations":[{"id":"8d0b6206-9550-54d8-9ec8-3ffa76cf5aa1","name":"South America","deprecated":true,"code":1003,"type":"continent","countries":[{"id":"f15f76ba-d150-5ed1-8d49-329860b8a4c2","name":"Venezuela","deprecated":false,"iso3":"VEN","iso2":"VE","code":"862","type":"country"},{"id":"a05f1e97-1b5e-5f45-b53a-373f28de0edc","name":"Uruguay","deprecated":false,"iso3":"URY","iso2":"UY","code":"858","type":"country"},{"id":"c16f6991-a7d7-51dc-85d3-43752e0c5d10","name":"Suriname","deprecated":true,"iso3":"SUR","iso2":"SR","code":"740","type":"country"},{"id":"e92d8edd-80b3-56dd-bf35-7423b7740c84","name":"Paraguay","deprecated":false,"iso3":"PRY","iso2":"PY","code":"600","type":"country"},{"id":"465abc15-6361-5901-99d0-014fd0a8fb59","name":"Peru","deprecated":false,"iso3":"PER","iso2":"PE","code":"604","type":"country"},{"id":"28b8a9fc-2a6a-5fd0-ba10-e3607052f0d1","name":"Guyana","deprecated":false,"iso3":"GUY","iso2":"GY","code":"328","type":"country"},{"id":"f21ae5ba-5139-5bc5-9b7c-6607bf1064c0","name":"French Guiana","deprecated":false,"iso3":"GUF","iso2":"GF","code":"254","type":"country"},{"id":"9c4fc5b1-9569-52be-a502-a076da629c1a","name":"Falkland Islands","deprecated":false,"iso3":"FLK","iso2":"FK","code":"238","type":"country"},{"id":"90518b4d-6bb9-52e6-abd1-d2f35624ff20","name":"Ecuador","deprecated":true,"iso3":"ECU","iso2":"EC","code":"218","type":"country"},{"id":"1bb5225e-e880-5bc6-b4b5-373e05ab4ebf","name":"Colombia","deprecated":false,"iso3":"COL","iso2":"CO","code":"170","type":"country"},{"id":"c73e21a5-7336-58ba-9d53-a3d2eb1e1fdd","name":"Chile","deprecated":true,"iso3":"CHL","iso2":"CL","code":"152","type":"country"},{"id":"df4f3356-7c77-5629-8a0c-7ed0e899c303","name":"Brazil","deprecated":false,"iso3":"BRA","iso2":"BR","code":"076","type":"country"},{"id":"8b0d595a-61a0-508f-bacd-264ee85755cf","name":"Bolivia","deprecated":false,"iso3":"BOL","iso2":"BO","code":"068","type":"country"},{"id":"1adcc1e8-564f-5b54-a236-fc72bae227b9","name":"Argentina","deprecated":false,"iso3":"ARG","iso2":"AR","code":"032","type":"country"}],"countryCodes":["862","858","740","600","604","328","254","238","218","170","152","076","068","032"]},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"a7b4cd03-9dc0-572f-82ff-fef0153b4c8c","name":"Denmark","deprecated":true,"iso3":"DNK","iso2":"DK","code":"208","type":"country"},{"id":"ba4897cd-087a-5292-b1be-d3a00a7f26bb","name":"South Georgia and the South Sandwich Islands","deprecated":true,"iso3":"SGS","iso2":"GS","code":"239","type":"country"},{"id":"76d9fd77-8fb0-5b69-a7b9-5ceae0c32261","name":"Sint Maarten","deprecated":false,"iso3":"SXM","iso2":"SX","code":"534","type":"country"},{"id":"b4bd346d-94ee-5893-8439-83dcc230d37e","name":"Burkina Faso","deprecated":false,"iso3":"BFA","iso2":"BF","code":"854","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"}]}],"sourcePorts":[{"id":"b19e16f9-5846-596a-9757-161e7154e68c","name":"tcp_port_1","description":"Ruwus webwepfa fo copoko aligimaj riz zeti bivsu jah ve virip kesnenwer fi wede magbuf ojku sadruh ji.","version":"a90e8fa8-216a-59a4-bce1-da2f92acd1ad","type":"tcpportobject","port":8721,"isSystemDefined":true},{"id":"5e4d4b4d-706c-5325-b034-896d42bf9087","name":"udp_port_1","description":"Rupkoedo zuv egodid ca buapesug tu mawaduh etaeha pigfa keh it bozute wovi zijuci poscuren ifohhe.","version":"db631abc-32a3-5ca5-8ae5-a3b6f3c8371a","type":"udpportobject","port":8537,"isSystemDefined":true}],"destinationPorts":[{"id":"d0ecb6d1-cc76-58fb-a392-4e9c9537be4c","name":"icmpv4port2","description":"Asci be jutgu wo susadagi woveven bafosjoc ceec wovukiv tati tepav gu za muhhudbi.","version":"54ed4735-cf04-5504-8a5a-2dd0bec3f5a9","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8251,"isSystemDefined":false},{"id":"34f7bed0-39b1-5064-a6e7-27b5431b2066","name":"udp_port_2","description":"Eji leklo infagziv wut vujapvug avvutu toduj dulnarse ifdo bipujhas ajo vualo efapomiw ge nepe gomhuh.","version":"5785591f-a79c-5ff4-bc82-b3dd6d70a236","type":"udpportobject","port":8830,"isSystemDefined":false}],"users":[{"id":"f7417bdc-8866-5397-8f4b-e1f2d7956bcc","name":"User 31","realmName":"guhecogguk","type":"trafficuser","realmId":0,"version":"asogtiodo"},{"id":"0b6aa54b-ec2c-5a0f-b1b0-7b520a57881e","name":"User Group 26","realmName":"poptawkihes","type":"trafficusergroup","realmId":2,"version":"sumewwaruf"},{"id":"64635a18-7a26-5286-be43-8b2d4c3ed63d","name":"User 33","realmName":"nekonije","type":"trafficuser","realmId":0,"version":"cozewidev"}],"embeddedAppFilter":{"conditions":[{"filter":"mutilaje","tags":[{"id":"df3a88b5-3e3b-5024-9d9f-25d3262ce374","version":"b689fe7b-2b28-59fb-93cf-3995fe189cf1","appId":3,"name":"ApplicationTag15","description":"Ofihzaj hesa do dawo mipegil bilel liviip mub zahtavso rut nu zaj weuki dep suspufun ac rap.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"415702f2-3bd8-5dba-adea-dd03452067a5","version":"1062501a-214c-51d1-9af3-d9c2ca87588f","appId":4,"name":"ApplicationCategory11","description":"Dubofmih taj cukij fes vizoc urzip lazigeha pot bak jackoaz ufi ebomujme ce.","metadata":{"referenced":true},"type":"applicationcategory"},{"id":"3cd37a5a-b5c2-516a-8eb9-c5d87fcdb2a2","version":"76af8e96-44af-5285-a65a-172f138b8941","appId":3,"name":"ApplicationCategory10","description":"Taljooco pi wo cahorti fih heose wicueci emiwoube no iwozovban ip oho im uke wu ko noed.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"MEDIUM"}],"applicationTypes":[{"type":"typecondition","applicationType":"CLIENT"},{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"MEDIUM"},{"type":"productivitycondition","productivity":"LOW"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"},{"filter":"huimezuben","tags":[{"id":"63db3391-02c9-5d1b-b971-5a6427f4c9fe","version":"95d07b80-ad97-50b0-a64b-b279d1420618","appId":5,"name":"ApplicationTag5","description":"Uwano ujeoska rootmaj kammovu ivitarpoh percuk oto bacema da onsevsej jovocoog ge gafed zakas ijwimuf.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"},{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"VERY_HIGH"},{"type":"productivitycondition","productivity":"LOW"},{"type":"productivitycondition","productivity":"HIGH"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"cc35245d-826d-5658-b4fe-95991a398ec6","version":"d479ec11-d1a3-5f15-b8dc-04f5ecbe8b48","name":"ApplicationFilter1","description":"Foan parot akitu nufidsu purfu biwowobi piahote noturtus otsido sa jihda pebip tuwi gocre.","applications":[{"id":"f8c5fef0-916a-541e-9113-de4951dde18b","version":"c07380b4-d91f-5a9b-aed7-efbe152c2f6b","description":"Aloul gouwtu riguse luzmokfof somi ehroz esecegwaf fafal heeg ohban fi ijga.","deprecated":true,"appId":6,"productivity":1,"risk":3,"name":"Application6","tagIds":["63db3391-02c9-5d1b-b971-5a6427f4c9fe"],"tags":[{"id":"63db3391-02c9-5d1b-b971-5a6427f4c9fe","version":"95d07b80-ad97-50b0-a64b-b279d1420618","appId":5,"name":"ApplicationTag5","description":"Uwano ujeoska rootmaj kammovu ivitarpoh percuk oto bacema da onsevsej jovocoog ge gafed zakas ijwimuf.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["33552c21-0930-5bb5-8459-9b7608cda68e","794d6605-f5d9-5f26-b11d-507eac471889"],"categories":[{"id":"33552c21-0930-5bb5-8459-9b7608cda68e","version":"73578557-169e-5431-99f4-4a87fb56d57c","appId":4,"name":"ApplicationCategory9","description":"Tir upwul taf foj igonas mawejus ba ni loj racwu pu nelkal gofifun zemcuz ut.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"794d6605-f5d9-5f26-b11d-507eac471889","version":"20176f07-7d98-5dd7-8a17-de688ee66220","appId":1,"name":"ApplicationCategory3","description":"Woc ved ecu hin potalbib la uweerabof mato dewahmo avutji wose pujda tunoduz ucu ho zopusno lo mu.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["WEBAPP"],"metadata":{"referenced":false},"type":"application"}],"conditions":[{"filter":"baketfale","tags":[{"id":"0b45de63-5252-5257-acf6-ce494cdb905a","version":"9c3ed423-1b8a-5f1f-aae0-a507cc188490","appId":6,"name":"ApplicationTag6","description":"Varejse ji ogouvu rin nubuten bezozmaj coeg zuralse pa zitomgon lu rigugip.","metadata":{"referenced":true},"type":"applicationtag"}],"categories":[{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"HIGH"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"VERY_LOW"},{"type":"productivitycondition","productivity":"MEDIUM"},{"type":"productivitycondition","productivity":"LOW"}],"type":"applicationfiltercondition"}],"isSystemDefined":true,"metadata":{"referenced":false},"type":"applicationfilter"}],"applications":[{"id":"7cd12f14-70e7-51d8-abf1-af76ca735eef","version":"544ddfb1-dbc2-5901-aeaf-e76f489ff422","description":"Mata he jijto miaked lirki fuus ediupu rarengu ke iri escut gusotpi fa so piltef ob ocaguzuc zi.","deprecated":true,"appId":7,"productivity":3,"risk":4,"name":"Application9","tagIds":["aad0af81-b4ad-5a4a-a395-d88fc2abb8c4"],"tags":[{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["fff4b47c-a653-5729-a31a-e6353d420768","24cd3c21-8c19-531f-81d5-08aca7b587b9"],"categories":[{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"24cd3c21-8c19-531f-81d5-08aca7b587b9","version":"b18c67e8-0f51-5f2c-88a2-11994eea44b1","appId":5,"name":"ApplicationCategory5","description":"Camweg wevovic diowu fi vo kacag vibumjih lus bowi ewatige epewa ecifoder mu gopeges.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["SERVER","WEBAPP"],"metadata":{"referenced":true},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"ef71cd89-a0fc-5994-aaff-0f427dff92fa","version":"pugvagpugmi","name":"UrlGroup5","description":"Muhzipil korezoki kuwelas fojulcud jum ineteig ob zeluc mekpufes api ajnovawa ro tadi.","objects":[{"id":"0776578c-c6ee-58a3-91de-7d50b64343b8","version":"bimupair","name":"Url7","description":"Mer komad cozmersul el gaze fupfod gij pikukkop kavimgen befowez guwojo bikpogezu ice niruvpo ganal ovo taun.","url":"http://difepfel.io/ovcekwe","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlCategory":{"id":"e1088b47-43c6-509a-a722-763318471791","version":"53a76ab0-006b-5dd4-abc4-c0f9a0d58f50","name":"UrlCategory-13","deprecated":false,"urlCategoryId":13,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"intrusionPolicy":{"id":"a47cb8f6-fe55-11e4-8e99-ipsN10","name":"Connectivity Over Security","links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f6-fe55-11e4-8e99-ipsN10"},"rules":{"links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f6-fe55-11e4-8e99-ipsN10/rules/"}},"description":"Connectivity Over Security Layer","type":"intrusionpolicy","version":"f17dd031-7eba-5f6f-8734-300a871471fe"},"logFiles":false,"type":"accessrule"},{"id":"c41e7ab2-e3bc-5bba-a476-b4f4774a0076","version":"5745feb2-fdcf-5da9-8339-c25a1bad3bc4","ruleId":14,"name":"Access_Rule_14","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_BOTH","syslogServer":{"id":"2f33d844-7516-5f6e-87ed-8da737ce2a78","version":"d7f05fd4-062b-5c81-9a97-7de1c7591fda","host":"139.79.31.136","port":5897,"protocol":"TCP","useManagementInterface":true,"type":"syslogserver"},"sourceZones":[{"id":"ec43d6a8-fe32-5daa-a8bd-766b57a23892","name":"SecurityZone12Name","description":"Etzasus comdupo lu jeitlov zedoj no lidwa ka beni ujenapse lowon dil ami jir.","version":"3091782d-2bd2-57e7-8447-191d486665aa","interfaces":[{"mtu":5818,"enabled":true,"description":"Setta biwofega af ihi ebele inowo inagiobo nu it fe heivu lijivok.","name":"diagnostic","id":"f7509b61-168c-5d86-9a4c-8d3a2bb23e90","hardwareName":"Management0/0","macAddress":"249A.16A4.5DED","monitorInterface":true,"standbyMacAddress":"06D4.757D.FF06","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0c4e:e907:93c3:ba7a:7842:4899:f454:2a33/32","ipAddress":"41e0:3a60:0ca6:5f1c:cdd5:9c57:4918:682f/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d039:d6f4:278a:cdd3:b9e3:2711:460f:1555","ipAddress":"7e31:6d3f:5bbc:0d7f:4df6:58b9:26a6:d462"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"227.88.54.119","standbyIpAddress":"119.107.19.197"}},"version":"e50dac9e-5493-5760-b5e5-294741f3c409","managementInterface":true,"managementOnly":true,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}},{"id":"9c8667b7-4e34-56df-b092-1340af45b0d2","name":"SecurityZone10Name","description":"Joni gagko ugmucba ogparjad uvre hobneva wete epujein nelgidma kuollum wi gabvanaj sosso.","version":"bc2e044f-1753-51e2-aa7a-ea7362c6b23b","interfaces":[{"mtu":5818,"enabled":false,"description":"Rojsitepo fifgar sovaf ebabovvoj ivjinjig ite sadehtud upazeh dejsabfuv tipgo cosbe femigpi ac aztazta beduw.","id":"fa3dc115-5c3e-51ae-aa38-60ff9abd415a","hardwareName":"GigabitEthernet1/7","macAddress":"55F1.B70C.C1B7","monitorInterface":false,"standbyMacAddress":"B24B.66FA.3266","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"29df:8589:549c:1eef:cc3a:60bf:e04c:3627/32","ipAddress":"afd9:ec18:e2d8:02b5:d0fb:e88c:cea2:e443/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"1a98:7998:35a2:1767:f8b7:fea5:dc50:6a35","ipAddress":"2365:d545:9cd1:ab13:70c3:7177:cd7b:749e"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"135.29.245.249","standbyIpAddress":"74.247.146.212"}},"version":"143d2951-eca6-58fa-b11e-89d0e27b913c","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]},{"mtu":2652,"enabled":false,"description":"Cacfi rijgebpuj hotow vu jisfesgub os biami baajo cimod totufo cajip epkaeg ezeugpek ucifulo huzdeal.","name":"subinterface8name","id":"90da9e2e-5eb1-5d7f-95cf-8759bf36f644","hardwareName":"SubInterface0/8.9","macAddress":"8C77.2E4D.7213","monitorInterface":false,"standbyMacAddress":"32AD.D756.5E62","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"1ca8:b55c:d9ed:3be2:2955:da65:a52c:d0fc/32","ipAddress":"085b:3c0e:113f:ccef:6d12:cb57:ef1d:431d/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"3025:32ff:78fb:37e2:42a3:8d40:64ee:e93e","ipAddress":"7aea:6aed:7d14:3ac6:df8b:0446:5b7d:f55f"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"225.196.76.214","standbyIpAddress":"62.250.115.23"}},"version":"4e59e028-4b81-5f28-9fbf-6033fd2394b8","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}}],"destinationZones":[{"id":"8cb69a8f-7d8d-5f4e-9a4f-f6e717f833ed","name":"SecurityZone3Name","description":"Udanovja dupolo zurepi ufmu ah lezup ba ga jur duvorzu abevabji zil nuikihi wopuw.","version":"dd83a4d5-be23-51f8-9b73-2ae9e26f7d36","interfaces":[{"mtu":2652,"enabled":false,"description":"Efupaf nas ilureg zetikdav emki fafiv tihug orhid zimurfo naferal va ta ug za ur di zetsa ragizike.","name":"subinterface10name","id":"4307a6d5-0ef1-55d4-adc4-0461c31b7eb5","hardwareName":"SubInterface0/10.11","macAddress":"F617.A8F2.5DEB","monitorInterface":true,"standbyMacAddress":"0E24.391A.BFD9","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"c324:084e:8a04:523f:64ec:2b27:9f07:6a8d/32","ipAddress":"0faf:b8b8:7fbe:0d00:facd:c82d:f721:93dd/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"bc90:477f:99f9:ee80:1faa:1f0c:a2a6:77b7","ipAddress":"2d31:24c2:acd3:16b0:d1df:b4b6:763f:48c0"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"250.15.33.10","standbyIpAddress":"254.220.208.229"}},"version":"0f193aa1-ad09-52dd-98e8-eb32e2e61484","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"sourceNetworks":[{"id":"25837b53-40d7-599f-9a1e-0a5391f2662e","name":"Network1","description":"Ser ahpi penul nuszil ojsuvo zavlatha junez afuhi soewuteh ha larhoose lijuto ruhi za murmurgu eznehfa nejag piv.","version":"0761c298-1c3c-5537-971c-17934322192b","type":"networkobject","subType":"HOST","value":"f92d:3cda:6fb3:7e4b:db95:8984:e616:928e","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"6f55bc7e-79ee-5271-b299-5eb7db9ece0e","name":"Network14","description":"Naduk tuto zatuli pedufu dowkol gapcetod ehukevnem oszi numudol ubibi pufhubfu ripsitfu.","version":"3ab046cd-f4be-55d8-af7a-7a84bc3f7716","type":"networkobject","subType":"HOST","value":"111.31.129.11","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"2082a308-8b86-5219-b121-d470ff1b8aa8","name":"Geolocation14","description":"Heivkib tij budvoddij abauzjuk obuvunken fiji tajo puluno kahja vozrejnak hizebivis dowu cujtabti kelij heh mo pifgiri lamfajkuw.","version":"db2ff476-1b01-52e6-8574-95caec83dfa4","type":"geolocation","locations":[{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"92e4bed7-5044-5b4f-8d3f-1239ff903965","name":"France","deprecated":true,"iso3":"FRA","iso2":"FR","code":"250","type":"country"},{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"f15f76ba-d150-5ed1-8d49-329860b8a4c2","name":"Venezuela","deprecated":false,"iso3":"VEN","iso2":"VE","code":"862","type":"country"},{"id":"57110fb6-aee4-50cf-a1ad-e8e3cf723b03","name":"Curacao","deprecated":false,"iso3":"CUW","iso2":"CW","code":"531","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"}]}],"destinationNetworks":[{"id":"25837b53-40d7-599f-9a1e-0a5391f2662e","name":"Network1","description":"Ser ahpi penul nuszil ojsuvo zavlatha junez afuhi soewuteh ha larhoose lijuto ruhi za murmurgu eznehfa nejag piv.","version":"0761c298-1c3c-5537-971c-17934322192b","type":"networkobject","subType":"HOST","value":"f92d:3cda:6fb3:7e4b:db95:8984:e616:928e","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"6f55bc7e-79ee-5271-b299-5eb7db9ece0e","name":"Network14","description":"Naduk tuto zatuli pedufu dowkol gapcetod ehukevnem oszi numudol ubibi pufhubfu ripsitfu.","version":"3ab046cd-f4be-55d8-af7a-7a84bc3f7716","type":"networkobject","subType":"HOST","value":"111.31.129.11","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"2082a308-8b86-5219-b121-d470ff1b8aa8","name":"Geolocation14","description":"Heivkib tij budvoddij abauzjuk obuvunken fiji tajo puluno kahja vozrejnak hizebivis dowu cujtabti kelij heh mo pifgiri lamfajkuw.","version":"db2ff476-1b01-52e6-8574-95caec83dfa4","type":"geolocation","locations":[{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"92e4bed7-5044-5b4f-8d3f-1239ff903965","name":"France","deprecated":true,"iso3":"FRA","iso2":"FR","code":"250","type":"country"},{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"f15f76ba-d150-5ed1-8d49-329860b8a4c2","name":"Venezuela","deprecated":false,"iso3":"VEN","iso2":"VE","code":"862","type":"country"},{"id":"57110fb6-aee4-50cf-a1ad-e8e3cf723b03","name":"Curacao","deprecated":false,"iso3":"CUW","iso2":"CW","code":"531","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"}]}],"sourcePorts":[{"id":"b19e16f9-5846-596a-9757-161e7154e68c","name":"tcp_port_1","description":"Ruwus webwepfa fo copoko aligimaj riz zeti bivsu jah ve virip kesnenwer fi wede magbuf ojku sadruh ji.","version":"a90e8fa8-216a-59a4-bce1-da2f92acd1ad","type":"tcpportobject","port":8721,"isSystemDefined":true},{"id":"34f7bed0-39b1-5064-a6e7-27b5431b2066","name":"udp_port_2","description":"Eji leklo infagziv wut vujapvug avvutu toduj dulnarse ifdo bipujhas ajo vualo efapomiw ge nepe gomhuh.","version":"5785591f-a79c-5ff4-bc82-b3dd6d70a236","type":"udpportobject","port":8830,"isSystemDefined":false}],"destinationPorts":[{"id":"5e4d4b4d-706c-5325-b034-896d42bf9087","name":"udp_port_1","description":"Rupkoedo zuv egodid ca buapesug tu mawaduh etaeha pigfa keh it bozute wovi zijuci poscuren ifohhe.","version":"db631abc-32a3-5ca5-8ae5-a3b6f3c8371a","type":"udpportobject","port":8537,"isSystemDefined":true},{"id":"1a4f8032-f665-5045-b0d8-a48b339750d1","name":"tcp_port_2","description":"Ku soguzsi ragibi nupavidag faji kovor ikikov efa ha cozuju inietu daf hif iso.","version":"b6ff8844-fd46-5e03-9ca4-00b7bc8bd936","type":"tcpportobject","port":8189,"isSystemDefined":false}],"users":[{"id":"bcbb5aa1-c0f1-5a30-9a42-e9985b8edb6a","name":"User Group 4","realmName":"hucacdipzet","type":"trafficusergroup","realmId":2,"version":"hadojmica"},{"id":"e4cf55a1-9e8b-5e8b-a91e-ed734a516447","name":"User Group 29","realmName":"wicocetifow","type":"trafficusergroup","realmId":2,"version":"ohkofalezi"},{"id":"a4f6665c-e273-5ca6-84e8-f2535614eff2","name":"User 9","realmName":"egumutreawi","type":"trafficuser","realmId":2,"version":"gozojvubur"}],"embeddedAppFilter":{"conditions":[{"filter":"loweteziwno","tags":[{"id":"11d43e11-683f-5ec2-89c6-6b4e9a8c756d","version":"13924388-a6d9-5f80-8b3b-825736afd2bc","appId":13,"name":"ApplicationTag13","description":"Fiwjag safe jujohmi lipa gucpi la tocgomkap fozensir jafuhi vutbinij jov lifo ciduwno fuzegvef consibe hope.","metadata":{"referenced":true},"type":"applicationtag"}],"categories":[{"id":"24cd3c21-8c19-531f-81d5-08aca7b587b9","version":"b18c67e8-0f51-5f2c-88a2-11994eea44b1","appId":5,"name":"ApplicationCategory5","description":"Camweg wevovic diowu fi vo kacag vibumjih lus bowi ewatige epewa ecifoder mu gopeges.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"3cd37a5a-b5c2-516a-8eb9-c5d87fcdb2a2","version":"76af8e96-44af-5285-a65a-172f138b8941","appId":3,"name":"ApplicationCategory10","description":"Taljooco pi wo cahorti fih heose wicueci emiwoube no iwozovban ip oho im uke wu ko noed.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"VERY_HIGH"}],"type":"applicationfiltercondition"},{"filter":"uckupehot","tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"},{"type":"typecondition","applicationType":"CLIENT"}],"productivities":[{"type":"productivitycondition","productivity":"LOW"},{"type":"productivitycondition","productivity":"VERY_HIGH"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"d34fc0ae-3694-55ab-9ffc-19c66d834cb7","version":"4743a5f3-7dcb-5b78-afd0-0058ca39da4f","name":"ApplicationFilter8","description":"Putzo vowev ec namhilteg kedo jejes tudidan aju er ke deetopo peug ahi bagnuse bacivvep vosev to.","applications":[{"id":"d2f1b4a3-4704-59c8-9beb-dffb7ed07518","version":"b0a0aecb-aa27-5c7e-af44-3696768ae771","description":"Ruzik dat pimpe kinri teroh so ruwekat kikan fakajoz juk deb vusma iji madbizzoc carpecre moajiwa vojpi.","deprecated":true,"appId":2,"productivity":1,"risk":2,"name":"Application13","tagIds":["9b266171-0bc7-5f71-aa6c-44b8cbafa329"],"tags":[{"id":"9b266171-0bc7-5f71-aa6c-44b8cbafa329","version":"746ac683-b500-5781-b179-f61db662f8d3","appId":9,"name":"ApplicationTag9","description":"Ja lohivap wim saj zuw hinakug tiduze noemo azonimi ici kovaz ikuza wiihboz bubopmin la uge jeko.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["24cd3c21-8c19-531f-81d5-08aca7b587b9"],"categories":[{"id":"24cd3c21-8c19-531f-81d5-08aca7b587b9","version":"b18c67e8-0f51-5f2c-88a2-11994eea44b1","appId":5,"name":"ApplicationCategory5","description":"Camweg wevovic diowu fi vo kacag vibumjih lus bowi ewatige epewa ecifoder mu gopeges.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["CLIENT"],"metadata":{"referenced":true},"type":"application"}],"conditions":[{"filter":"kaibaagiaze","tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"63db3391-02c9-5d1b-b971-5a6427f4c9fe","version":"95d07b80-ad97-50b0-a64b-b279d1420618","appId":5,"name":"ApplicationTag5","description":"Uwano ujeoska rootmaj kammovu ivitarpoh percuk oto bacema da onsevsej jovocoog ge gafed zakas ijwimuf.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"0928e8e9-25a4-53d0-b118-342a26b44100","version":"cccc44d5-b855-569b-90ad-b26d4e3e0c66","appId":7,"name":"ApplicationCategory8","description":"Mifzonu fokero acdu panvo cuvubde tovli maz cawag kaoj gosoojo falkof hezel sig ca vo wak.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"VERY_LOW"},{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"CLIENT"},{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"LOW"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":true},"type":"applicationfilter"}],"applications":[{"id":"368e2c4f-cce1-574d-b5ee-ab9d539cf248","version":"3ecf8402-8607-5fdc-a148-f5abddf84f0a","description":"Apeja libsul uweb osjoti ge uzu fal gob woletkew be tu hah ha wuvekohuz gacaw.","deprecated":true,"appId":4,"productivity":1,"risk":0,"name":"Application14","tagIds":["9b16dd72-476a-5ac0-8aeb-fbf6e1f45438"],"tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["5f0662ef-3382-5357-bf35-b9b7361aae44"],"categories":[{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["WEBAPP","SERVER"],"metadata":{"referenced":false},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"ffe7a902-b85c-5fd6-af84-62f80cd30c65","version":"weowagopwib","name":"UrlGroup7","description":"Doaniopa kojutwef va uzu ji riw hoap veruhro ge nej tozbuz uzbohi ma pok.","objects":[{"id":"4dcd5400-fbdc-5d2e-a182-437ae706284c","version":"erreupih","name":"Url11","description":"Mu wiod pa winhuta ukzup foveba conefda zecvi wit ciahujah bo lahfonhe adcogo mori.","url":"http://sodzup.io/pivkaod","type":"urlobject"},{"id":"1ec355c1-47fb-55b1-b8d1-6d6a465821ca","version":"hapevemoco","name":"Url10","description":"Cagsif ju ilawusne kal uw tewwuvmul cu suilu putuz fuwabe wi favig bibothep ti hire gucrak.","url":"http://ni.net/civ","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlReputation":{"id":"d8b59166-b6ce-5232-a41d-e67269d63bc7","name":"Suspicious sites","index":4,"startPercentage":21,"endPercentage":40,"version":"cf849fee-4718-503d-bccb-a9e5c26d78b6","type":"urlreputation"},"urlCategory":{"id":"3a94fe91-baa1-5666-a509-a616e42f8f66","version":"d7d497cd-7431-59ca-be9a-bff06b1aec95","name":"UrlCategory-5","deprecated":false,"urlCategoryId":5,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"intrusionPolicy":{"id":"a47cb8f6-fe55-11e4-8e99-ipsN10","name":"Connectivity Over Security","links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f6-fe55-11e4-8e99-ipsN10"},"rules":{"links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f6-fe55-11e4-8e99-ipsN10/rules/"}},"description":"Connectivity Over Security Layer","type":"intrusionpolicy","version":"f17dd031-7eba-5f6f-8734-300a871471fe"},"logFiles":false,"type":"accessrule"},{"id":"f59c7fc1-9662-5c46-ba02-2221f038a859","version":"f4463d3c-c99f-5a40-bf7e-3b0954c88c9d","ruleId":15,"name":"Access_Rule_15","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_BOTH","syslogServer":{"id":"8b2497cb-1dee-5d91-88e3-cf2ba71d6d57","version":"35ab6c5c-b8e4-5e24-b013-4ffd6ed479b6","host":"83.58.8.189","port":5897,"protocol":"UDP","useManagementInterface":true,"type":"syslogserver"},"sourceZones":[{"id":"f13918c2-287c-5026-b2d4-ae18cf69fd8c","name":"SecurityZone2Name","description":"Elaba havor do tifgovew di tobeep osiho gamalun ilokavo hosoc bavmep lo katzakcu we lekucazif jusifi baluhufa ivinu.","version":"f1cb8b72-77e1-524f-9ee0-07e3f6ffb563","interfaces":[{"mtu":5818,"enabled":true,"description":"Eh fiec wepauju fakigi fedep osgitewo wodrah ponkumido fis nozpuri ju geelo doh vipuopu vobuhalu piova bokadar.","id":"09d6217f-2741-5b6a-bd5c-91ca02f54e09","hardwareName":"GigabitEthernet1/6","macAddress":"3539.C649.1EF4","monitorInterface":false,"standbyMacAddress":"AAB5.9320.943C","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"e765:caaf:c971:52be:e7af:9357:6eab:2e59/32","ipAddress":"d168:a40a:b8df:9bc5:d38c:64df:a4fd:4110/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"76da:7d95:05ed:3ac9:4014:58d2:1e81:b4b2","ipAddress":"fdcf:ebe2:84c9:5892:94f3:b209:1cd6:d430"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"46.176.226.56","standbyIpAddress":"252.197.49.100"}},"version":"e18f92be-6c58-55a7-9dea-ccdefd79a44f","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]},{"mtu":5818,"enabled":false,"description":"Wi repiro sisig se wuglo zuzrog wivsel iboabamu wug sew figinfo pada koorcu wun akawobit cuholso wizpeos belidgew.","id":"c95c223c-b583-5d80-88a6-b1ac1b528e5e","hardwareName":"GigabitEthernet1/8","macAddress":"AD75.0711.BDF3","monitorInterface":false,"standbyMacAddress":"C7BE.0512.EDE1","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"4d6e:8d99:e5e9:8e08:03ed:ac78:12d9:1abc/32","ipAddress":"5b5a:9ba8:4d53:74f4:b2b9:b36b:2930:3030/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"919d:d8d6:cac4:18ed:5582:4d98:5afa:7f30","ipAddress":"9bfa:b940:f6b8:cd45:9eb6:d07e:09a6:b747"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"206.102.168.38","standbyIpAddress":"47.171.86.122"}},"version":"88bd96c5-891e-5b48-ab25-5091e3dfe377","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}},{"id":"aff2c9fc-0b0e-58f4-b418-5ccd970fd67f","name":"SecurityZone11Name","description":"Nued mos di majri nih ebhebe desalu ivif novrove razjihew kepfa okforec lajatet sifu fa.","version":"d334e386-a53c-5345-9181-d20421a28e34","interfaces":[{"mtu":5818,"enabled":true,"description":"Ke vuhdojos zudgopa seto bere refcengo he camohpik pir risvup pum omhos zalpe sukjo rufe.","id":"2cf6e4b9-0bf0-5d7d-9110-6ab397d400a4","hardwareName":"GigabitEthernet1/4","macAddress":"0ABE.1A2F.DC3A","monitorInterface":false,"standbyMacAddress":"6057.AC6B.C47F","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"6d9d:2a5c:831a:6482:0268:e3fe:244e:1c1c/32","ipAddress":"c4fb:ea12:d0f3:42e4:10ed:e3f4:8e5a:6c9a/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"77f1:3852:307c:1449:a914:b786:3831:5ed1","ipAddress":"9eee:0707:2706:edd3:22f1:30d5:52f1:39fb"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"51.99.206.42","standbyIpAddress":"138.81.67.160"}},"version":"365fb3c7-62eb-5a7d-a412-b1cb7a387375","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"destinationZones":[{"id":"8cb69a8f-7d8d-5f4e-9a4f-f6e717f833ed","name":"SecurityZone3Name","description":"Udanovja dupolo zurepi ufmu ah lezup ba ga jur duvorzu abevabji zil nuikihi wopuw.","version":"dd83a4d5-be23-51f8-9b73-2ae9e26f7d36","interfaces":[{"mtu":2652,"enabled":false,"description":"Efupaf nas ilureg zetikdav emki fafiv tihug orhid zimurfo naferal va ta ug za ur di zetsa ragizike.","name":"subinterface10name","id":"4307a6d5-0ef1-55d4-adc4-0461c31b7eb5","hardwareName":"SubInterface0/10.11","macAddress":"F617.A8F2.5DEB","monitorInterface":true,"standbyMacAddress":"0E24.391A.BFD9","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"c324:084e:8a04:523f:64ec:2b27:9f07:6a8d/32","ipAddress":"0faf:b8b8:7fbe:0d00:facd:c82d:f721:93dd/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"bc90:477f:99f9:ee80:1faa:1f0c:a2a6:77b7","ipAddress":"2d31:24c2:acd3:16b0:d1df:b4b6:763f:48c0"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"250.15.33.10","standbyIpAddress":"254.220.208.229"}},"version":"0f193aa1-ad09-52dd-98e8-eb32e2e61484","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"sourceNetworks":[{"id":"a820f102-7786-5e65-8b4e-66022cb061cd","name":"Network4","description":"Cutfuf ni ka viz vave cajto wouvirak rogzizde puk zogvintus jisaslit hos guvbujloc giivuzob fafanod.","version":"37093e3e-c4bb-5188-b023-e0f6a4d12463","type":"networkobject","subType":"HOST","value":"3eab:67af:0576:1163:4699:9d76:4a97:ca53","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"b483d38e-bce7-5bb7-9769-57ec8151bd4f","name":"Network12","description":"Tikafnaz lujis rirunuf sehi ubfewe kabhili zota funfof zagujnuf mel ejejegto fihjunmu ma funah va.","version":"3132162a-9791-5f26-9146-79add126c19f","type":"networkobject","subType":"NETWORK","value":"23.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"bf967c1b-7ed5-5830-bf5a-21f5eca01525","name":"Geolocation12","description":"Sualejon viga zibeh toawbo nim edubesob hufoleku cejiccan rurvud ig tec fahujre momnu adafa ranlug neupkoj.","version":"2a56c76a-857f-5026-b94a-1a0bf72e0920","type":"geolocation","locations":[{"id":"d6f6aa91-7e0d-5137-abbf-328cc779888c","name":"Antarctica","deprecated":true,"code":1004,"type":"continent","countries":[{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"3358686b-4139-5062-b3a1-e838d19918cf","name":"Heard Island and McDonald Islands","deprecated":true,"iso3":"HMD","iso2":"HM","code":"334","type":"country"},{"id":"ba4897cd-087a-5292-b1be-d3a00a7f26bb","name":"South Georgia and the South Sandwich Islands","deprecated":true,"iso3":"SGS","iso2":"GS","code":"239","type":"country"},{"id":"fa4cea3e-1888-5481-9934-8f815bc26857","name":"Bouvet Island","deprecated":true,"iso3":"BVT","iso2":"BV","code":"074","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"}],"countryCodes":["260","334","239","074","010"]},{"id":"91d14642-b0c8-57a5-b226-e39b80213360","name":"Wallis and Futuna","deprecated":true,"iso3":"WLF","iso2":"WF","code":"876","type":"country"},{"id":"eb716c3b-89e2-529c-a558-ca340a332486","name":"Switzerland","deprecated":true,"iso3":"CHE","iso2":"CH","code":"756","type":"country"},{"id":"df4f3356-7c77-5629-8a0c-7ed0e899c303","name":"Brazil","deprecated":false,"iso3":"BRA","iso2":"BR","code":"076","type":"country"},{"id":"f9fcc680-cfb6-5541-9a22-5d708e664cd7","name":"Nicaragua","deprecated":true,"iso3":"NIC","iso2":"NI","code":"558","type":"country"},{"id":"db11cb4c-3534-5c9a-bd15-7b41c5b161d6","name":"Nigeria","deprecated":false,"iso3":"NGA","iso2":"NG","code":"566","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"}]}],"destinationNetworks":[{"id":"a820f102-7786-5e65-8b4e-66022cb061cd","name":"Network4","description":"Cutfuf ni ka viz vave cajto wouvirak rogzizde puk zogvintus jisaslit hos guvbujloc giivuzob fafanod.","version":"37093e3e-c4bb-5188-b023-e0f6a4d12463","type":"networkobject","subType":"HOST","value":"3eab:67af:0576:1163:4699:9d76:4a97:ca53","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"b483d38e-bce7-5bb7-9769-57ec8151bd4f","name":"Network12","description":"Tikafnaz lujis rirunuf sehi ubfewe kabhili zota funfof zagujnuf mel ejejegto fihjunmu ma funah va.","version":"3132162a-9791-5f26-9146-79add126c19f","type":"networkobject","subType":"NETWORK","value":"23.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"bf967c1b-7ed5-5830-bf5a-21f5eca01525","name":"Geolocation12","description":"Sualejon viga zibeh toawbo nim edubesob hufoleku cejiccan rurvud ig tec fahujre momnu adafa ranlug neupkoj.","version":"2a56c76a-857f-5026-b94a-1a0bf72e0920","type":"geolocation","locations":[{"id":"d6f6aa91-7e0d-5137-abbf-328cc779888c","name":"Antarctica","deprecated":true,"code":1004,"type":"continent","countries":[{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"3358686b-4139-5062-b3a1-e838d19918cf","name":"Heard Island and McDonald Islands","deprecated":true,"iso3":"HMD","iso2":"HM","code":"334","type":"country"},{"id":"ba4897cd-087a-5292-b1be-d3a00a7f26bb","name":"South Georgia and the South Sandwich Islands","deprecated":true,"iso3":"SGS","iso2":"GS","code":"239","type":"country"},{"id":"fa4cea3e-1888-5481-9934-8f815bc26857","name":"Bouvet Island","deprecated":true,"iso3":"BVT","iso2":"BV","code":"074","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"}],"countryCodes":["260","334","239","074","010"]},{"id":"91d14642-b0c8-57a5-b226-e39b80213360","name":"Wallis and Futuna","deprecated":true,"iso3":"WLF","iso2":"WF","code":"876","type":"country"},{"id":"eb716c3b-89e2-529c-a558-ca340a332486","name":"Switzerland","deprecated":true,"iso3":"CHE","iso2":"CH","code":"756","type":"country"},{"id":"df4f3356-7c77-5629-8a0c-7ed0e899c303","name":"Brazil","deprecated":false,"iso3":"BRA","iso2":"BR","code":"076","type":"country"},{"id":"f9fcc680-cfb6-5541-9a22-5d708e664cd7","name":"Nicaragua","deprecated":true,"iso3":"NIC","iso2":"NI","code":"558","type":"country"},{"id":"db11cb4c-3534-5c9a-bd15-7b41c5b161d6","name":"Nigeria","deprecated":false,"iso3":"NGA","iso2":"NG","code":"566","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"}]}],"sourcePorts":[{"id":"1a4f8032-f665-5045-b0d8-a48b339750d1","name":"tcp_port_2","description":"Ku soguzsi ragibi nupavidag faji kovor ikikov efa ha cozuju inietu daf hif iso.","version":"b6ff8844-fd46-5e03-9ca4-00b7bc8bd936","type":"tcpportobject","port":8189,"isSystemDefined":false},{"id":"39c5e145-2ed4-5038-ab20-3c4878437d1d","name":"icmpv6port2","description":"Fajla geffe heseipu tez toluhpap ve uhmoba garoeb ozafuzli suhwof aw likofat erige hentejpi jajaza faztiav osece na.","version":"d4492bb3-d9b0-52fc-acc6-81061c83c6b8","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8267,"isSystemDefined":false}],"destinationPorts":[{"id":"2a40730e-7878-5969-ba53-1d9278cde125","name":"icmpv4port1","description":"Uva ceti behga hetivasu ajbebu rakepe ame ifa aceuriso kejic fucaoti gigvivvo gishelpob jurevmu ov maclefe.","version":"e62c0f51-027e-5a7f-b725-a96162bb7138","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8508,"isSystemDefined":false},{"id":"d0ecb6d1-cc76-58fb-a392-4e9c9537be4c","name":"icmpv4port2","description":"Asci be jutgu wo susadagi woveven bafosjoc ceec wovukiv tati tepav gu za muhhudbi.","version":"54ed4735-cf04-5504-8a5a-2dd0bec3f5a9","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8251,"isSystemDefined":false}],"users":[{"id":"dfe8be9f-f2fb-541e-ba1c-8a51b58462c1","name":"User Group 22","realmName":"dibumolub","type":"trafficusergroup","realmId":2,"version":"ukogomzatkaj"},{"id":"6fc80f39-f5ca-52da-baac-a4008a22fdbd","name":"User 29","realmName":"hoomewudavu","type":"trafficuser","realmId":2,"version":"maakuojusal"},{"id":"7145e63c-b952-5595-a3e0-b95cfd817553","name":"User 3","realmName":"owesizfani","type":"trafficuser","realmId":2,"version":"rilijzomu"}],"embeddedAppFilter":{"conditions":[{"filter":"uckupehot","tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"},{"type":"typecondition","applicationType":"CLIENT"}],"productivities":[{"type":"productivitycondition","productivity":"LOW"},{"type":"productivitycondition","productivity":"VERY_HIGH"}],"type":"applicationfiltercondition"},{"filter":"kaibaagiaze","tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"63db3391-02c9-5d1b-b971-5a6427f4c9fe","version":"95d07b80-ad97-50b0-a64b-b279d1420618","appId":5,"name":"ApplicationTag5","description":"Uwano ujeoska rootmaj kammovu ivitarpoh percuk oto bacema da onsevsej jovocoog ge gafed zakas ijwimuf.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"0928e8e9-25a4-53d0-b118-342a26b44100","version":"cccc44d5-b855-569b-90ad-b26d4e3e0c66","appId":7,"name":"ApplicationCategory8","description":"Mifzonu fokero acdu panvo cuvubde tovli maz cawag kaoj gosoojo falkof hezel sig ca vo wak.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"VERY_LOW"},{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"CLIENT"},{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"LOW"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"f0c3a5d1-57d9-50ea-9035-0e27d2dd7447","version":"186b3aa2-9ffb-590a-a7f5-b799b6dd33ac","name":"ApplicationFilter11","description":"Bil katit molcehmo bir pi unor famokuiba oglu ec emmem gazwica dor ko.","applications":[{"id":"a035fce1-4959-5362-8472-253aa159b1ec","version":"616efbb8-6148-59e3-afd4-68d4d42164c1","description":"Fo cigejki leg umjunu ja da lefuh ib zatlose ganutag dilebi cejizgow.","deprecated":false,"appId":6,"productivity":0,"risk":1,"name":"Application15","tagIds":["f7e90abe-ce71-56da-9f43-dd8685ec1a3a","a558b06a-1e83-5caa-a903-3b6e291ddc2e"],"tags":[{"id":"f7e90abe-ce71-56da-9f43-dd8685ec1a3a","version":"8b4ad1f1-dab6-5988-a793-c67eb8dbd3ee","appId":1,"name":"ApplicationTag1","description":"Opa zov vek obnam nobbab midzusmow riwehar gufugin mogfuana nairu camu fupim mo hov nizunfej.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"a558b06a-1e83-5caa-a903-3b6e291ddc2e","version":"96c0750c-0f50-5872-869a-8b50dad24edc","appId":8,"name":"SSL protocol","description":"Ifgafu ma vopuatu ho jim zud hiodiben ango ji nusiwufu hig gatejsem povci.","metadata":{"referenced":true},"type":"applicationtag"}],"categoryIds":["fff4b47c-a653-5729-a31a-e6353d420768","7f62abc6-7f08-5a69-acb6-65def01251d4"],"categories":[{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["CLIENT","SERVER"],"metadata":{"referenced":true},"type":"application"},{"id":"ce901dd3-4e85-5bf0-a273-2018d76527c8","version":"84a4f0c6-57b3-50f3-bf20-0cf68bbbb806","description":"Gipus bovawge vel ceoziwo nuim ehdifir nowe onoli atsewav irfer semowi ge turos mufo tahukca jaz.","deprecated":true,"appId":5,"productivity":0,"risk":2,"name":"Application2","tagIds":["58edda62-c97b-56e5-9e6c-32926f4d3009"],"tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["1323d445-72c0-5d8b-9f58-c223feb51bac","328094ea-7b95-58e5-a2de-09018514e679"],"categories":[{"id":"1323d445-72c0-5d8b-9f58-c223feb51bac","version":"f85374d2-b1c5-5e65-b746-77dc6a21decb","appId":7,"name":"ApplicationCategory14","description":"Ohoad agoteveto irewomi adizogo lurtoop tizesuca himewwak poftoj cow nunapivif cisge pe hi raam hatdunze.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"328094ea-7b95-58e5-a2de-09018514e679","version":"a9f6d6f5-e2ce-5a1b-8c7f-1a5ba3c375b4","appId":4,"name":"ApplicationCategory1","description":"Pilooru amavudek uhzidkah sieha duhni ikfo celrid az ocolu loplun buj nodlial do ahme henacava so ecevega wemtumacu.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["CLIENT","WEBAPP"],"metadata":{"referenced":false},"type":"application"}],"conditions":[{"filter":"fapbalnezi","tags":[{"id":"6f8f8faa-179f-5da2-800c-387e6e2d142f","version":"2d72ebc6-6079-5398-8376-0abffab064ce","appId":7,"name":"ApplicationTag7","description":"Lu nil nubfaida lorig kacze rajlacve uboruzu zobjo opimawu zapaswo jed sihnob hecoj le neus gubwe pij lerwilkic.","metadata":{"referenced":true},"type":"applicationtag"},{"id":"9b266171-0bc7-5f71-aa6c-44b8cbafa329","version":"746ac683-b500-5781-b179-f61db662f8d3","appId":9,"name":"ApplicationTag9","description":"Ja lohivap wim saj zuw hinakug tiduze noemo azonimi ici kovaz ikuza wiihboz bubopmin la uge jeko.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"ea9b4aa3-c8a2-52f9-87ba-b33f1b452a42","version":"e289f52e-a078-5581-a775-4c8435a534f0","appId":3,"name":"ApplicationCategory7","description":"Ci sovo ig ivebcag gif uk eztez ezofi jizrebi lafozu ehje daj noiw vajru modpoteh juizu.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"CRITICAL"}],"applicationTypes":[{"type":"typecondition","applicationType":"CLIENT"}],"productivities":[{"type":"productivitycondition","productivity":"LOW"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":true},"type":"applicationfilter"}],"applications":[{"id":"ce901dd3-4e85-5bf0-a273-2018d76527c8","version":"84a4f0c6-57b3-50f3-bf20-0cf68bbbb806","description":"Gipus bovawge vel ceoziwo nuim ehdifir nowe onoli atsewav irfer semowi ge turos mufo tahukca jaz.","deprecated":true,"appId":5,"productivity":0,"risk":2,"name":"Application2","tagIds":["58edda62-c97b-56e5-9e6c-32926f4d3009"],"tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["1323d445-72c0-5d8b-9f58-c223feb51bac","328094ea-7b95-58e5-a2de-09018514e679"],"categories":[{"id":"1323d445-72c0-5d8b-9f58-c223feb51bac","version":"f85374d2-b1c5-5e65-b746-77dc6a21decb","appId":7,"name":"ApplicationCategory14","description":"Ohoad agoteveto irewomi adizogo lurtoop tizesuca himewwak poftoj cow nunapivif cisge pe hi raam hatdunze.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"328094ea-7b95-58e5-a2de-09018514e679","version":"a9f6d6f5-e2ce-5a1b-8c7f-1a5ba3c375b4","appId":4,"name":"ApplicationCategory1","description":"Pilooru amavudek uhzidkah sieha duhni ikfo celrid az ocolu loplun buj nodlial do ahme henacava so ecevega wemtumacu.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["CLIENT","WEBAPP"],"metadata":{"referenced":false},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"c8bde3f4-9a21-5a44-80db-baae419148f8","version":"bosavmojgeb","name":"UrlGroup9","description":"Zikaw kozicet agwihul jav eja acniiko hobi mogod ukkem ku irpec zen cijguh dabwuovu je sub.","objects":[{"id":"26cf0d0b-7575-594a-9c3b-9e17d5e24fbf","version":"sipugcocti","name":"Url6","description":"Etna gum cacu tin meehe hu cahfik kus supdeba irlohje hig rizhepzov vi togaofo los dujna her sipu.","url":"http://bejakuru.co.uk/ebkampaw","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlReputation":{"id":"00d12166-18a1-568d-8878-cbe92b44602c","name":"Risk unknown","index":0,"startPercentage":0,"endPercentage":0,"version":"b5c74a5a-ad53-5a53-91d1-505f3d64d5d5","type":"urlreputation"},"urlCategory":{"id":"5c03856a-3c13-5838-b397-19e4eb343d1d","version":"4399e700-e8df-5a73-a565-c19049383762","name":"Health and Medicine","deprecated":false,"urlCategoryId":1,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"intrusionPolicy":{"id":"a47cb8f5-fe55-11e4-8e99-ipsN40","name":"Maximum Detection","links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN40"},"rules":{"links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN40/rules/"}},"description":"Maximum Detection Layer","type":"intrusionpolicy","version":"124d1a7b-a1b4-5097-b6d4-5a399c5bdb68"},"filePolicy":{"id":"de5b742d-70db-535d-bb42-6e6ba949ef53","type":"filepolicy","policyType":"BLOCK_MALWARE_ALL","name":"File_Policy_1","description":"Wiakeno ja barfowole aredu wutra loc fe soc cakdo se la agokim gevsirrog cagome.","version":"e0e81a67-2608-53e2-a015-f53dc3a9de10"},"logFiles":false,"type":"accessrule"},{"id":"8909fb10-62a4-5f1c-9b82-5effdd661183","version":"02dfa897-7e2e-5485-897d-35a955a7c968","ruleId":16,"name":"Access_Rule_16","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_BOTH","syslogServer":{"id":"57bc6178-2f01-52b2-8d55-29366cb35285","version":"beeb6d44-207b-5a07-b708-0b4fba7c56c5","host":"171.25.188.89","port":5897,"deviceInterface":{"mtu":5818,"enabled":true,"description":"Setta biwofega af ihi ebele inowo inagiobo nu it fe heivu lijivok.","name":"diagnostic","id":"f7509b61-168c-5d86-9a4c-8d3a2bb23e90","hardwareName":"Management0/0","macAddress":"249A.16A4.5DED","monitorInterface":true,"standbyMacAddress":"06D4.757D.FF06","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0c4e:e907:93c3:ba7a:7842:4899:f454:2a33/32","ipAddress":"41e0:3a60:0ca6:5f1c:cdd5:9c57:4918:682f/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d039:d6f4:278a:cdd3:b9e3:2711:460f:1555","ipAddress":"7e31:6d3f:5bbc:0d7f:4df6:58b9:26a6:d462"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"227.88.54.119","standbyIpAddress":"119.107.19.197"}},"version":"e50dac9e-5493-5760-b5e5-294741f3c409","managementInterface":true,"managementOnly":true,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"},"protocol":"UDP","useManagementInterface":false,"type":"syslogserver"},"sourceZones":[{"id":"7fa724f3-b64c-585b-9176-69aed2b36237","name":"SecurityZone1Name","description":"Do pefa ritapo ovauciku vogomougi utino gudo momna sagocbiw bowce awu muzabwoz zetpec kit fe.","version":"9d1d113e-86e0-5106-9f6c-29cc8e8fc7fb","interfaces":[{"mtu":5818,"enabled":true,"description":"Wonca cotfo biok ugfejbah ro itedere itoh pijazu ocozojgi buk facheuho zo.","id":"ef57753e-8a0c-5454-a3b3-fbc3c570851d","hardwareName":"GigabitEthernet1/3","macAddress":"34B5.AF3E.B9E9","monitorInterface":true,"standbyMacAddress":"4AF5.3F46.87FE","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"da83:da11:93ff:4f56:084e:f1c1:269c:0dd0/32","ipAddress":"831e:6e6b:281e:8b10:94d0:03f1:b4d5:3373/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"6a3f:c0b2:5d20:fdb6:945d:bcd1:a144:7558","ipAddress":"af4f:d5f4:67bb:3263:e183:fc6c:ea34:f2e6"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"204.8.215.52","standbyIpAddress":"108.106.112.194"}},"version":"46c1bc9f-9a0a-5425-8dc2-3a04dd84c3f1","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}},{"id":"f13918c2-287c-5026-b2d4-ae18cf69fd8c","name":"SecurityZone2Name","description":"Elaba havor do tifgovew di tobeep osiho gamalun ilokavo hosoc bavmep lo katzakcu we lekucazif jusifi baluhufa ivinu.","version":"f1cb8b72-77e1-524f-9ee0-07e3f6ffb563","interfaces":[{"mtu":5818,"enabled":true,"description":"Eh fiec wepauju fakigi fedep osgitewo wodrah ponkumido fis nozpuri ju geelo doh vipuopu vobuhalu piova bokadar.","id":"09d6217f-2741-5b6a-bd5c-91ca02f54e09","hardwareName":"GigabitEthernet1/6","macAddress":"3539.C649.1EF4","monitorInterface":false,"standbyMacAddress":"AAB5.9320.943C","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"e765:caaf:c971:52be:e7af:9357:6eab:2e59/32","ipAddress":"d168:a40a:b8df:9bc5:d38c:64df:a4fd:4110/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"76da:7d95:05ed:3ac9:4014:58d2:1e81:b4b2","ipAddress":"fdcf:ebe2:84c9:5892:94f3:b209:1cd6:d430"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"46.176.226.56","standbyIpAddress":"252.197.49.100"}},"version":"e18f92be-6c58-55a7-9dea-ccdefd79a44f","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]},{"mtu":5818,"enabled":false,"description":"Wi repiro sisig se wuglo zuzrog wivsel iboabamu wug sew figinfo pada koorcu wun akawobit cuholso wizpeos belidgew.","id":"c95c223c-b583-5d80-88a6-b1ac1b528e5e","hardwareName":"GigabitEthernet1/8","macAddress":"AD75.0711.BDF3","monitorInterface":false,"standbyMacAddress":"C7BE.0512.EDE1","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"4d6e:8d99:e5e9:8e08:03ed:ac78:12d9:1abc/32","ipAddress":"5b5a:9ba8:4d53:74f4:b2b9:b36b:2930:3030/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"919d:d8d6:cac4:18ed:5582:4d98:5afa:7f30","ipAddress":"9bfa:b940:f6b8:cd45:9eb6:d07e:09a6:b747"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"206.102.168.38","standbyIpAddress":"47.171.86.122"}},"version":"88bd96c5-891e-5b48-ab25-5091e3dfe377","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"destinationZones":[{"id":"8cb69a8f-7d8d-5f4e-9a4f-f6e717f833ed","name":"SecurityZone3Name","description":"Udanovja dupolo zurepi ufmu ah lezup ba ga jur duvorzu abevabji zil nuikihi wopuw.","version":"dd83a4d5-be23-51f8-9b73-2ae9e26f7d36","interfaces":[{"mtu":2652,"enabled":false,"description":"Efupaf nas ilureg zetikdav emki fafiv tihug orhid zimurfo naferal va ta ug za ur di zetsa ragizike.","name":"subinterface10name","id":"4307a6d5-0ef1-55d4-adc4-0461c31b7eb5","hardwareName":"SubInterface0/10.11","macAddress":"F617.A8F2.5DEB","monitorInterface":true,"standbyMacAddress":"0E24.391A.BFD9","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"c324:084e:8a04:523f:64ec:2b27:9f07:6a8d/32","ipAddress":"0faf:b8b8:7fbe:0d00:facd:c82d:f721:93dd/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"bc90:477f:99f9:ee80:1faa:1f0c:a2a6:77b7","ipAddress":"2d31:24c2:acd3:16b0:d1df:b4b6:763f:48c0"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"250.15.33.10","standbyIpAddress":"254.220.208.229"}},"version":"0f193aa1-ad09-52dd-98e8-eb32e2e61484","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"sourceNetworks":[{"id":"6f55bc7e-79ee-5271-b299-5eb7db9ece0e","name":"Network14","description":"Naduk tuto zatuli pedufu dowkol gapcetod ehukevnem oszi numudol ubibi pufhubfu ripsitfu.","version":"3ab046cd-f4be-55d8-af7a-7a84bc3f7716","type":"networkobject","subType":"HOST","value":"111.31.129.11","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"25837b53-40d7-599f-9a1e-0a5391f2662e","name":"Network1","description":"Ser ahpi penul nuszil ojsuvo zavlatha junez afuhi soewuteh ha larhoose lijuto ruhi za murmurgu eznehfa nejag piv.","version":"0761c298-1c3c-5537-971c-17934322192b","type":"networkobject","subType":"HOST","value":"f92d:3cda:6fb3:7e4b:db95:8984:e616:928e","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"2082a308-8b86-5219-b121-d470ff1b8aa8","name":"Geolocation14","description":"Heivkib tij budvoddij abauzjuk obuvunken fiji tajo puluno kahja vozrejnak hizebivis dowu cujtabti kelij heh mo pifgiri lamfajkuw.","version":"db2ff476-1b01-52e6-8574-95caec83dfa4","type":"geolocation","locations":[{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"92e4bed7-5044-5b4f-8d3f-1239ff903965","name":"France","deprecated":true,"iso3":"FRA","iso2":"FR","code":"250","type":"country"},{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"f15f76ba-d150-5ed1-8d49-329860b8a4c2","name":"Venezuela","deprecated":false,"iso3":"VEN","iso2":"VE","code":"862","type":"country"},{"id":"57110fb6-aee4-50cf-a1ad-e8e3cf723b03","name":"Curacao","deprecated":false,"iso3":"CUW","iso2":"CW","code":"531","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"}]}],"destinationNetworks":[{"id":"6f55bc7e-79ee-5271-b299-5eb7db9ece0e","name":"Network14","description":"Naduk tuto zatuli pedufu dowkol gapcetod ehukevnem oszi numudol ubibi pufhubfu ripsitfu.","version":"3ab046cd-f4be-55d8-af7a-7a84bc3f7716","type":"networkobject","subType":"HOST","value":"111.31.129.11","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"25837b53-40d7-599f-9a1e-0a5391f2662e","name":"Network1","description":"Ser ahpi penul nuszil ojsuvo zavlatha junez afuhi soewuteh ha larhoose lijuto ruhi za murmurgu eznehfa nejag piv.","version":"0761c298-1c3c-5537-971c-17934322192b","type":"networkobject","subType":"HOST","value":"f92d:3cda:6fb3:7e4b:db95:8984:e616:928e","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"2082a308-8b86-5219-b121-d470ff1b8aa8","name":"Geolocation14","description":"Heivkib tij budvoddij abauzjuk obuvunken fiji tajo puluno kahja vozrejnak hizebivis dowu cujtabti kelij heh mo pifgiri lamfajkuw.","version":"db2ff476-1b01-52e6-8574-95caec83dfa4","type":"geolocation","locations":[{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"92e4bed7-5044-5b4f-8d3f-1239ff903965","name":"France","deprecated":true,"iso3":"FRA","iso2":"FR","code":"250","type":"country"},{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"f15f76ba-d150-5ed1-8d49-329860b8a4c2","name":"Venezuela","deprecated":false,"iso3":"VEN","iso2":"VE","code":"862","type":"country"},{"id":"57110fb6-aee4-50cf-a1ad-e8e3cf723b03","name":"Curacao","deprecated":false,"iso3":"CUW","iso2":"CW","code":"531","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"}]}],"sourcePorts":[{"id":"5e4d4b4d-706c-5325-b034-896d42bf9087","name":"udp_port_1","description":"Rupkoedo zuv egodid ca buapesug tu mawaduh etaeha pigfa keh it bozute wovi zijuci poscuren ifohhe.","version":"db631abc-32a3-5ca5-8ae5-a3b6f3c8371a","type":"udpportobject","port":8537,"isSystemDefined":true},{"id":"ff728962-8729-5bce-941c-1730e280dc0b","name":"icmpv6port1","description":"Uh letiof numsu bokewod gosso sowdilid bevliur idseaho vu delale luctid ila givcogev.","version":"9aca9371-12d1-5490-af24-a87e3160146f","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8452,"isSystemDefined":false}],"destinationPorts":[{"id":"1a4f8032-f665-5045-b0d8-a48b339750d1","name":"tcp_port_2","description":"Ku soguzsi ragibi nupavidag faji kovor ikikov efa ha cozuju inietu daf hif iso.","version":"b6ff8844-fd46-5e03-9ca4-00b7bc8bd936","type":"tcpportobject","port":8189,"isSystemDefined":false},{"id":"34f7bed0-39b1-5064-a6e7-27b5431b2066","name":"udp_port_2","description":"Eji leklo infagziv wut vujapvug avvutu toduj dulnarse ifdo bipujhas ajo vualo efapomiw ge nepe gomhuh.","version":"5785591f-a79c-5ff4-bc82-b3dd6d70a236","type":"udpportobject","port":8830,"isSystemDefined":false}],"users":[{"id":"fd09c815-2ddb-5604-bc51-051489a7eda6","name":"User 11","realmName":"cuucbisken","type":"trafficuser","realmId":2,"version":"julanzovne"},{"id":"89cbd128-8343-5d9d-ba2e-95fec21748eb","name":"User Group 25","realmName":"taawebet","type":"trafficusergroup","realmId":2,"version":"filwupguzgur"},{"id":"365494a9-f598-500d-8145-a3cc6f53c6bc","name":"User Group 18","realmName":"ziidovegaz","type":"trafficusergroup","realmId":2,"version":"cutupezeim"}],"embeddedAppFilter":{"conditions":[{"filter":"kaibaagiaze","tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"63db3391-02c9-5d1b-b971-5a6427f4c9fe","version":"95d07b80-ad97-50b0-a64b-b279d1420618","appId":5,"name":"ApplicationTag5","description":"Uwano ujeoska rootmaj kammovu ivitarpoh percuk oto bacema da onsevsej jovocoog ge gafed zakas ijwimuf.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"0928e8e9-25a4-53d0-b118-342a26b44100","version":"cccc44d5-b855-569b-90ad-b26d4e3e0c66","appId":7,"name":"ApplicationCategory8","description":"Mifzonu fokero acdu panvo cuvubde tovli maz cawag kaoj gosoojo falkof hezel sig ca vo wak.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"VERY_LOW"},{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"CLIENT"},{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"LOW"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"},{"filter":"keludmubluf","tags":[{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"HIGH"}],"applicationTypes":[{"type":"typecondition","applicationType":"CLIENT"},{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"LOW"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"4890f08c-7d08-5b84-93cc-7a4baa096ff1","version":"76998009-57e5-5be3-83ee-29ff93086a19","name":"ApplicationFilter2","description":"Uwudu elufur kikvusab gi zafur zerojtuc cefiz oti fonum wit pewivbu leuhi cen uri mibfozta jukmuw nafid.","applications":[{"id":"83c8e0e6-3707-5128-b7da-4659f67b76a0","version":"5072ae78-a326-5b92-8176-c0c8132922a8","description":"Bo dese su ja elumuf ane zusjo fiplois ewariju ihjup nunnihep kosaldic kuhfovu.","deprecated":false,"appId":4,"productivity":0,"risk":1,"name":"Application1","tagIds":["62bc5d56-7e60-5a71-a467-2c4f2a035a06"],"tags":[{"id":"62bc5d56-7e60-5a71-a467-2c4f2a035a06","version":"e7e0ebc9-3a9a-5342-91e9-ae0ce54b3444","appId":12,"name":"ApplicationTag12","description":"Bamiwaga bo kek wawinta ovepozgan tibutef je kezaluk zonwoz fovul aw ter nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["ea9b4aa3-c8a2-52f9-87ba-b33f1b452a42","2ad8b880-5783-5919-bda2-46e8316f2d70"],"categories":[{"id":"ea9b4aa3-c8a2-52f9-87ba-b33f1b452a42","version":"e289f52e-a078-5581-a775-4c8435a534f0","appId":3,"name":"ApplicationCategory7","description":"Ci sovo ig ivebcag gif uk eztez ezofi jizrebi lafozu ehje daj noiw vajru modpoteh juizu.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"2ad8b880-5783-5919-bda2-46e8316f2d70","version":"c19f7a96-7634-5d1b-972d-99caa3e34a64","appId":1,"name":"ApplicationCategory12","description":"Ev zalapi hiwuhi peror lupu iv obalem gicobem vi bafuh ponij co hur linsis fukurod dehpupme.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["SERVER","WEBAPP"],"metadata":{"referenced":false},"type":"application"},{"id":"6361bd7f-01c9-5714-baca-035d66f50a8c","version":"50dcdb47-5d21-537f-b3b0-81713bf31c06","description":"Leku luto lofuwec wuwguhot abmofdo cun vuunuvi lulsoteg kivsas mijmi ru kipumeja sacwuwhe gub magumera.","deprecated":false,"appId":5,"productivity":0,"risk":4,"name":"Application5","tagIds":["0b45de63-5252-5257-acf6-ce494cdb905a"],"tags":[{"id":"0b45de63-5252-5257-acf6-ce494cdb905a","version":"9c3ed423-1b8a-5f1f-aae0-a507cc188490","appId":6,"name":"ApplicationTag6","description":"Varejse ji ogouvu rin nubuten bezozmaj coeg zuralse pa zitomgon lu rigugip.","metadata":{"referenced":true},"type":"applicationtag"}],"categoryIds":["7f62abc6-7f08-5a69-acb6-65def01251d4","fff4b47c-a653-5729-a31a-e6353d420768"],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["SERVER","WEBAPP"],"metadata":{"referenced":true},"type":"application"}],"conditions":[{"filter":"jignorebes","tags":[{"id":"e9812b72-2a36-5146-bce0-b09f876df88d","version":"080dca18-c677-5dd1-8f2f-40555beb4fe4","appId":10,"name":"ApplicationTag10","description":"Viswilo ariuzaf pih wa mul vugavrip rijfon aba kac giicse wolifa cowudzuv vev iztafit.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"0928e8e9-25a4-53d0-b118-342a26b44100","version":"cccc44d5-b855-569b-90ad-b26d4e3e0c66","appId":7,"name":"ApplicationCategory8","description":"Mifzonu fokero acdu panvo cuvubde tovli maz cawag kaoj gosoojo falkof hezel sig ca vo wak.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"MEDIUM"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"},{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":true},"type":"applicationfilter"}],"applications":[{"id":"83c8e0e6-3707-5128-b7da-4659f67b76a0","version":"5072ae78-a326-5b92-8176-c0c8132922a8","description":"Bo dese su ja elumuf ane zusjo fiplois ewariju ihjup nunnihep kosaldic kuhfovu.","deprecated":false,"appId":4,"productivity":0,"risk":1,"name":"Application1","tagIds":["62bc5d56-7e60-5a71-a467-2c4f2a035a06"],"tags":[{"id":"62bc5d56-7e60-5a71-a467-2c4f2a035a06","version":"e7e0ebc9-3a9a-5342-91e9-ae0ce54b3444","appId":12,"name":"ApplicationTag12","description":"Bamiwaga bo kek wawinta ovepozgan tibutef je kezaluk zonwoz fovul aw ter nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["ea9b4aa3-c8a2-52f9-87ba-b33f1b452a42","2ad8b880-5783-5919-bda2-46e8316f2d70"],"categories":[{"id":"ea9b4aa3-c8a2-52f9-87ba-b33f1b452a42","version":"e289f52e-a078-5581-a775-4c8435a534f0","appId":3,"name":"ApplicationCategory7","description":"Ci sovo ig ivebcag gif uk eztez ezofi jizrebi lafozu ehje daj noiw vajru modpoteh juizu.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"2ad8b880-5783-5919-bda2-46e8316f2d70","version":"c19f7a96-7634-5d1b-972d-99caa3e34a64","appId":1,"name":"ApplicationCategory12","description":"Ev zalapi hiwuhi peror lupu iv obalem gicobem vi bafuh ponij co hur linsis fukurod dehpupme.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["SERVER","WEBAPP"],"metadata":{"referenced":false},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"23704998-7a6e-5a13-9b62-897a0ed5815b","version":"bikwemafa","name":"UrlGroup4","description":"Gaf abme waves bojda asola kud te jig rag zansojer mez okuji ojpo bom ta.","objects":[{"id":"ab75ba7b-b6c8-57f8-b62b-85a6e1047423","version":"mulmevkavvof","name":"Url13","description":"Gowop ranuhnif awronso ajado ozfu sov digmec tu mafhutid sum ca gelo.","url":"http://gar.io/pahum","type":"urlobject"},{"id":"8c8ec923-9d7c-59f2-8d13-7db0e9d0fc55","version":"inkitfovat","name":"Url1","description":"Cukji verwe wafit hada sirivza uso awba mezjaje gi bavtiim satudu cevonlem nugocok ibnaar zasado.","url":"http://geta.org/ozmeg","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlCategory":{"id":"8ea4a5c6-b989-585d-9f10-a3f90296f644","version":"7cfafd89-9584-5041-b723-0699cf1e69ea","name":"UrlCategory-10","deprecated":false,"urlCategoryId":10,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"intrusionPolicy":{"id":"a47cb8f5-fe55-11e4-8e99-ipsN40","name":"Maximum Detection","links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN40"},"rules":{"links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN40/rules/"}},"description":"Maximum Detection Layer","type":"intrusionpolicy","version":"124d1a7b-a1b4-5097-b6d4-5a399c5bdb68"},"logFiles":false,"type":"accessrule"},{"id":"5bb1b029-baae-5eee-8b69-2fbe108cdd50","version":"6e43ab02-ef72-51de-ad91-3fd12da882ae","ruleId":17,"name":"Access_Rule_17","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_FLOW_END","syslogServer":{"id":"c51edbd5-448a-5d9d-a03d-38bcfa0e3a6a","version":"c10f4b41-a037-5654-bdeb-bf811acf2ee8","host":"117.20.174.221","port":5897,"deviceInterface":{"mtu":5818,"enabled":true,"description":"Setta biwofega af ihi ebele inowo inagiobo nu it fe heivu lijivok.","name":"diagnostic","id":"f7509b61-168c-5d86-9a4c-8d3a2bb23e90","hardwareName":"Management0/0","macAddress":"249A.16A4.5DED","monitorInterface":true,"standbyMacAddress":"06D4.757D.FF06","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0c4e:e907:93c3:ba7a:7842:4899:f454:2a33/32","ipAddress":"41e0:3a60:0ca6:5f1c:cdd5:9c57:4918:682f/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d039:d6f4:278a:cdd3:b9e3:2711:460f:1555","ipAddress":"7e31:6d3f:5bbc:0d7f:4df6:58b9:26a6:d462"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"227.88.54.119","standbyIpAddress":"119.107.19.197"}},"version":"e50dac9e-5493-5760-b5e5-294741f3c409","managementInterface":true,"managementOnly":true,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"},"protocol":"TCP","useManagementInterface":false,"type":"syslogserver"},"sourceZones":[{"id":"95a6c824-af98-562a-8be6-adc2446c4a09","name":"SecurityZone4Name","description":"Hu nevsuzwiz lezjab hidlurus la pak relte kew umigo zo kopi jetjata.","version":"73028d64-6d1e-5a0a-9f3c-db515f246240","interfaces":[{"mtu":2652,"enabled":false,"description":"Zojin ohdahe kulgune acme eriocopus wubvi hulwic buscub daugeiw ekdegwa jijekub ko gijenog lokrogri tolev tiassi pejliuda.","name":"subinterface6name","id":"bf6765a2-9e9f-506d-a381-329a46273a43","hardwareName":"SubInterface0/6.7","macAddress":"35AF.6E50.0377","monitorInterface":true,"standbyMacAddress":"D947.0A8F.425F","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"7206:d020:f8c8:c150:b059:d35c:3824:c1ae/32","ipAddress":"be49:09fb:26ce:f506:0899:43c5:ce17:4143/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"080b:aa66:ca0d:4375:d7c7:8cbb:8978:46f0","ipAddress":"a226:34cd:63b0:a860:aa22:3304:05a5:a64f"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"96.51.91.99","standbyIpAddress":"231.94.58.66"}},"version":"68043109-6c4e-5a0f-8df0-d01122d3c319","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}},{"id":"340bf250-a4a5-5049-bddf-a6201a9b8e86","name":"SecurityZone7Name","description":"So gitejipo sotvotdab watu la ica fojum dorog odohog mil etuw ta daghavke dig.","version":"273d67ab-abb9-5af1-8574-3e9af6e98aed","interfaces":[{"mtu":2652,"enabled":false,"description":"Wa cep gi lankowtu ce uvujed tad wo vezke vib vezvufgev hun vob velumde.","name":"subinterface11name","id":"ffc74b4d-ad27-5459-9907-186a8c739189","hardwareName":"SubInterface0/11.12","macAddress":"1534.AB09.4146","monitorInterface":true,"standbyMacAddress":"CF72.BDFB.98A1","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"fafb:559d:106d:67ac:52dd:e182:d306:4792/32","ipAddress":"a7bd:69ea:f24f:04ea:40c5:3f80:0416:0f09/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d544:6d26:411c:e460:9911:cb8b:ca9e:3a15","ipAddress":"f96f:858d:9ed1:fc9f:7b47:0fb4:246d:6cb6"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"17.76.225.83","standbyIpAddress":"195.253.157.229"}},"version":"e22e21d2-9d64-51a4-adc2-a775a4572916","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}}],"destinationZones":[{"id":"e960df5e-1ab8-5a15-85e5-a7a47f0ebcb0","name":"SecurityZone5Name","description":"Kinen aziheeci teniow ucezaw idikaki rupbu tieb rawihzec ufkedok iwewun le zihpisze vuzip roetjim fokbuwu jemrumvu cigzet.","version":"0925128c-48f1-552e-8507-379551253d9c","interfaces":[{"mtu":2652,"enabled":true,"description":"Hi vihjuup vueji zufmab wib zel woz ligok wu hi iremouto wahoato.","name":"subinterface5name","id":"9f816351-560c-5e5b-ba0a-2051828301e6","hardwareName":"SubInterface0/5.6","macAddress":"84F0.8C6A.D6DF","monitorInterface":true,"standbyMacAddress":"0971.695D.7024","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"e20a:2b14:aecc:7997:984d:9fcd:b3c4:2e66/32","ipAddress":"5753:596d:3c86:ab69:1e26:fa83:c032:8e71/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"44d8:5ccd:bbcd:60df:d35b:afb7:6211:375b","ipAddress":"7b7c:0b52:9938:5274:ef02:b8c5:577c:5028"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"119.148.92.111","standbyIpAddress":"106.21.74.31"}},"version":"7a7c4c69-3da2-5e43-a1f3-2f8026bfb0bd","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"sourceNetworks":[{"id":"de4c912d-0f32-5730-92dd-e6ef7f12a099","name":"Network11","description":"Gisi kalej ih zum midogi gar vezsu reweh od sufmukce siici ki hepvevote ubu feva fabikdol.","version":"dc1b33e1-bb99-5727-85e6-6f30f624ffa2","type":"networkobject","subType":"HOST","value":"42.38.187.218","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"4f342e19-761a-5d53-a7a6-471d1cf8e254","name":"Network9","description":"Ehibivje dac entikod lofimom dueku ozitakni rilgolpuv zezartim zilkeki bu mu ertum pol vuodle bemah fegbat.","version":"779130e6-7166-5b4e-91f2-d2d92dd952ec","type":"networkobject","subType":"NETWORK","value":"129.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"e402b5e4-c4c3-572b-9199-f219787e4e5b","name":"Geolocation9","description":"Mukav asi zipleto udi tiva soc isuop ijuka le beomo zedre fevga kogto cara.","version":"df453cf6-f288-57eb-8849-f55827597fa8","type":"geolocation","locations":[{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"d6f6aa91-7e0d-5137-abbf-328cc779888c","name":"Antarctica","deprecated":true,"code":1004,"type":"continent","countries":[{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"3358686b-4139-5062-b3a1-e838d19918cf","name":"Heard Island and McDonald Islands","deprecated":true,"iso3":"HMD","iso2":"HM","code":"334","type":"country"},{"id":"ba4897cd-087a-5292-b1be-d3a00a7f26bb","name":"South Georgia and the South Sandwich Islands","deprecated":true,"iso3":"SGS","iso2":"GS","code":"239","type":"country"},{"id":"fa4cea3e-1888-5481-9934-8f815bc26857","name":"Bouvet Island","deprecated":true,"iso3":"BVT","iso2":"BV","code":"074","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"}],"countryCodes":["260","334","239","074","010"]},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"3e0ee5a1-a07b-52c0-b62c-a470c4269802","name":"Italy","deprecated":false,"iso3":"ITA","iso2":"IT","code":"380","type":"country"},{"id":"90518b4d-6bb9-52e6-abd1-d2f35624ff20","name":"Ecuador","deprecated":true,"iso3":"ECU","iso2":"EC","code":"218","type":"country"},{"id":"627efa23-c14e-5fc0-b2d2-a197986eaa58","name":"Grenada","deprecated":true,"iso3":"GRD","iso2":"GD","code":"308","type":"country"},{"id":"bed65f83-79ce-514e-a9c2-24bae1906576","name":"Senegal","deprecated":true,"iso3":"SEN","iso2":"SN","code":"686","type":"country"}]}],"destinationNetworks":[{"id":"de4c912d-0f32-5730-92dd-e6ef7f12a099","name":"Network11","description":"Gisi kalej ih zum midogi gar vezsu reweh od sufmukce siici ki hepvevote ubu feva fabikdol.","version":"dc1b33e1-bb99-5727-85e6-6f30f624ffa2","type":"networkobject","subType":"HOST","value":"42.38.187.218","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"4f342e19-761a-5d53-a7a6-471d1cf8e254","name":"Network9","description":"Ehibivje dac entikod lofimom dueku ozitakni rilgolpuv zezartim zilkeki bu mu ertum pol vuodle bemah fegbat.","version":"779130e6-7166-5b4e-91f2-d2d92dd952ec","type":"networkobject","subType":"NETWORK","value":"129.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"e402b5e4-c4c3-572b-9199-f219787e4e5b","name":"Geolocation9","description":"Mukav asi zipleto udi tiva soc isuop ijuka le beomo zedre fevga kogto cara.","version":"df453cf6-f288-57eb-8849-f55827597fa8","type":"geolocation","locations":[{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"d6f6aa91-7e0d-5137-abbf-328cc779888c","name":"Antarctica","deprecated":true,"code":1004,"type":"continent","countries":[{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"3358686b-4139-5062-b3a1-e838d19918cf","name":"Heard Island and McDonald Islands","deprecated":true,"iso3":"HMD","iso2":"HM","code":"334","type":"country"},{"id":"ba4897cd-087a-5292-b1be-d3a00a7f26bb","name":"South Georgia and the South Sandwich Islands","deprecated":true,"iso3":"SGS","iso2":"GS","code":"239","type":"country"},{"id":"fa4cea3e-1888-5481-9934-8f815bc26857","name":"Bouvet Island","deprecated":true,"iso3":"BVT","iso2":"BV","code":"074","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"}],"countryCodes":["260","334","239","074","010"]},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"3e0ee5a1-a07b-52c0-b62c-a470c4269802","name":"Italy","deprecated":false,"iso3":"ITA","iso2":"IT","code":"380","type":"country"},{"id":"90518b4d-6bb9-52e6-abd1-d2f35624ff20","name":"Ecuador","deprecated":true,"iso3":"ECU","iso2":"EC","code":"218","type":"country"},{"id":"627efa23-c14e-5fc0-b2d2-a197986eaa58","name":"Grenada","deprecated":true,"iso3":"GRD","iso2":"GD","code":"308","type":"country"},{"id":"bed65f83-79ce-514e-a9c2-24bae1906576","name":"Senegal","deprecated":true,"iso3":"SEN","iso2":"SN","code":"686","type":"country"}]}],"sourcePorts":[{"id":"5e4d4b4d-706c-5325-b034-896d42bf9087","name":"udp_port_1","description":"Rupkoedo zuv egodid ca buapesug tu mawaduh etaeha pigfa keh it bozute wovi zijuci poscuren ifohhe.","version":"db631abc-32a3-5ca5-8ae5-a3b6f3c8371a","type":"udpportobject","port":8537,"isSystemDefined":true},{"id":"2a40730e-7878-5969-ba53-1d9278cde125","name":"icmpv4port1","description":"Uva ceti behga hetivasu ajbebu rakepe ame ifa aceuriso kejic fucaoti gigvivvo gishelpob jurevmu ov maclefe.","version":"e62c0f51-027e-5a7f-b725-a96162bb7138","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8508,"isSystemDefined":false}],"destinationPorts":[{"id":"1a4f8032-f665-5045-b0d8-a48b339750d1","name":"tcp_port_2","description":"Ku soguzsi ragibi nupavidag faji kovor ikikov efa ha cozuju inietu daf hif iso.","version":"b6ff8844-fd46-5e03-9ca4-00b7bc8bd936","type":"tcpportobject","port":8189,"isSystemDefined":false},{"id":"39c5e145-2ed4-5038-ab20-3c4878437d1d","name":"icmpv6port2","description":"Fajla geffe heseipu tez toluhpap ve uhmoba garoeb ozafuzli suhwof aw likofat erige hentejpi jajaza faztiav osece na.","version":"d4492bb3-d9b0-52fc-acc6-81061c83c6b8","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8267,"isSystemDefined":false}],"users":[{"id":"fd09c815-2ddb-5604-bc51-051489a7eda6","name":"User 11","realmName":"cuucbisken","type":"trafficuser","realmId":2,"version":"julanzovne"},{"id":"272d38c1-b58d-5f2e-8988-abc1cd081efe","name":"User Group 7","realmName":"tivcibjizi","type":"trafficusergroup","realmId":2,"version":"ufajoabcel"},{"id":"82e234e2-f6fe-5d98-bbc0-0d6c7e26482d","name":"User Group 1","realmName":"batziloij","type":"trafficusergroup","realmId":2,"version":"golzegnile"}],"embeddedAppFilter":{"conditions":[{"filter":"huimezuben","tags":[{"id":"63db3391-02c9-5d1b-b971-5a6427f4c9fe","version":"95d07b80-ad97-50b0-a64b-b279d1420618","appId":5,"name":"ApplicationTag5","description":"Uwano ujeoska rootmaj kammovu ivitarpoh percuk oto bacema da onsevsej jovocoog ge gafed zakas ijwimuf.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"},{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"VERY_HIGH"},{"type":"productivitycondition","productivity":"LOW"},{"type":"productivitycondition","productivity":"HIGH"}],"type":"applicationfiltercondition"},{"filter":"muechicpoh","tags":[{"id":"7269266f-8413-59ef-9085-0de4aa64660b","version":"6eb7235a-74ab-5701-8a37-2522e325519d","appId":2,"name":"ApplicationTag2","description":"Zu wep pag palu mazu irowil rag bore ev ica miljov iwoog besjezew fi regevi ap vo.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"VERY_LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"},{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"d34fc0ae-3694-55ab-9ffc-19c66d834cb7","version":"4743a5f3-7dcb-5b78-afd0-0058ca39da4f","name":"ApplicationFilter8","description":"Putzo vowev ec namhilteg kedo jejes tudidan aju er ke deetopo peug ahi bagnuse bacivvep vosev to.","applications":[{"id":"d2f1b4a3-4704-59c8-9beb-dffb7ed07518","version":"b0a0aecb-aa27-5c7e-af44-3696768ae771","description":"Ruzik dat pimpe kinri teroh so ruwekat kikan fakajoz juk deb vusma iji madbizzoc carpecre moajiwa vojpi.","deprecated":true,"appId":2,"productivity":1,"risk":2,"name":"Application13","tagIds":["9b266171-0bc7-5f71-aa6c-44b8cbafa329"],"tags":[{"id":"9b266171-0bc7-5f71-aa6c-44b8cbafa329","version":"746ac683-b500-5781-b179-f61db662f8d3","appId":9,"name":"ApplicationTag9","description":"Ja lohivap wim saj zuw hinakug tiduze noemo azonimi ici kovaz ikuza wiihboz bubopmin la uge jeko.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["24cd3c21-8c19-531f-81d5-08aca7b587b9"],"categories":[{"id":"24cd3c21-8c19-531f-81d5-08aca7b587b9","version":"b18c67e8-0f51-5f2c-88a2-11994eea44b1","appId":5,"name":"ApplicationCategory5","description":"Camweg wevovic diowu fi vo kacag vibumjih lus bowi ewatige epewa ecifoder mu gopeges.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["CLIENT"],"metadata":{"referenced":true},"type":"application"}],"conditions":[{"filter":"kaibaagiaze","tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"63db3391-02c9-5d1b-b971-5a6427f4c9fe","version":"95d07b80-ad97-50b0-a64b-b279d1420618","appId":5,"name":"ApplicationTag5","description":"Uwano ujeoska rootmaj kammovu ivitarpoh percuk oto bacema da onsevsej jovocoog ge gafed zakas ijwimuf.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"0928e8e9-25a4-53d0-b118-342a26b44100","version":"cccc44d5-b855-569b-90ad-b26d4e3e0c66","appId":7,"name":"ApplicationCategory8","description":"Mifzonu fokero acdu panvo cuvubde tovli maz cawag kaoj gosoojo falkof hezel sig ca vo wak.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"VERY_LOW"},{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"CLIENT"},{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"LOW"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":true},"type":"applicationfilter"}],"applications":[{"id":"368e2c4f-cce1-574d-b5ee-ab9d539cf248","version":"3ecf8402-8607-5fdc-a148-f5abddf84f0a","description":"Apeja libsul uweb osjoti ge uzu fal gob woletkew be tu hah ha wuvekohuz gacaw.","deprecated":true,"appId":4,"productivity":1,"risk":0,"name":"Application14","tagIds":["9b16dd72-476a-5ac0-8aeb-fbf6e1f45438"],"tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["5f0662ef-3382-5357-bf35-b9b7361aae44"],"categories":[{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["WEBAPP","SERVER"],"metadata":{"referenced":false},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"88645135-dab6-5408-ad33-728243b663c2","version":"wugurojwo","name":"UrlGroup6","description":"Du vit inawi ravci mogpaf lal fer jefkew ginac nih namhit dop.","objects":[{"id":"d72bd5cf-710c-5048-b0fa-1bda6746520d","version":"onaisujuja","name":"Url3","description":"Nolze no gavrofkep dog di buc ta oko kon pigu fuezo uzara.","url":"http://gagonofi.edu/letiga","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlCategory":{"id":"e1088b47-43c6-509a-a722-763318471791","version":"53a76ab0-006b-5dd4-abc4-c0f9a0d58f50","name":"UrlCategory-13","deprecated":false,"urlCategoryId":13,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"intrusionPolicy":{"id":"a47cb8f5-fe55-11e4-8e99-ipsN20","name":"Balanced Security and Connectivity","links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN20"},"rules":{"links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN20/rules/"}},"description":"Balanced Security and Connectivity Layer","type":"intrusionpolicy","version":"d3d7a26f-ddb0-57fb-a9bf-772424bbdd0a"},"filePolicy":{"id":"de5b742d-70db-535d-bb42-6e6ba949ef53","type":"filepolicy","policyType":"BLOCK_MALWARE_ALL","name":"File_Policy_1","description":"Wiakeno ja barfowole aredu wutra loc fe soc cakdo se la agokim gevsirrog cagome.","version":"e0e81a67-2608-53e2-a015-f53dc3a9de10"},"logFiles":false,"type":"accessrule"},{"id":"71f6804f-8b74-5927-a996-03df9f86a2bf","version":"dcc6e2ef-e010-5241-b6a7-db5b2c8a5b95","ruleId":18,"name":"Access_Rule_18","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_BOTH","syslogServer":{"id":"bcbdd44e-84fb-5185-975d-6d2ed2d936dc","version":"4043cae8-664c-57eb-b27c-4918d63af452","host":"127.5.127.238","port":5897,"protocol":"UDP","useManagementInterface":true,"type":"syslogserver"},"sourceZones":[{"id":"043ca75c-25c8-5d2f-9912-f174e3756077","name":"SecurityZone8Name","description":"Fo zihroc befjijwe vafel golwekjow hukohdi bo gitjap titsuabe cav fif mufdec unibit mubu idabehob ruthesusa.","version":"9f2207f2-63f0-5423-aa5c-6b7dc7d41cf3","interfaces":[{"mtu":2652,"enabled":true,"description":"Ta ikoure oznog tu hodul bizzo jimiite men cucif bewtujjof amurulev cuh igu fo siw dupziswul upahig roivipi.","name":"subinterface1name","id":"bdb62102-971e-5472-ab3b-22a7d408dc10","hardwareName":"SubInterface0/1.2","macAddress":"A57C.05DF.7FC0","monitorInterface":false,"standbyMacAddress":"4CE2.828C.AAB1","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"86a0:974f:3bf1:cee2:71c8:e295:2c3e:8d76/32","ipAddress":"9cb8:4589:0220:bd63:4d62:42ac:bd26:e1ac/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"7f67:fa11:adca:bd10:8583:757e:7ebb:be87","ipAddress":"4298:ffb2:30f7:84b6:5106:69aa:343c:8362"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"43.30.66.103","standbyIpAddress":"138.99.49.192"}},"version":"e04406e6-ff09-57ac-9b38-fdd8b19cf6fb","managementInterface":true,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}},{"id":"95a6c824-af98-562a-8be6-adc2446c4a09","name":"SecurityZone4Name","description":"Hu nevsuzwiz lezjab hidlurus la pak relte kew umigo zo kopi jetjata.","version":"73028d64-6d1e-5a0a-9f3c-db515f246240","interfaces":[{"mtu":2652,"enabled":false,"description":"Zojin ohdahe kulgune acme eriocopus wubvi hulwic buscub daugeiw ekdegwa jijekub ko gijenog lokrogri tolev tiassi pejliuda.","name":"subinterface6name","id":"bf6765a2-9e9f-506d-a381-329a46273a43","hardwareName":"SubInterface0/6.7","macAddress":"35AF.6E50.0377","monitorInterface":true,"standbyMacAddress":"D947.0A8F.425F","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"7206:d020:f8c8:c150:b059:d35c:3824:c1ae/32","ipAddress":"be49:09fb:26ce:f506:0899:43c5:ce17:4143/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"080b:aa66:ca0d:4375:d7c7:8cbb:8978:46f0","ipAddress":"a226:34cd:63b0:a860:aa22:3304:05a5:a64f"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"96.51.91.99","standbyIpAddress":"231.94.58.66"}},"version":"68043109-6c4e-5a0f-8df0-d01122d3c319","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}}],"destinationZones":[{"id":"7fa724f3-b64c-585b-9176-69aed2b36237","name":"SecurityZone1Name","description":"Do pefa ritapo ovauciku vogomougi utino gudo momna sagocbiw bowce awu muzabwoz zetpec kit fe.","version":"9d1d113e-86e0-5106-9f6c-29cc8e8fc7fb","interfaces":[{"mtu":5818,"enabled":true,"description":"Wonca cotfo biok ugfejbah ro itedere itoh pijazu ocozojgi buk facheuho zo.","id":"ef57753e-8a0c-5454-a3b3-fbc3c570851d","hardwareName":"GigabitEthernet1/3","macAddress":"34B5.AF3E.B9E9","monitorInterface":true,"standbyMacAddress":"4AF5.3F46.87FE","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"da83:da11:93ff:4f56:084e:f1c1:269c:0dd0/32","ipAddress":"831e:6e6b:281e:8b10:94d0:03f1:b4d5:3373/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"6a3f:c0b2:5d20:fdb6:945d:bcd1:a144:7558","ipAddress":"af4f:d5f4:67bb:3263:e183:fc6c:ea34:f2e6"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"204.8.215.52","standbyIpAddress":"108.106.112.194"}},"version":"46c1bc9f-9a0a-5425-8dc2-3a04dd84c3f1","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"sourceNetworks":[{"id":"6f55bc7e-79ee-5271-b299-5eb7db9ece0e","name":"Network14","description":"Naduk tuto zatuli pedufu dowkol gapcetod ehukevnem oszi numudol ubibi pufhubfu ripsitfu.","version":"3ab046cd-f4be-55d8-af7a-7a84bc3f7716","type":"networkobject","subType":"HOST","value":"111.31.129.11","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"de4c912d-0f32-5730-92dd-e6ef7f12a099","name":"Network11","description":"Gisi kalej ih zum midogi gar vezsu reweh od sufmukce siici ki hepvevote ubu feva fabikdol.","version":"dc1b33e1-bb99-5727-85e6-6f30f624ffa2","type":"networkobject","subType":"HOST","value":"42.38.187.218","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"e402b5e4-c4c3-572b-9199-f219787e4e5b","name":"Geolocation9","description":"Mukav asi zipleto udi tiva soc isuop ijuka le beomo zedre fevga kogto cara.","version":"df453cf6-f288-57eb-8849-f55827597fa8","type":"geolocation","locations":[{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"d6f6aa91-7e0d-5137-abbf-328cc779888c","name":"Antarctica","deprecated":true,"code":1004,"type":"continent","countries":[{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"3358686b-4139-5062-b3a1-e838d19918cf","name":"Heard Island and McDonald Islands","deprecated":true,"iso3":"HMD","iso2":"HM","code":"334","type":"country"},{"id":"ba4897cd-087a-5292-b1be-d3a00a7f26bb","name":"South Georgia and the South Sandwich Islands","deprecated":true,"iso3":"SGS","iso2":"GS","code":"239","type":"country"},{"id":"fa4cea3e-1888-5481-9934-8f815bc26857","name":"Bouvet Island","deprecated":true,"iso3":"BVT","iso2":"BV","code":"074","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"}],"countryCodes":["260","334","239","074","010"]},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"3e0ee5a1-a07b-52c0-b62c-a470c4269802","name":"Italy","deprecated":false,"iso3":"ITA","iso2":"IT","code":"380","type":"country"},{"id":"90518b4d-6bb9-52e6-abd1-d2f35624ff20","name":"Ecuador","deprecated":true,"iso3":"ECU","iso2":"EC","code":"218","type":"country"},{"id":"627efa23-c14e-5fc0-b2d2-a197986eaa58","name":"Grenada","deprecated":true,"iso3":"GRD","iso2":"GD","code":"308","type":"country"},{"id":"bed65f83-79ce-514e-a9c2-24bae1906576","name":"Senegal","deprecated":true,"iso3":"SEN","iso2":"SN","code":"686","type":"country"}]}],"destinationNetworks":[{"id":"6f55bc7e-79ee-5271-b299-5eb7db9ece0e","name":"Network14","description":"Naduk tuto zatuli pedufu dowkol gapcetod ehukevnem oszi numudol ubibi pufhubfu ripsitfu.","version":"3ab046cd-f4be-55d8-af7a-7a84bc3f7716","type":"networkobject","subType":"HOST","value":"111.31.129.11","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"de4c912d-0f32-5730-92dd-e6ef7f12a099","name":"Network11","description":"Gisi kalej ih zum midogi gar vezsu reweh od sufmukce siici ki hepvevote ubu feva fabikdol.","version":"dc1b33e1-bb99-5727-85e6-6f30f624ffa2","type":"networkobject","subType":"HOST","value":"42.38.187.218","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"e402b5e4-c4c3-572b-9199-f219787e4e5b","name":"Geolocation9","description":"Mukav asi zipleto udi tiva soc isuop ijuka le beomo zedre fevga kogto cara.","version":"df453cf6-f288-57eb-8849-f55827597fa8","type":"geolocation","locations":[{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"d6f6aa91-7e0d-5137-abbf-328cc779888c","name":"Antarctica","deprecated":true,"code":1004,"type":"continent","countries":[{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"3358686b-4139-5062-b3a1-e838d19918cf","name":"Heard Island and McDonald Islands","deprecated":true,"iso3":"HMD","iso2":"HM","code":"334","type":"country"},{"id":"ba4897cd-087a-5292-b1be-d3a00a7f26bb","name":"South Georgia and the South Sandwich Islands","deprecated":true,"iso3":"SGS","iso2":"GS","code":"239","type":"country"},{"id":"fa4cea3e-1888-5481-9934-8f815bc26857","name":"Bouvet Island","deprecated":true,"iso3":"BVT","iso2":"BV","code":"074","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"}],"countryCodes":["260","334","239","074","010"]},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"3e0ee5a1-a07b-52c0-b62c-a470c4269802","name":"Italy","deprecated":false,"iso3":"ITA","iso2":"IT","code":"380","type":"country"},{"id":"90518b4d-6bb9-52e6-abd1-d2f35624ff20","name":"Ecuador","deprecated":true,"iso3":"ECU","iso2":"EC","code":"218","type":"country"},{"id":"627efa23-c14e-5fc0-b2d2-a197986eaa58","name":"Grenada","deprecated":true,"iso3":"GRD","iso2":"GD","code":"308","type":"country"},{"id":"bed65f83-79ce-514e-a9c2-24bae1906576","name":"Senegal","deprecated":true,"iso3":"SEN","iso2":"SN","code":"686","type":"country"}]}],"sourcePorts":[{"id":"d0ecb6d1-cc76-58fb-a392-4e9c9537be4c","name":"icmpv4port2","description":"Asci be jutgu wo susadagi woveven bafosjoc ceec wovukiv tati tepav gu za muhhudbi.","version":"54ed4735-cf04-5504-8a5a-2dd0bec3f5a9","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8251,"isSystemDefined":false},{"id":"ff728962-8729-5bce-941c-1730e280dc0b","name":"icmpv6port1","description":"Uh letiof numsu bokewod gosso sowdilid bevliur idseaho vu delale luctid ila givcogev.","version":"9aca9371-12d1-5490-af24-a87e3160146f","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8452,"isSystemDefined":false}],"destinationPorts":[{"id":"39c5e145-2ed4-5038-ab20-3c4878437d1d","name":"icmpv6port2","description":"Fajla geffe heseipu tez toluhpap ve uhmoba garoeb ozafuzli suhwof aw likofat erige hentejpi jajaza faztiav osece na.","version":"d4492bb3-d9b0-52fc-acc6-81061c83c6b8","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8267,"isSystemDefined":false},{"id":"2a40730e-7878-5969-ba53-1d9278cde125","name":"icmpv4port1","description":"Uva ceti behga hetivasu ajbebu rakepe ame ifa aceuriso kejic fucaoti gigvivvo gishelpob jurevmu ov maclefe.","version":"e62c0f51-027e-5a7f-b725-a96162bb7138","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8508,"isSystemDefined":false}],"users":[{"id":"a4f6665c-e273-5ca6-84e8-f2535614eff2","name":"User 9","realmName":"egumutreawi","type":"trafficuser","realmId":2,"version":"gozojvubur"},{"id":"cdaaabcc-950f-5c26-82dc-407ab8ef9fc6","name":"User Group 30","realmName":"borluclumaga","type":"trafficusergroup","realmId":2,"version":"heznapijma"},{"id":"70337f8a-e858-57a9-82dd-e224c2e62971","name":"User Group 2","realmName":"nunekjizzi","type":"trafficusergroup","realmId":2,"version":"lewujutij"}],"embeddedAppFilter":{"conditions":[{"filter":"giasnovpe","tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"794d6605-f5d9-5f26-b11d-507eac471889","version":"20176f07-7d98-5dd7-8a17-de688ee66220","appId":1,"name":"ApplicationCategory3","description":"Woc ved ecu hin potalbib la uweerabof mato dewahmo avutji wose pujda tunoduz ucu ho zopusno lo mu.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"VERY_LOW"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"},{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"}],"type":"applicationfiltercondition"},{"filter":"baketfale","tags":[{"id":"0b45de63-5252-5257-acf6-ce494cdb905a","version":"9c3ed423-1b8a-5f1f-aae0-a507cc188490","appId":6,"name":"ApplicationTag6","description":"Varejse ji ogouvu rin nubuten bezozmaj coeg zuralse pa zitomgon lu rigugip.","metadata":{"referenced":true},"type":"applicationtag"}],"categories":[{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"HIGH"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"VERY_LOW"},{"type":"productivitycondition","productivity":"MEDIUM"},{"type":"productivitycondition","productivity":"LOW"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"a0d6d0e6-95f9-528f-99cd-ade97f3318ba","version":"e719a0ce-c1e2-56c8-a9be-2f90e8351624","name":"ApplicationFilter15","description":"Lirec zejjezop folidetat dinwe zetavi izdoak hi tion eg iwdorha ik ah abpi.","applications":[{"id":"a035fce1-4959-5362-8472-253aa159b1ec","version":"616efbb8-6148-59e3-afd4-68d4d42164c1","description":"Fo cigejki leg umjunu ja da lefuh ib zatlose ganutag dilebi cejizgow.","deprecated":false,"appId":6,"productivity":0,"risk":1,"name":"Application15","tagIds":["f7e90abe-ce71-56da-9f43-dd8685ec1a3a","a558b06a-1e83-5caa-a903-3b6e291ddc2e"],"tags":[{"id":"f7e90abe-ce71-56da-9f43-dd8685ec1a3a","version":"8b4ad1f1-dab6-5988-a793-c67eb8dbd3ee","appId":1,"name":"ApplicationTag1","description":"Opa zov vek obnam nobbab midzusmow riwehar gufugin mogfuana nairu camu fupim mo hov nizunfej.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"a558b06a-1e83-5caa-a903-3b6e291ddc2e","version":"96c0750c-0f50-5872-869a-8b50dad24edc","appId":8,"name":"SSL protocol","description":"Ifgafu ma vopuatu ho jim zud hiodiben ango ji nusiwufu hig gatejsem povci.","metadata":{"referenced":true},"type":"applicationtag"}],"categoryIds":["fff4b47c-a653-5729-a31a-e6353d420768","7f62abc6-7f08-5a69-acb6-65def01251d4"],"categories":[{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["CLIENT","SERVER"],"metadata":{"referenced":true},"type":"application"}],"conditions":[{"filter":"jignorebes","tags":[{"id":"e9812b72-2a36-5146-bce0-b09f876df88d","version":"080dca18-c677-5dd1-8f2f-40555beb4fe4","appId":10,"name":"ApplicationTag10","description":"Viswilo ariuzaf pih wa mul vugavrip rijfon aba kac giicse wolifa cowudzuv vev iztafit.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"0928e8e9-25a4-53d0-b118-342a26b44100","version":"cccc44d5-b855-569b-90ad-b26d4e3e0c66","appId":7,"name":"ApplicationCategory8","description":"Mifzonu fokero acdu panvo cuvubde tovli maz cawag kaoj gosoojo falkof hezel sig ca vo wak.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"MEDIUM"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"},{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":false},"type":"applicationfilter"}],"applications":[{"id":"d2f1b4a3-4704-59c8-9beb-dffb7ed07518","version":"b0a0aecb-aa27-5c7e-af44-3696768ae771","description":"Ruzik dat pimpe kinri teroh so ruwekat kikan fakajoz juk deb vusma iji madbizzoc carpecre moajiwa vojpi.","deprecated":true,"appId":2,"productivity":1,"risk":2,"name":"Application13","tagIds":["9b266171-0bc7-5f71-aa6c-44b8cbafa329"],"tags":[{"id":"9b266171-0bc7-5f71-aa6c-44b8cbafa329","version":"746ac683-b500-5781-b179-f61db662f8d3","appId":9,"name":"ApplicationTag9","description":"Ja lohivap wim saj zuw hinakug tiduze noemo azonimi ici kovaz ikuza wiihboz bubopmin la uge jeko.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["24cd3c21-8c19-531f-81d5-08aca7b587b9"],"categories":[{"id":"24cd3c21-8c19-531f-81d5-08aca7b587b9","version":"b18c67e8-0f51-5f2c-88a2-11994eea44b1","appId":5,"name":"ApplicationCategory5","description":"Camweg wevovic diowu fi vo kacag vibumjih lus bowi ewatige epewa ecifoder mu gopeges.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["CLIENT"],"metadata":{"referenced":true},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"c8bde3f4-9a21-5a44-80db-baae419148f8","version":"bosavmojgeb","name":"UrlGroup9","description":"Zikaw kozicet agwihul jav eja acniiko hobi mogod ukkem ku irpec zen cijguh dabwuovu je sub.","objects":[{"id":"26cf0d0b-7575-594a-9c3b-9e17d5e24fbf","version":"sipugcocti","name":"Url6","description":"Etna gum cacu tin meehe hu cahfik kus supdeba irlohje hig rizhepzov vi togaofo los dujna her sipu.","url":"http://bejakuru.co.uk/ebkampaw","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlReputation":{"id":"e486bdfa-148b-5bc2-8d36-a9ff520e6100","name":"Benign sites with security risks","index":3,"startPercentage":41,"endPercentage":60,"version":"b9f77c01-ede9-55d2-b674-61ac711565ec","type":"urlreputation"},"urlCategory":{"id":"fef571b3-8633-5be7-9cef-47c0dc5a43a7","version":"2b4b99aa-307f-5ed5-b7f3-5c9e0fa8846e","name":"UrlCategory-4","deprecated":false,"urlCategoryId":4,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"intrusionPolicy":{"id":"a47cb8f5-fe55-11e4-8e99-ipsN30","name":"Security Over Connectivity","links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN30"},"rules":{"links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN30/rules/"}},"description":"Security Over Connectivity Layer","type":"intrusionpolicy","version":"fc826c33-84fb-5b14-96e5-0cdd4717c442"},"filePolicy":{"id":"e5f42e5a-0e3d-5492-ad97-1db09ef14605","type":"filepolicy","policyType":"BLOCK_OFFICE_DOCUMENTS_UPLOAD_BLOCK_MALWARE_OTHERS","name":"File_Policy_4","description":"Ju ihgufnaj ve gargeoz unatub asiuj ra dag pino jecob ane luno mubud emapod.","version":"55282093-0a9c-5a43-89ed-3d9b9c708952"},"logFiles":false,"type":"accessrule"},{"id":"0cb902a0-a89c-5606-bac5-00177a819def","version":"21398c51-3946-5a6c-8d6c-cd89d526a693","ruleId":19,"name":"Access_Rule_19","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_BOTH","syslogServer":{"id":"57bc6178-2f01-52b2-8d55-29366cb35285","version":"beeb6d44-207b-5a07-b708-0b4fba7c56c5","host":"171.25.188.89","port":5897,"deviceInterface":{"mtu":5818,"enabled":true,"description":"Setta biwofega af ihi ebele inowo inagiobo nu it fe heivu lijivok.","name":"diagnostic","id":"f7509b61-168c-5d86-9a4c-8d3a2bb23e90","hardwareName":"Management0/0","macAddress":"249A.16A4.5DED","monitorInterface":true,"standbyMacAddress":"06D4.757D.FF06","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0c4e:e907:93c3:ba7a:7842:4899:f454:2a33/32","ipAddress":"41e0:3a60:0ca6:5f1c:cdd5:9c57:4918:682f/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d039:d6f4:278a:cdd3:b9e3:2711:460f:1555","ipAddress":"7e31:6d3f:5bbc:0d7f:4df6:58b9:26a6:d462"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"227.88.54.119","standbyIpAddress":"119.107.19.197"}},"version":"e50dac9e-5493-5760-b5e5-294741f3c409","managementInterface":true,"managementOnly":true,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"},"protocol":"UDP","useManagementInterface":false,"type":"syslogserver"},"sourceZones":[{"id":"d2cf6df0-e095-59f1-9afe-4e1f95b290e7","name":"SecurityZone6Name","description":"Kivmeat sepfeheh jekacaloh awe wap vajan utiweb daczo ji ji pew wioha bawmivim ri kaj gibvevsa.","version":"5751e8ac-10c9-5b44-a9fa-1ed8e07d2d40","interfaces":[{"mtu":5818,"enabled":false,"description":"Jigiz malko navsup bojga widbihi vatel vahuwuta ugi bopuru duzwar zopi juinoito sibkonac fozgojmi toopu nurhiru ce joeho.","name":"inside","id":"bddde0e1-1b1f-5f42-b9b7-7c72d9099ef4","hardwareName":"GigabitEthernet1/1","macAddress":"ECFB.7E12.09E1","monitorInterface":true,"standbyMacAddress":"A09D.B513.9683","version":"69f9f38e-0479-58d1-961c-e4040d439200","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"PASSIVE","type":"physicalinterface"},{"mtu":2652,"enabled":true,"description":"Pipakaz ramkudu ulido ce boh ugmepku izareszeh katakuz vosinde takwa piprazipo fostoftug egjolut.","name":"subinterface3name","id":"4258612a-c6ac-5407-8edc-04b207b2b473","hardwareName":"SubInterface0/3.4","macAddress":"4A8E.2AFE.5DE9","monitorInterface":true,"standbyMacAddress":"F917.A989.864E","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"5b49:5a29:3cd4:5c83:7b30:0115:7927:eaf3/32","ipAddress":"a3eb:3b72:2cfa:9901:b7c7:1581:fa72:4b49/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"42e6:34b8:f5eb:802f:626b:503c:781e:aacd","ipAddress":"dcc0:3abc:3933:8a47:25c6:d9a7:2e80:06dc"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"137.234.118.13","standbyIpAddress":"67.162.53.251"}},"version":"2a53f3c3-fc6d-557c-bdbb-e97bc156553c","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}},{"id":"340bf250-a4a5-5049-bddf-a6201a9b8e86","name":"SecurityZone7Name","description":"So gitejipo sotvotdab watu la ica fojum dorog odohog mil etuw ta daghavke dig.","version":"273d67ab-abb9-5af1-8574-3e9af6e98aed","interfaces":[{"mtu":2652,"enabled":false,"description":"Wa cep gi lankowtu ce uvujed tad wo vezke vib vezvufgev hun vob velumde.","name":"subinterface11name","id":"ffc74b4d-ad27-5459-9907-186a8c739189","hardwareName":"SubInterface0/11.12","macAddress":"1534.AB09.4146","monitorInterface":true,"standbyMacAddress":"CF72.BDFB.98A1","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"fafb:559d:106d:67ac:52dd:e182:d306:4792/32","ipAddress":"a7bd:69ea:f24f:04ea:40c5:3f80:0416:0f09/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d544:6d26:411c:e460:9911:cb8b:ca9e:3a15","ipAddress":"f96f:858d:9ed1:fc9f:7b47:0fb4:246d:6cb6"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"17.76.225.83","standbyIpAddress":"195.253.157.229"}},"version":"e22e21d2-9d64-51a4-adc2-a775a4572916","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}}],"destinationZones":[{"id":"8cb69a8f-7d8d-5f4e-9a4f-f6e717f833ed","name":"SecurityZone3Name","description":"Udanovja dupolo zurepi ufmu ah lezup ba ga jur duvorzu abevabji zil nuikihi wopuw.","version":"dd83a4d5-be23-51f8-9b73-2ae9e26f7d36","interfaces":[{"mtu":2652,"enabled":false,"description":"Efupaf nas ilureg zetikdav emki fafiv tihug orhid zimurfo naferal va ta ug za ur di zetsa ragizike.","name":"subinterface10name","id":"4307a6d5-0ef1-55d4-adc4-0461c31b7eb5","hardwareName":"SubInterface0/10.11","macAddress":"F617.A8F2.5DEB","monitorInterface":true,"standbyMacAddress":"0E24.391A.BFD9","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"c324:084e:8a04:523f:64ec:2b27:9f07:6a8d/32","ipAddress":"0faf:b8b8:7fbe:0d00:facd:c82d:f721:93dd/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"bc90:477f:99f9:ee80:1faa:1f0c:a2a6:77b7","ipAddress":"2d31:24c2:acd3:16b0:d1df:b4b6:763f:48c0"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"250.15.33.10","standbyIpAddress":"254.220.208.229"}},"version":"0f193aa1-ad09-52dd-98e8-eb32e2e61484","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"sourceNetworks":[{"id":"00826312-17b2-5b1e-968a-aabe114f0734","name":"Network6","description":"Je anah sankorir zaduv noscipan ron pi dubsanuf motnod ugufu zacew idu wafsembuc lo roge almoh lah.","version":"59e9909f-27d5-5e47-8d77-210909065352","type":"networkobject","subType":"NETWORK","value":"234.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"c1e8dd5a-a13d-5bcd-8db1-d7895b9a9f3a","name":"Network7","description":"Ehe jeep mijwamad kohi ifegujzek tednadcat dewian tuzdum ripi wondoh woh cugi masal.","version":"dc274636-d6d4-590e-b68f-5cc0d313f41b","type":"networkobject","subType":"NETWORK","value":"71.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"2082a308-8b86-5219-b121-d470ff1b8aa8","name":"Geolocation14","description":"Heivkib tij budvoddij abauzjuk obuvunken fiji tajo puluno kahja vozrejnak hizebivis dowu cujtabti kelij heh mo pifgiri lamfajkuw.","version":"db2ff476-1b01-52e6-8574-95caec83dfa4","type":"geolocation","locations":[{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"92e4bed7-5044-5b4f-8d3f-1239ff903965","name":"France","deprecated":true,"iso3":"FRA","iso2":"FR","code":"250","type":"country"},{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"f15f76ba-d150-5ed1-8d49-329860b8a4c2","name":"Venezuela","deprecated":false,"iso3":"VEN","iso2":"VE","code":"862","type":"country"},{"id":"57110fb6-aee4-50cf-a1ad-e8e3cf723b03","name":"Curacao","deprecated":false,"iso3":"CUW","iso2":"CW","code":"531","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"}]}],"destinationNetworks":[{"id":"00826312-17b2-5b1e-968a-aabe114f0734","name":"Network6","description":"Je anah sankorir zaduv noscipan ron pi dubsanuf motnod ugufu zacew idu wafsembuc lo roge almoh lah.","version":"59e9909f-27d5-5e47-8d77-210909065352","type":"networkobject","subType":"NETWORK","value":"234.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"c1e8dd5a-a13d-5bcd-8db1-d7895b9a9f3a","name":"Network7","description":"Ehe jeep mijwamad kohi ifegujzek tednadcat dewian tuzdum ripi wondoh woh cugi masal.","version":"dc274636-d6d4-590e-b68f-5cc0d313f41b","type":"networkobject","subType":"NETWORK","value":"71.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"2082a308-8b86-5219-b121-d470ff1b8aa8","name":"Geolocation14","description":"Heivkib tij budvoddij abauzjuk obuvunken fiji tajo puluno kahja vozrejnak hizebivis dowu cujtabti kelij heh mo pifgiri lamfajkuw.","version":"db2ff476-1b01-52e6-8574-95caec83dfa4","type":"geolocation","locations":[{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"92e4bed7-5044-5b4f-8d3f-1239ff903965","name":"France","deprecated":true,"iso3":"FRA","iso2":"FR","code":"250","type":"country"},{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"f15f76ba-d150-5ed1-8d49-329860b8a4c2","name":"Venezuela","deprecated":false,"iso3":"VEN","iso2":"VE","code":"862","type":"country"},{"id":"57110fb6-aee4-50cf-a1ad-e8e3cf723b03","name":"Curacao","deprecated":false,"iso3":"CUW","iso2":"CW","code":"531","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"}]}],"sourcePorts":[{"id":"d0ecb6d1-cc76-58fb-a392-4e9c9537be4c","name":"icmpv4port2","description":"Asci be jutgu wo susadagi woveven bafosjoc ceec wovukiv tati tepav gu za muhhudbi.","version":"54ed4735-cf04-5504-8a5a-2dd0bec3f5a9","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8251,"isSystemDefined":false},{"id":"5e4d4b4d-706c-5325-b034-896d42bf9087","name":"udp_port_1","description":"Rupkoedo zuv egodid ca buapesug tu mawaduh etaeha pigfa keh it bozute wovi zijuci poscuren ifohhe.","version":"db631abc-32a3-5ca5-8ae5-a3b6f3c8371a","type":"udpportobject","port":8537,"isSystemDefined":true}],"destinationPorts":[{"id":"39c5e145-2ed4-5038-ab20-3c4878437d1d","name":"icmpv6port2","description":"Fajla geffe heseipu tez toluhpap ve uhmoba garoeb ozafuzli suhwof aw likofat erige hentejpi jajaza faztiav osece na.","version":"d4492bb3-d9b0-52fc-acc6-81061c83c6b8","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8267,"isSystemDefined":false},{"id":"2a40730e-7878-5969-ba53-1d9278cde125","name":"icmpv4port1","description":"Uva ceti behga hetivasu ajbebu rakepe ame ifa aceuriso kejic fucaoti gigvivvo gishelpob jurevmu ov maclefe.","version":"e62c0f51-027e-5a7f-b725-a96162bb7138","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8508,"isSystemDefined":false}],"users":[{"id":"35a62df5-7fcc-5388-b945-2d9e91aad74d","name":"User Group 10","realmName":"liravopza","type":"trafficusergroup","realmId":2,"version":"cahiruohalik"},{"id":"6fc80f39-f5ca-52da-baac-a4008a22fdbd","name":"User 29","realmName":"hoomewudavu","type":"trafficuser","realmId":2,"version":"maakuojusal"},{"id":"dd95afe8-437e-51ab-985a-c48929c0e3ba","name":"User 14","realmName":"ugaopezuepi","type":"trafficuser","realmId":2,"version":"esdafroce"}],"embeddedAppFilter":{"conditions":[{"filter":"rapfosapi","tags":[{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"415702f2-3bd8-5dba-adea-dd03452067a5","version":"1062501a-214c-51d1-9af3-d9c2ca87588f","appId":4,"name":"ApplicationCategory11","description":"Dubofmih taj cukij fes vizoc urzip lazigeha pot bak jackoaz ufi ebomujme ce.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"HIGH"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"MEDIUM"}],"type":"applicationfiltercondition"},{"filter":"giasnovpe","tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"794d6605-f5d9-5f26-b11d-507eac471889","version":"20176f07-7d98-5dd7-8a17-de688ee66220","appId":1,"name":"ApplicationCategory3","description":"Woc ved ecu hin potalbib la uweerabof mato dewahmo avutji wose pujda tunoduz ucu ho zopusno lo mu.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"VERY_LOW"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"},{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"75251c34-4dfe-5cb2-a779-5c4cba9eb2ae","version":"66eab5b5-cd48-52d7-9797-8e846f22fbeb","name":"ApplicationFilter6","description":"Ve hijusla tazwomur cekzinso uho nahulni sifadu taf leare vezrovi su noruv bippupo dimuz gu ceuwa caki bi.","applications":[{"id":"44b7bb09-58d5-59ef-abd3-7341fa4d1c7b","version":"fe155cb3-e78d-5a5b-8713-5c056c0ea86f","description":"Dazgo jefeci dulhel lowez cotgo mu ewuufih indeh bo urjur vursosoc cetco eb.","deprecated":false,"appId":8,"productivity":3,"risk":3,"name":"Application3","tagIds":["58edda62-c97b-56e5-9e6c-32926f4d3009"],"tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["794d6605-f5d9-5f26-b11d-507eac471889","0928e8e9-25a4-53d0-b118-342a26b44100"],"categories":[{"id":"794d6605-f5d9-5f26-b11d-507eac471889","version":"20176f07-7d98-5dd7-8a17-de688ee66220","appId":1,"name":"ApplicationCategory3","description":"Woc ved ecu hin potalbib la uweerabof mato dewahmo avutji wose pujda tunoduz ucu ho zopusno lo mu.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"0928e8e9-25a4-53d0-b118-342a26b44100","version":"cccc44d5-b855-569b-90ad-b26d4e3e0c66","appId":7,"name":"ApplicationCategory8","description":"Mifzonu fokero acdu panvo cuvubde tovli maz cawag kaoj gosoojo falkof hezel sig ca vo wak.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["SERVER"],"metadata":{"referenced":false},"type":"application"},{"id":"c51fa076-7516-5b1a-b689-87d5d4dd6656","version":"71b129f0-e504-5ee0-85b0-3d683c7fbc85","description":"Fishak luksa juw magaldi igo kaipojo vifpok jarado fefadkiw keogo mow kojepoha bonewke hobomag vo gi om tam.","deprecated":false,"appId":4,"productivity":1,"risk":3,"name":"Application4","tagIds":["58edda62-c97b-56e5-9e6c-32926f4d3009","63db3391-02c9-5d1b-b971-5a6427f4c9fe"],"tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"63db3391-02c9-5d1b-b971-5a6427f4c9fe","version":"95d07b80-ad97-50b0-a64b-b279d1420618","appId":5,"name":"ApplicationTag5","description":"Uwano ujeoska rootmaj kammovu ivitarpoh percuk oto bacema da onsevsej jovocoog ge gafed zakas ijwimuf.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["794d6605-f5d9-5f26-b11d-507eac471889","33552c21-0930-5bb5-8459-9b7608cda68e"],"categories":[{"id":"794d6605-f5d9-5f26-b11d-507eac471889","version":"20176f07-7d98-5dd7-8a17-de688ee66220","appId":1,"name":"ApplicationCategory3","description":"Woc ved ecu hin potalbib la uweerabof mato dewahmo avutji wose pujda tunoduz ucu ho zopusno lo mu.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"33552c21-0930-5bb5-8459-9b7608cda68e","version":"73578557-169e-5431-99f4-4a87fb56d57c","appId":4,"name":"ApplicationCategory9","description":"Tir upwul taf foj igonas mawejus ba ni loj racwu pu nelkal gofifun zemcuz ut.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["CLIENT","WEBAPP"],"metadata":{"referenced":false},"type":"application"}],"conditions":[{"filter":"tazfeofgut","tags":[{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"e9812b72-2a36-5146-bce0-b09f876df88d","version":"080dca18-c677-5dd1-8f2f-40555beb4fe4","appId":10,"name":"ApplicationTag10","description":"Viswilo ariuzaf pih wa mul vugavrip rijfon aba kac giicse wolifa cowudzuv vev iztafit.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"},{"id":"ea9b4aa3-c8a2-52f9-87ba-b33f1b452a42","version":"e289f52e-a078-5581-a775-4c8435a534f0","appId":3,"name":"ApplicationCategory7","description":"Ci sovo ig ivebcag gif uk eztez ezofi jizrebi lafozu ehje daj noiw vajru modpoteh juizu.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"MEDIUM"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"MEDIUM"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":true},"type":"applicationfilter"}],"applications":[{"id":"368e2c4f-cce1-574d-b5ee-ab9d539cf248","version":"3ecf8402-8607-5fdc-a148-f5abddf84f0a","description":"Apeja libsul uweb osjoti ge uzu fal gob woletkew be tu hah ha wuvekohuz gacaw.","deprecated":true,"appId":4,"productivity":1,"risk":0,"name":"Application14","tagIds":["9b16dd72-476a-5ac0-8aeb-fbf6e1f45438"],"tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["5f0662ef-3382-5357-bf35-b9b7361aae44"],"categories":[{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["WEBAPP","SERVER"],"metadata":{"referenced":false},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"ce7eba4c-0b9a-5a3f-bb88-6ce71398fbc8","version":"epozikeccow","name":"UrlGroup1","description":"Kajili nockugda van cikepuh toavah kebpi muwnumo tezotu pelapdec sif fepgo hul sacwav na.","objects":[{"id":"d31c2d0e-3ad0-5053-9a7b-a0ef29eff5f9","version":"ajolouhog","name":"Url8","description":"Kirgirac rireto vu nimu kek bo dosoze tillen wisud kerecfar evibur wen cehpa weg ju doneh.","url":"http://de.co.uk/neni","type":"urlobject"},{"id":"d72bd5cf-710c-5048-b0fa-1bda6746520d","version":"onaisujuja","name":"Url3","description":"Nolze no gavrofkep dog di buc ta oko kon pigu fuezo uzara.","url":"http://gagonofi.edu/letiga","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlReputation":{"id":"23f0e43b-0957-554b-b0a4-555d8a444cfa","name":"High risk","index":5,"startPercentage":1,"endPercentage":20,"version":"67559ce6-d60d-5a76-9eef-b4d30401c5c8","type":"urlreputation"},"urlCategory":{"id":"798bf64f-6bf2-5cf4-a895-74670e51cfb2","version":"08eadcce-2a79-5212-9907-e3e7b7e8ae0e","name":"UrlCategory-6","deprecated":false,"urlCategoryId":6,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"intrusionPolicy":{"id":"a47cb8f6-fe55-11e4-8e99-ipsN10","name":"Connectivity Over Security","links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f6-fe55-11e4-8e99-ipsN10"},"rules":{"links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f6-fe55-11e4-8e99-ipsN10/rules/"}},"description":"Connectivity Over Security Layer","type":"intrusionpolicy","version":"f17dd031-7eba-5f6f-8734-300a871471fe"},"filePolicy":{"id":"e5f42e5a-0e3d-5492-ad97-1db09ef14605","type":"filepolicy","policyType":"BLOCK_OFFICE_DOCUMENTS_UPLOAD_BLOCK_MALWARE_OTHERS","name":"File_Policy_4","description":"Ju ihgufnaj ve gargeoz unatub asiuj ra dag pino jecob ane luno mubud emapod.","version":"55282093-0a9c-5a43-89ed-3d9b9c708952"},"logFiles":false,"type":"accessrule"},{"id":"90c3f2d9-7444-59db-9db8-313a404934e2","version":"3cf75724-ee2e-5683-8921-c4d493135c35","ruleId":20,"name":"Access_Rule_20","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_BOTH","syslogServer":{"id":"f2c4e7eb-7291-5517-9517-856dc94ff74d","version":"a0453a75-4ee6-5add-9577-adc5172a2d03","host":"57.182.210.210","port":5897,"protocol":"TCP","useManagementInterface":true,"type":"syslogserver"},"sourceZones":[{"id":"e960df5e-1ab8-5a15-85e5-a7a47f0ebcb0","name":"SecurityZone5Name","description":"Kinen aziheeci teniow ucezaw idikaki rupbu tieb rawihzec ufkedok iwewun le zihpisze vuzip roetjim fokbuwu jemrumvu cigzet.","version":"0925128c-48f1-552e-8507-379551253d9c","interfaces":[{"mtu":2652,"enabled":true,"description":"Hi vihjuup vueji zufmab wib zel woz ligok wu hi iremouto wahoato.","name":"subinterface5name","id":"9f816351-560c-5e5b-ba0a-2051828301e6","hardwareName":"SubInterface0/5.6","macAddress":"84F0.8C6A.D6DF","monitorInterface":true,"standbyMacAddress":"0971.695D.7024","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"e20a:2b14:aecc:7997:984d:9fcd:b3c4:2e66/32","ipAddress":"5753:596d:3c86:ab69:1e26:fa83:c032:8e71/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"44d8:5ccd:bbcd:60df:d35b:afb7:6211:375b","ipAddress":"7b7c:0b52:9938:5274:ef02:b8c5:577c:5028"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"119.148.92.111","standbyIpAddress":"106.21.74.31"}},"version":"7a7c4c69-3da2-5e43-a1f3-2f8026bfb0bd","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}},{"id":"83e3721c-b23f-5eb1-b660-40655c216680","name":"SecurityZone9Name","description":"Iha kiuh ja iweacce tuh hajmipjuj fikufuv bofijwi esede tu gahak wenab belif lupilsif udo puzabke ferfa ofwon.","version":"17150a55-f982-526f-aa60-9e435d2c5455","interfaces":[{"mtu":5818,"enabled":true,"description":"Wabjenuv vuhtevguf zucce omiogu anitug cuho gaejma vesumob oduuro levhid uniozwej olkavcuv dawiim mehub wuka suj.","id":"3faf4981-2b04-5091-9c1f-fa0ab78379b4","hardwareName":"GigabitEthernet1/5","macAddress":"7472.5071.519E","monitorInterface":false,"standbyMacAddress":"5387.1EFE.E0E6","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"84c0:cd09:bceb:ce0c:5cfa:f535:d426:01db/32","ipAddress":"067a:e7f9:1bf0:6af4:b89b:4c11:ec0c:51b4/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"02eb:e82a:bb44:e0a0:d969:6055:6744:cfa2","ipAddress":"aa33:0271:1f23:9725:0d24:7767:0fd2:0cf8"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"6.124.202.116","standbyIpAddress":"40.108.171.23"}},"version":"472d2c22-e548-5cb1-983f-f81ee3e14422","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]},{"mtu":5818,"enabled":true,"description":"Dib wohomfa it firasugu joev ge nu dab caejuja ba no owezru rijbofnuv da ren.","name":"outside","id":"056580af-b7b5-5ea4-9434-84acde7b7b2b","hardwareName":"GigabitEthernet1/2","macAddress":"B807.AD9D.0E4C","monitorInterface":false,"standbyMacAddress":"8F66.A03C.5C85","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"398d:4979:fd8c:5c79:130d:af73:39ac:575b/32","ipAddress":"0e08:b1ea:5a22:75ba:8e01:eaed:3442:684c/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"264c:f9d4:85a8:fdee:b56d:4b03:96d7:6285","ipAddress":"d0f4:3235:0882:22a2:f8c8:c2db:683c:9639"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"178.90.249.165","standbyIpAddress":"41.101.191.177"}},"version":"53c69bde-efdf-5307-96bb-1d0c92bec9a5","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"PASSIVE","type":"physicalinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}}],"destinationZones":[{"id":"7fa724f3-b64c-585b-9176-69aed2b36237","name":"SecurityZone1Name","description":"Do pefa ritapo ovauciku vogomougi utino gudo momna sagocbiw bowce awu muzabwoz zetpec kit fe.","version":"9d1d113e-86e0-5106-9f6c-29cc8e8fc7fb","interfaces":[{"mtu":5818,"enabled":true,"description":"Wonca cotfo biok ugfejbah ro itedere itoh pijazu ocozojgi buk facheuho zo.","id":"ef57753e-8a0c-5454-a3b3-fbc3c570851d","hardwareName":"GigabitEthernet1/3","macAddress":"34B5.AF3E.B9E9","monitorInterface":true,"standbyMacAddress":"4AF5.3F46.87FE","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"da83:da11:93ff:4f56:084e:f1c1:269c:0dd0/32","ipAddress":"831e:6e6b:281e:8b10:94d0:03f1:b4d5:3373/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"6a3f:c0b2:5d20:fdb6:945d:bcd1:a144:7558","ipAddress":"af4f:d5f4:67bb:3263:e183:fc6c:ea34:f2e6"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"204.8.215.52","standbyIpAddress":"108.106.112.194"}},"version":"46c1bc9f-9a0a-5425-8dc2-3a04dd84c3f1","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"sourceNetworks":[{"id":"b483d38e-bce7-5bb7-9769-57ec8151bd4f","name":"Network12","description":"Tikafnaz lujis rirunuf sehi ubfewe kabhili zota funfof zagujnuf mel ejejegto fihjunmu ma funah va.","version":"3132162a-9791-5f26-9146-79add126c19f","type":"networkobject","subType":"NETWORK","value":"23.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"6f55bc7e-79ee-5271-b299-5eb7db9ece0e","name":"Network14","description":"Naduk tuto zatuli pedufu dowkol gapcetod ehukevnem oszi numudol ubibi pufhubfu ripsitfu.","version":"3ab046cd-f4be-55d8-af7a-7a84bc3f7716","type":"networkobject","subType":"HOST","value":"111.31.129.11","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"302b9321-60fd-55ac-8111-7b228ba8a7bc","name":"Geolocation1","description":"Eretalta mov naw dibravwe vimu bek ose wipa ecgule kesep pewaco we taruhra awsen kef poin tu fazu.","version":"b9a8a2e0-c5ff-5705-8d0f-b488b9275e46","type":"geolocation","locations":[{"id":"56ea454f-c3b7-5928-88b1-fc3c7937519a","name":"Africa","deprecated":true,"code":1001,"type":"continent","countries":[{"id":"2dd83d58-9368-513e-8bca-464e074764f6","name":"Zimbabwe","deprecated":true,"iso3":"ZWE","iso2":"ZW","code":"716","type":"country"},{"id":"7cd6bf9c-8b69-57c2-abf6-6eeb0741de15","name":"Zambia","deprecated":true,"iso3":"ZMB","iso2":"ZM","code":"894","type":"country"},{"id":"f2d94483-8127-5b5c-9f56-26897f391615","name":"South Africa","deprecated":false,"iso3":"ZAF","iso2":"ZA","code":"710","type":"country"},{"id":"67312148-f472-5f74-af7e-da0dfe6c5483","name":"Mayotte","deprecated":true,"iso3":"MYT","iso2":"YT","code":"175","type":"country"},{"id":"16d66ae1-8a56-5b81-8a83-6f7123be2e2c","name":"Uganda","deprecated":false,"iso3":"UGA","iso2":"UG","code":"800","type":"country"},{"id":"b1825e78-1df2-5592-a76e-7442de702238","name":"Tanzania","deprecated":false,"iso3":"TZA","iso2":"TZ","code":"834","type":"country"},{"id":"34105ec6-4fd5-5617-8a55-a033b433501b","name":"Tunisia","deprecated":false,"iso3":"TUN","iso2":"TN","code":"788","type":"country"},{"id":"00827e94-7231-522b-a92c-c43381c394b0","name":"Togo","deprecated":true,"iso3":"TGO","iso2":"TG","code":"768","type":"country"},{"id":"5b1f4a78-73fb-5d81-b087-a43e6a56210e","name":"Chad","deprecated":true,"iso3":"TCD","iso2":"TD","code":"148","type":"country"},{"id":"4390d558-ea24-5aab-92ed-7ea167512925","name":"Swaziland","deprecated":false,"iso3":"SWZ","iso2":"SZ","code":"748","type":"country"},{"id":"22e9a10d-c048-5bce-92b3-d35ba32a2380","name":"São Tomé and PrÃncipe","deprecated":false,"iso3":"STP","iso2":"ST","code":"678","type":"country"},{"id":"175e350b-3e7b-5988-92a5-b8592f89a5d0","name":"South Sudan","deprecated":true,"iso3":"SSD","iso2":"SS","code":"728","type":"country"},{"id":"408c17e6-3750-56ba-b74d-14cece756b69","name":"Somalia","deprecated":false,"iso3":"SOM","iso2":"SO","code":"706","type":"country"},{"id":"bed65f83-79ce-514e-a9c2-24bae1906576","name":"Senegal","deprecated":true,"iso3":"SEN","iso2":"SN","code":"686","type":"country"},{"id":"81415c05-a391-5182-8902-0f48ee21358a","name":"Sierra Leone","deprecated":true,"iso3":"SLE","iso2":"SL","code":"694","type":"country"},{"id":"50c46fa0-0451-5e15-9bbc-846a527de114","name":"Saint Helena","deprecated":true,"iso3":"SHN","iso2":"SH","code":"654","type":"country"},{"id":"c2a050bc-b370-5bcd-945c-cd0d88d814ee","name":"Sudan","deprecated":false,"iso3":"SDN","iso2":"SD","code":"729","type":"country"},{"id":"2792902e-5e01-5294-bd39-4a9b86443f69","name":"Seychelles","deprecated":false,"iso3":"SYC","iso2":"SC","code":"690","type":"country"},{"id":"e6e6e19f-26b3-53cc-ae5c-ad6af73ffa23","name":"Rwanda","deprecated":false,"iso3":"RWA","iso2":"RW","code":"646","type":"country"},{"id":"1657adab-03a4-556a-b779-d62bf356497f","name":"Réunion","deprecated":true,"iso3":"REU","iso2":"RE","code":"638","type":"country"},{"id":"db11cb4c-3534-5c9a-bd15-7b41c5b161d6","name":"Nigeria","deprecated":false,"iso3":"NGA","iso2":"NG","code":"566","type":"country"},{"id":"271aded5-deef-50b9-9e02-ec55543da25b","name":"Niger","deprecated":true,"iso3":"NER","iso2":"NE","code":"562","type":"country"},{"id":"a8f12931-d0a3-5ead-b8f7-26c9d8e29684","name":"Namibia","deprecated":false,"iso3":"NAM","iso2":"NA","code":"516","type":"country"},{"id":"f85a38bd-9851-5540-9a47-2bcda221c02f","name":"Mozambique","deprecated":false,"iso3":"MOZ","iso2":"MZ","code":"508","type":"country"},{"id":"26316b70-a4e5-5ee7-9176-d8f88977ac81","name":"Malawi","deprecated":false,"iso3":"MWI","iso2":"MW","code":"454","type":"country"},{"id":"8ac5e628-88fe-5a8f-a8e8-5e9823bed8c9","name":"Mauritius","deprecated":true,"iso3":"MUS","iso2":"MU","code":"480","type":"country"},{"id":"6286246a-cb95-57c8-bf4d-85524e069dc9","name":"Mauritania","deprecated":false,"iso3":"MRT","iso2":"MR","code":"478","type":"country"},{"id":"9eaf4ef5-fcd1-55b8-b344-7b60f9acbb2a","name":"Mali","deprecated":true,"iso3":"MLI","iso2":"ML","code":"466","type":"country"},{"id":"3158c9ea-2e08-5057-923c-a252e9bbceb5","name":"Madagascar","deprecated":true,"iso3":"MDG","iso2":"MG","code":"450","type":"country"},{"id":"b110114a-4903-54d2-8925-cfa66175fc81","name":"Morocco","deprecated":true,"iso3":"MAR","iso2":"MA","code":"504","type":"country"},{"id":"ac567919-9e6f-5712-8ef8-817d2875ae89","name":"Libya","deprecated":false,"iso3":"LBY","iso2":"LY","code":"434","type":"country"},{"id":"b82c039e-20c2-50f0-9176-307e154d19cd","name":"Lesotho","deprecated":true,"iso3":"LSO","iso2":"LS","code":"426","type":"country"},{"id":"936e5855-cede-5036-b530-4a8dc3ded9f1","name":"Liberia","deprecated":true,"iso3":"LBR","iso2":"LR","code":"430","type":"country"},{"id":"781554f5-83af-5829-a0b1-f679ccadcbc8","name":"Comoros","deprecated":true,"iso3":"COM","iso2":"KM","code":"174","type":"country"},{"id":"ef9608a5-3398-5610-9770-361e8f4d5018","name":"Kenya","deprecated":false,"iso3":"KEN","iso2":"KE","code":"404","type":"country"},{"id":"7ff14832-3c58-5e8d-b6fa-7d211d0eddea","name":"Guinea-Bissau","deprecated":true,"iso3":"GNB","iso2":"GW","code":"624","type":"country"},{"id":"24ef0507-02b5-58d8-a403-8087853d0d0e","name":"Equatorial Guinea","deprecated":false,"iso3":"GNQ","iso2":"GQ","code":"226","type":"country"},{"id":"8b2e1fe0-df59-514f-8cad-46e618371f10","name":"Guinea","deprecated":false,"iso3":"GIN","iso2":"GN","code":"324","type":"country"},{"id":"2311d16e-f8c8-5db8-9446-ddc015dee026","name":"Gambia","deprecated":true,"iso3":"GMB","iso2":"GM","code":"270","type":"country"},{"id":"9cbd51af-d825-56f1-b3c3-1412697fe6d8","name":"Ghana","deprecated":true,"iso3":"GHA","iso2":"GH","code":"288","type":"country"},{"id":"1a6265f3-08ce-57c4-9d8d-8807bc7c3f96","name":"Gabon","deprecated":true,"iso3":"GAB","iso2":"GA","code":"266","type":"country"},{"id":"7466e390-4ac7-5c6e-8ae7-cffbf4d26761","name":"Ethiopia","deprecated":false,"iso3":"ETH","iso2":"ET","code":"231","type":"country"},{"id":"1b6630d5-2650-5baf-b9a5-fa59fbbd36be","name":"Eritrea","deprecated":false,"iso3":"ERI","iso2":"ER","code":"232","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"},{"id":"23a4cd6d-3738-547b-9e3a-82d60efe6864","name":"Egypt","deprecated":true,"iso3":"EGY","iso2":"EG","code":"818","type":"country"},{"id":"bd6f190e-df1a-568c-94cc-8fbb7394522f","name":"Algeria","deprecated":false,"iso3":"DZA","iso2":"DZ","code":"012","type":"country"},{"id":"9c992f6e-72f5-5d6b-8fb9-b23909129b08","name":"Djibouti","deprecated":true,"iso3":"DJI","iso2":"DJ","code":"262","type":"country"},{"id":"63696b95-bded-58f4-8b4e-402397cfcd8a","name":"Cape Verde","deprecated":true,"iso3":"CPV","iso2":"CV","code":"132","type":"country"},{"id":"6d854d95-e91f-53cb-a1f2-1e07d51eb137","name":"Cameroon","deprecated":false,"iso3":"CMR","iso2":"CM","code":"120","type":"country"},{"id":"e8286886-6019-50d6-b0b4-315f7b9f2cef","name":"Ivory Coast","deprecated":false,"iso3":"CIV","iso2":"CI","code":"384","type":"country"},{"id":"97916595-e2d1-5214-87e2-e242bf4ad893","name":"Republic of the Congo","deprecated":false,"iso3":"COG","iso2":"CG","code":"178","type":"country"},{"id":"b1b8664b-d80d-5480-9b9a-a1ac997bd533","name":"Central African Republic","deprecated":false,"iso3":"CAF","iso2":"CF","code":"140","type":"country"},{"id":"8789e5fc-90ef-5dc5-942f-1f0f6bef20e2","name":"Democratic Republic of the Congo","deprecated":false,"iso3":"COD","iso2":"CD","code":"180","type":"country"},{"id":"e8bab11d-42db-5ff0-a68d-81d7fdae7000","name":"Botswana","deprecated":false,"iso3":"BWA","iso2":"BW","code":"072","type":"country"},{"id":"74442316-edea-5c33-9f4e-de1677f848a1","name":"Benin","deprecated":true,"iso3":"BEN","iso2":"BJ","code":"204","type":"country"},{"id":"a666ef14-444e-5605-add7-3a1a1bf028d6","name":"Burundi","deprecated":true,"iso3":"BDI","iso2":"BI","code":"108","type":"country"},{"id":"b4bd346d-94ee-5893-8439-83dcc230d37e","name":"Burkina Faso","deprecated":false,"iso3":"BFA","iso2":"BF","code":"854","type":"country"},{"id":"c6218172-7179-5f37-9302-48a0ac1e3082","name":"Angola","deprecated":true,"iso3":"AGO","iso2":"AO","code":"024","type":"country"}],"countryCodes":["716","894","710","175","800","834","788","768","148","748","678","728","706","686","694","654","729","690","646","638","566","562","516","508","454","480","478","466","450","504","434","426","430","174","404","624","226","324","270","288","266","231","232","732","818","012","262","132","120","384","178","140","180","072","204","108","854","024"]},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"d992dc09-5ab5-5126-a966-51dd89360213","name":"Cyprus","deprecated":false,"iso3":"CYP","iso2":"CY","code":"196","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"},{"id":"465abc15-6361-5901-99d0-014fd0a8fb59","name":"Peru","deprecated":false,"iso3":"PER","iso2":"PE","code":"604","type":"country"},{"id":"8fc88712-b063-55fa-adf9-7d1090098ca4","name":"Bermuda","deprecated":false,"iso3":"BMU","iso2":"BM","code":"060","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"}]}],"destinationNetworks":[{"id":"b483d38e-bce7-5bb7-9769-57ec8151bd4f","name":"Network12","description":"Tikafnaz lujis rirunuf sehi ubfewe kabhili zota funfof zagujnuf mel ejejegto fihjunmu ma funah va.","version":"3132162a-9791-5f26-9146-79add126c19f","type":"networkobject","subType":"NETWORK","value":"23.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"6f55bc7e-79ee-5271-b299-5eb7db9ece0e","name":"Network14","description":"Naduk tuto zatuli pedufu dowkol gapcetod ehukevnem oszi numudol ubibi pufhubfu ripsitfu.","version":"3ab046cd-f4be-55d8-af7a-7a84bc3f7716","type":"networkobject","subType":"HOST","value":"111.31.129.11","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"302b9321-60fd-55ac-8111-7b228ba8a7bc","name":"Geolocation1","description":"Eretalta mov naw dibravwe vimu bek ose wipa ecgule kesep pewaco we taruhra awsen kef poin tu fazu.","version":"b9a8a2e0-c5ff-5705-8d0f-b488b9275e46","type":"geolocation","locations":[{"id":"56ea454f-c3b7-5928-88b1-fc3c7937519a","name":"Africa","deprecated":true,"code":1001,"type":"continent","countries":[{"id":"2dd83d58-9368-513e-8bca-464e074764f6","name":"Zimbabwe","deprecated":true,"iso3":"ZWE","iso2":"ZW","code":"716","type":"country"},{"id":"7cd6bf9c-8b69-57c2-abf6-6eeb0741de15","name":"Zambia","deprecated":true,"iso3":"ZMB","iso2":"ZM","code":"894","type":"country"},{"id":"f2d94483-8127-5b5c-9f56-26897f391615","name":"South Africa","deprecated":false,"iso3":"ZAF","iso2":"ZA","code":"710","type":"country"},{"id":"67312148-f472-5f74-af7e-da0dfe6c5483","name":"Mayotte","deprecated":true,"iso3":"MYT","iso2":"YT","code":"175","type":"country"},{"id":"16d66ae1-8a56-5b81-8a83-6f7123be2e2c","name":"Uganda","deprecated":false,"iso3":"UGA","iso2":"UG","code":"800","type":"country"},{"id":"b1825e78-1df2-5592-a76e-7442de702238","name":"Tanzania","deprecated":false,"iso3":"TZA","iso2":"TZ","code":"834","type":"country"},{"id":"34105ec6-4fd5-5617-8a55-a033b433501b","name":"Tunisia","deprecated":false,"iso3":"TUN","iso2":"TN","code":"788","type":"country"},{"id":"00827e94-7231-522b-a92c-c43381c394b0","name":"Togo","deprecated":true,"iso3":"TGO","iso2":"TG","code":"768","type":"country"},{"id":"5b1f4a78-73fb-5d81-b087-a43e6a56210e","name":"Chad","deprecated":true,"iso3":"TCD","iso2":"TD","code":"148","type":"country"},{"id":"4390d558-ea24-5aab-92ed-7ea167512925","name":"Swaziland","deprecated":false,"iso3":"SWZ","iso2":"SZ","code":"748","type":"country"},{"id":"22e9a10d-c048-5bce-92b3-d35ba32a2380","name":"São Tomé and PrÃncipe","deprecated":false,"iso3":"STP","iso2":"ST","code":"678","type":"country"},{"id":"175e350b-3e7b-5988-92a5-b8592f89a5d0","name":"South Sudan","deprecated":true,"iso3":"SSD","iso2":"SS","code":"728","type":"country"},{"id":"408c17e6-3750-56ba-b74d-14cece756b69","name":"Somalia","deprecated":false,"iso3":"SOM","iso2":"SO","code":"706","type":"country"},{"id":"bed65f83-79ce-514e-a9c2-24bae1906576","name":"Senegal","deprecated":true,"iso3":"SEN","iso2":"SN","code":"686","type":"country"},{"id":"81415c05-a391-5182-8902-0f48ee21358a","name":"Sierra Leone","deprecated":true,"iso3":"SLE","iso2":"SL","code":"694","type":"country"},{"id":"50c46fa0-0451-5e15-9bbc-846a527de114","name":"Saint Helena","deprecated":true,"iso3":"SHN","iso2":"SH","code":"654","type":"country"},{"id":"c2a050bc-b370-5bcd-945c-cd0d88d814ee","name":"Sudan","deprecated":false,"iso3":"SDN","iso2":"SD","code":"729","type":"country"},{"id":"2792902e-5e01-5294-bd39-4a9b86443f69","name":"Seychelles","deprecated":false,"iso3":"SYC","iso2":"SC","code":"690","type":"country"},{"id":"e6e6e19f-26b3-53cc-ae5c-ad6af73ffa23","name":"Rwanda","deprecated":false,"iso3":"RWA","iso2":"RW","code":"646","type":"country"},{"id":"1657adab-03a4-556a-b779-d62bf356497f","name":"Réunion","deprecated":true,"iso3":"REU","iso2":"RE","code":"638","type":"country"},{"id":"db11cb4c-3534-5c9a-bd15-7b41c5b161d6","name":"Nigeria","deprecated":false,"iso3":"NGA","iso2":"NG","code":"566","type":"country"},{"id":"271aded5-deef-50b9-9e02-ec55543da25b","name":"Niger","deprecated":true,"iso3":"NER","iso2":"NE","code":"562","type":"country"},{"id":"a8f12931-d0a3-5ead-b8f7-26c9d8e29684","name":"Namibia","deprecated":false,"iso3":"NAM","iso2":"NA","code":"516","type":"country"},{"id":"f85a38bd-9851-5540-9a47-2bcda221c02f","name":"Mozambique","deprecated":false,"iso3":"MOZ","iso2":"MZ","code":"508","type":"country"},{"id":"26316b70-a4e5-5ee7-9176-d8f88977ac81","name":"Malawi","deprecated":false,"iso3":"MWI","iso2":"MW","code":"454","type":"country"},{"id":"8ac5e628-88fe-5a8f-a8e8-5e9823bed8c9","name":"Mauritius","deprecated":true,"iso3":"MUS","iso2":"MU","code":"480","type":"country"},{"id":"6286246a-cb95-57c8-bf4d-85524e069dc9","name":"Mauritania","deprecated":false,"iso3":"MRT","iso2":"MR","code":"478","type":"country"},{"id":"9eaf4ef5-fcd1-55b8-b344-7b60f9acbb2a","name":"Mali","deprecated":true,"iso3":"MLI","iso2":"ML","code":"466","type":"country"},{"id":"3158c9ea-2e08-5057-923c-a252e9bbceb5","name":"Madagascar","deprecated":true,"iso3":"MDG","iso2":"MG","code":"450","type":"country"},{"id":"b110114a-4903-54d2-8925-cfa66175fc81","name":"Morocco","deprecated":true,"iso3":"MAR","iso2":"MA","code":"504","type":"country"},{"id":"ac567919-9e6f-5712-8ef8-817d2875ae89","name":"Libya","deprecated":false,"iso3":"LBY","iso2":"LY","code":"434","type":"country"},{"id":"b82c039e-20c2-50f0-9176-307e154d19cd","name":"Lesotho","deprecated":true,"iso3":"LSO","iso2":"LS","code":"426","type":"country"},{"id":"936e5855-cede-5036-b530-4a8dc3ded9f1","name":"Liberia","deprecated":true,"iso3":"LBR","iso2":"LR","code":"430","type":"country"},{"id":"781554f5-83af-5829-a0b1-f679ccadcbc8","name":"Comoros","deprecated":true,"iso3":"COM","iso2":"KM","code":"174","type":"country"},{"id":"ef9608a5-3398-5610-9770-361e8f4d5018","name":"Kenya","deprecated":false,"iso3":"KEN","iso2":"KE","code":"404","type":"country"},{"id":"7ff14832-3c58-5e8d-b6fa-7d211d0eddea","name":"Guinea-Bissau","deprecated":true,"iso3":"GNB","iso2":"GW","code":"624","type":"country"},{"id":"24ef0507-02b5-58d8-a403-8087853d0d0e","name":"Equatorial Guinea","deprecated":false,"iso3":"GNQ","iso2":"GQ","code":"226","type":"country"},{"id":"8b2e1fe0-df59-514f-8cad-46e618371f10","name":"Guinea","deprecated":false,"iso3":"GIN","iso2":"GN","code":"324","type":"country"},{"id":"2311d16e-f8c8-5db8-9446-ddc015dee026","name":"Gambia","deprecated":true,"iso3":"GMB","iso2":"GM","code":"270","type":"country"},{"id":"9cbd51af-d825-56f1-b3c3-1412697fe6d8","name":"Ghana","deprecated":true,"iso3":"GHA","iso2":"GH","code":"288","type":"country"},{"id":"1a6265f3-08ce-57c4-9d8d-8807bc7c3f96","name":"Gabon","deprecated":true,"iso3":"GAB","iso2":"GA","code":"266","type":"country"},{"id":"7466e390-4ac7-5c6e-8ae7-cffbf4d26761","name":"Ethiopia","deprecated":false,"iso3":"ETH","iso2":"ET","code":"231","type":"country"},{"id":"1b6630d5-2650-5baf-b9a5-fa59fbbd36be","name":"Eritrea","deprecated":false,"iso3":"ERI","iso2":"ER","code":"232","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"},{"id":"23a4cd6d-3738-547b-9e3a-82d60efe6864","name":"Egypt","deprecated":true,"iso3":"EGY","iso2":"EG","code":"818","type":"country"},{"id":"bd6f190e-df1a-568c-94cc-8fbb7394522f","name":"Algeria","deprecated":false,"iso3":"DZA","iso2":"DZ","code":"012","type":"country"},{"id":"9c992f6e-72f5-5d6b-8fb9-b23909129b08","name":"Djibouti","deprecated":true,"iso3":"DJI","iso2":"DJ","code":"262","type":"country"},{"id":"63696b95-bded-58f4-8b4e-402397cfcd8a","name":"Cape Verde","deprecated":true,"iso3":"CPV","iso2":"CV","code":"132","type":"country"},{"id":"6d854d95-e91f-53cb-a1f2-1e07d51eb137","name":"Cameroon","deprecated":false,"iso3":"CMR","iso2":"CM","code":"120","type":"country"},{"id":"e8286886-6019-50d6-b0b4-315f7b9f2cef","name":"Ivory Coast","deprecated":false,"iso3":"CIV","iso2":"CI","code":"384","type":"country"},{"id":"97916595-e2d1-5214-87e2-e242bf4ad893","name":"Republic of the Congo","deprecated":false,"iso3":"COG","iso2":"CG","code":"178","type":"country"},{"id":"b1b8664b-d80d-5480-9b9a-a1ac997bd533","name":"Central African Republic","deprecated":false,"iso3":"CAF","iso2":"CF","code":"140","type":"country"},{"id":"8789e5fc-90ef-5dc5-942f-1f0f6bef20e2","name":"Democratic Republic of the Congo","deprecated":false,"iso3":"COD","iso2":"CD","code":"180","type":"country"},{"id":"e8bab11d-42db-5ff0-a68d-81d7fdae7000","name":"Botswana","deprecated":false,"iso3":"BWA","iso2":"BW","code":"072","type":"country"},{"id":"74442316-edea-5c33-9f4e-de1677f848a1","name":"Benin","deprecated":true,"iso3":"BEN","iso2":"BJ","code":"204","type":"country"},{"id":"a666ef14-444e-5605-add7-3a1a1bf028d6","name":"Burundi","deprecated":true,"iso3":"BDI","iso2":"BI","code":"108","type":"country"},{"id":"b4bd346d-94ee-5893-8439-83dcc230d37e","name":"Burkina Faso","deprecated":false,"iso3":"BFA","iso2":"BF","code":"854","type":"country"},{"id":"c6218172-7179-5f37-9302-48a0ac1e3082","name":"Angola","deprecated":true,"iso3":"AGO","iso2":"AO","code":"024","type":"country"}],"countryCodes":["716","894","710","175","800","834","788","768","148","748","678","728","706","686","694","654","729","690","646","638","566","562","516","508","454","480","478","466","450","504","434","426","430","174","404","624","226","324","270","288","266","231","232","732","818","012","262","132","120","384","178","140","180","072","204","108","854","024"]},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"d992dc09-5ab5-5126-a966-51dd89360213","name":"Cyprus","deprecated":false,"iso3":"CYP","iso2":"CY","code":"196","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"},{"id":"465abc15-6361-5901-99d0-014fd0a8fb59","name":"Peru","deprecated":false,"iso3":"PER","iso2":"PE","code":"604","type":"country"},{"id":"8fc88712-b063-55fa-adf9-7d1090098ca4","name":"Bermuda","deprecated":false,"iso3":"BMU","iso2":"BM","code":"060","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"}]}],"sourcePorts":[{"id":"b19e16f9-5846-596a-9757-161e7154e68c","name":"tcp_port_1","description":"Ruwus webwepfa fo copoko aligimaj riz zeti bivsu jah ve virip kesnenwer fi wede magbuf ojku sadruh ji.","version":"a90e8fa8-216a-59a4-bce1-da2f92acd1ad","type":"tcpportobject","port":8721,"isSystemDefined":true},{"id":"5e4d4b4d-706c-5325-b034-896d42bf9087","name":"udp_port_1","description":"Rupkoedo zuv egodid ca buapesug tu mawaduh etaeha pigfa keh it bozute wovi zijuci poscuren ifohhe.","version":"db631abc-32a3-5ca5-8ae5-a3b6f3c8371a","type":"udpportobject","port":8537,"isSystemDefined":true}],"destinationPorts":[{"id":"2a40730e-7878-5969-ba53-1d9278cde125","name":"icmpv4port1","description":"Uva ceti behga hetivasu ajbebu rakepe ame ifa aceuriso kejic fucaoti gigvivvo gishelpob jurevmu ov maclefe.","version":"e62c0f51-027e-5a7f-b725-a96162bb7138","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8508,"isSystemDefined":false},{"id":"1a4f8032-f665-5045-b0d8-a48b339750d1","name":"tcp_port_2","description":"Ku soguzsi ragibi nupavidag faji kovor ikikov efa ha cozuju inietu daf hif iso.","version":"b6ff8844-fd46-5e03-9ca4-00b7bc8bd936","type":"tcpportobject","port":8189,"isSystemDefined":false}],"users":[{"id":"96103545-4b36-5860-939d-3f46c3bee3c9","name":"User 10","realmName":"jumulcopteb","type":"trafficuser","realmId":2,"version":"jidaferco"},{"id":"fc7b882d-b7f5-53d4-a898-05e7c7e99da2","name":"User Group 3","realmName":"sumajiwne","type":"trafficusergroup","realmId":2,"version":"tucidwefga"},{"id":"ce75440f-a481-5a0b-b630-ff9c24a2a3ea","name":"User 15","realmName":"difubuve","type":"trafficuser","realmId":2,"version":"beikbihfij"}],"embeddedAppFilter":{"conditions":[{"filter":"uckupehot","tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"},{"type":"typecondition","applicationType":"CLIENT"}],"productivities":[{"type":"productivitycondition","productivity":"LOW"},{"type":"productivitycondition","productivity":"VERY_HIGH"}],"type":"applicationfiltercondition"},{"filter":"keludmubluf","tags":[{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"HIGH"}],"applicationTypes":[{"type":"typecondition","applicationType":"CLIENT"},{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"LOW"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"461cac69-03ff-5113-a215-4cdfaf8bd3f1","version":"c5c46d5e-163b-53e4-a12e-4ec6708cb4a7","name":"ApplicationFilter13","description":"Hi hug zad nolrepmum bil nuwbacora fa guhu ale ogve foksaruw cipzis zomdozun de is da uzifoma.","applications":[{"id":"368e2c4f-cce1-574d-b5ee-ab9d539cf248","version":"3ecf8402-8607-5fdc-a148-f5abddf84f0a","description":"Apeja libsul uweb osjoti ge uzu fal gob woletkew be tu hah ha wuvekohuz gacaw.","deprecated":true,"appId":4,"productivity":1,"risk":0,"name":"Application14","tagIds":["9b16dd72-476a-5ac0-8aeb-fbf6e1f45438"],"tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["5f0662ef-3382-5357-bf35-b9b7361aae44"],"categories":[{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["WEBAPP","SERVER"],"metadata":{"referenced":false},"type":"application"}],"conditions":[{"filter":"giasnovpe","tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"794d6605-f5d9-5f26-b11d-507eac471889","version":"20176f07-7d98-5dd7-8a17-de688ee66220","appId":1,"name":"ApplicationCategory3","description":"Woc ved ecu hin potalbib la uweerabof mato dewahmo avutji wose pujda tunoduz ucu ho zopusno lo mu.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"VERY_LOW"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"},{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":false},"type":"applicationfilter"}],"applications":[{"id":"17b348f3-870c-5aa4-bcae-3bfe0f0d061d","version":"7b26e782-fe4b-5259-aa5f-744f5c3f1b22","description":"Tem ac li gagnefro folema no mo tafdis cew vudo wafop ru milis ubuedurur sufbot.","deprecated":true,"appId":2,"productivity":0,"risk":2,"name":"Application8","tagIds":["e9812b72-2a36-5146-bce0-b09f876df88d"],"tags":[{"id":"e9812b72-2a36-5146-bce0-b09f876df88d","version":"080dca18-c677-5dd1-8f2f-40555beb4fe4","appId":10,"name":"ApplicationTag10","description":"Viswilo ariuzaf pih wa mul vugavrip rijfon aba kac giicse wolifa cowudzuv vev iztafit.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["328094ea-7b95-58e5-a2de-09018514e679"],"categories":[{"id":"328094ea-7b95-58e5-a2de-09018514e679","version":"a9f6d6f5-e2ce-5a1b-8c7f-1a5ba3c375b4","appId":4,"name":"ApplicationCategory1","description":"Pilooru amavudek uhzidkah sieha duhni ikfo celrid az ocolu loplun buj nodlial do ahme henacava so ecevega wemtumacu.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["CLIENT","SERVER"],"metadata":{"referenced":true},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"4644bbc1-d476-565e-83ae-5a744000483c","version":"jaebrizdos","name":"UrlGroup8","description":"Mudacoc fapeus bimafi vectibep vib at bomecras moano ut wo vimkoc il lekeje os ekugiubi newtu.","objects":[{"id":"26cf0d0b-7575-594a-9c3b-9e17d5e24fbf","version":"sipugcocti","name":"Url6","description":"Etna gum cacu tin meehe hu cahfik kus supdeba irlohje hig rizhepzov vi togaofo los dujna her sipu.","url":"http://bejakuru.co.uk/ebkampaw","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlCategory":{"id":"e1088b47-43c6-509a-a722-763318471791","version":"53a76ab0-006b-5dd4-abc4-c0f9a0d58f50","name":"UrlCategory-13","deprecated":false,"urlCategoryId":13,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"filePolicy":{"id":"9c84889f-8c5c-5643-a489-d01bb07639a5","type":"filepolicy","policyType":"BLOCK_OFFICE_DOCUMENTS_PDF_UPLOAD_BLOCK_MALWARE_OTHERS","name":"File_Policy_3","description":"Mi rul etusisti iphogu acrevdid cas bijcaz nul ceaf napi kegpo su dozpov zikpul lohi gurukdi ke.","version":"d5e7c6d4-1f13-5cd2-9442-bdccd7e4b804"},"logFiles":false,"type":"accessrule"},{"id":"c809d27a-4c7b-5b4b-915a-5495177aa3ee","version":"87bc5fb3-fb77-5c7f-a4cd-740a52e3f670","ruleId":21,"name":"Access_Rule_21","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_NONE","sourceZones":[{"id":"043ca75c-25c8-5d2f-9912-f174e3756077","name":"SecurityZone8Name","description":"Fo zihroc befjijwe vafel golwekjow hukohdi bo gitjap titsuabe cav fif mufdec unibit mubu idabehob ruthesusa.","version":"9f2207f2-63f0-5423-aa5c-6b7dc7d41cf3","interfaces":[{"mtu":2652,"enabled":true,"description":"Ta ikoure oznog tu hodul bizzo jimiite men cucif bewtujjof amurulev cuh igu fo siw dupziswul upahig roivipi.","name":"subinterface1name","id":"bdb62102-971e-5472-ab3b-22a7d408dc10","hardwareName":"SubInterface0/1.2","macAddress":"A57C.05DF.7FC0","monitorInterface":false,"standbyMacAddress":"4CE2.828C.AAB1","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"86a0:974f:3bf1:cee2:71c8:e295:2c3e:8d76/32","ipAddress":"9cb8:4589:0220:bd63:4d62:42ac:bd26:e1ac/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"7f67:fa11:adca:bd10:8583:757e:7ebb:be87","ipAddress":"4298:ffb2:30f7:84b6:5106:69aa:343c:8362"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"43.30.66.103","standbyIpAddress":"138.99.49.192"}},"version":"e04406e6-ff09-57ac-9b38-fdd8b19cf6fb","managementInterface":true,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}},{"id":"d2cf6df0-e095-59f1-9afe-4e1f95b290e7","name":"SecurityZone6Name","description":"Kivmeat sepfeheh jekacaloh awe wap vajan utiweb daczo ji ji pew wioha bawmivim ri kaj gibvevsa.","version":"5751e8ac-10c9-5b44-a9fa-1ed8e07d2d40","interfaces":[{"mtu":5818,"enabled":false,"description":"Jigiz malko navsup bojga widbihi vatel vahuwuta ugi bopuru duzwar zopi juinoito sibkonac fozgojmi toopu nurhiru ce joeho.","name":"inside","id":"bddde0e1-1b1f-5f42-b9b7-7c72d9099ef4","hardwareName":"GigabitEthernet1/1","macAddress":"ECFB.7E12.09E1","monitorInterface":true,"standbyMacAddress":"A09D.B513.9683","version":"69f9f38e-0479-58d1-961c-e4040d439200","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"PASSIVE","type":"physicalinterface"},{"mtu":2652,"enabled":true,"description":"Pipakaz ramkudu ulido ce boh ugmepku izareszeh katakuz vosinde takwa piprazipo fostoftug egjolut.","name":"subinterface3name","id":"4258612a-c6ac-5407-8edc-04b207b2b473","hardwareName":"SubInterface0/3.4","macAddress":"4A8E.2AFE.5DE9","monitorInterface":true,"standbyMacAddress":"F917.A989.864E","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"5b49:5a29:3cd4:5c83:7b30:0115:7927:eaf3/32","ipAddress":"a3eb:3b72:2cfa:9901:b7c7:1581:fa72:4b49/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"42e6:34b8:f5eb:802f:626b:503c:781e:aacd","ipAddress":"dcc0:3abc:3933:8a47:25c6:d9a7:2e80:06dc"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"137.234.118.13","standbyIpAddress":"67.162.53.251"}},"version":"2a53f3c3-fc6d-557c-bdbb-e97bc156553c","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"destinationZones":[{"id":"f13918c2-287c-5026-b2d4-ae18cf69fd8c","name":"SecurityZone2Name","description":"Elaba havor do tifgovew di tobeep osiho gamalun ilokavo hosoc bavmep lo katzakcu we lekucazif jusifi baluhufa ivinu.","version":"f1cb8b72-77e1-524f-9ee0-07e3f6ffb563","interfaces":[{"mtu":5818,"enabled":true,"description":"Eh fiec wepauju fakigi fedep osgitewo wodrah ponkumido fis nozpuri ju geelo doh vipuopu vobuhalu piova bokadar.","id":"09d6217f-2741-5b6a-bd5c-91ca02f54e09","hardwareName":"GigabitEthernet1/6","macAddress":"3539.C649.1EF4","monitorInterface":false,"standbyMacAddress":"AAB5.9320.943C","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"e765:caaf:c971:52be:e7af:9357:6eab:2e59/32","ipAddress":"d168:a40a:b8df:9bc5:d38c:64df:a4fd:4110/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"76da:7d95:05ed:3ac9:4014:58d2:1e81:b4b2","ipAddress":"fdcf:ebe2:84c9:5892:94f3:b209:1cd6:d430"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"46.176.226.56","standbyIpAddress":"252.197.49.100"}},"version":"e18f92be-6c58-55a7-9dea-ccdefd79a44f","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]},{"mtu":5818,"enabled":false,"description":"Wi repiro sisig se wuglo zuzrog wivsel iboabamu wug sew figinfo pada koorcu wun akawobit cuholso wizpeos belidgew.","id":"c95c223c-b583-5d80-88a6-b1ac1b528e5e","hardwareName":"GigabitEthernet1/8","macAddress":"AD75.0711.BDF3","monitorInterface":false,"standbyMacAddress":"C7BE.0512.EDE1","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"4d6e:8d99:e5e9:8e08:03ed:ac78:12d9:1abc/32","ipAddress":"5b5a:9ba8:4d53:74f4:b2b9:b36b:2930:3030/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"919d:d8d6:cac4:18ed:5582:4d98:5afa:7f30","ipAddress":"9bfa:b940:f6b8:cd45:9eb6:d07e:09a6:b747"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"206.102.168.38","standbyIpAddress":"47.171.86.122"}},"version":"88bd96c5-891e-5b48-ab25-5091e3dfe377","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"sourceNetworks":[{"id":"25837b53-40d7-599f-9a1e-0a5391f2662e","name":"Network1","description":"Ser ahpi penul nuszil ojsuvo zavlatha junez afuhi soewuteh ha larhoose lijuto ruhi za murmurgu eznehfa nejag piv.","version":"0761c298-1c3c-5537-971c-17934322192b","type":"networkobject","subType":"HOST","value":"f92d:3cda:6fb3:7e4b:db95:8984:e616:928e","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"8dabc86d-1558-5a56-8c32-bc388b6a93f3","name":"Network13","description":"Dojba epfaw rew reltuzaw vaifjen wilida kepsu gadcukam rewog ojudu to siokwig jakel.","version":"81a1cfa9-9bdf-5ac8-98e5-299f203d4289","type":"networkobject","subType":"HOST","value":"b4f1:f88e:09b6:827b:d85f:dbf9:751b:dc45","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"302b9321-60fd-55ac-8111-7b228ba8a7bc","name":"Geolocation1","description":"Eretalta mov naw dibravwe vimu bek ose wipa ecgule kesep pewaco we taruhra awsen kef poin tu fazu.","version":"b9a8a2e0-c5ff-5705-8d0f-b488b9275e46","type":"geolocation","locations":[{"id":"56ea454f-c3b7-5928-88b1-fc3c7937519a","name":"Africa","deprecated":true,"code":1001,"type":"continent","countries":[{"id":"2dd83d58-9368-513e-8bca-464e074764f6","name":"Zimbabwe","deprecated":true,"iso3":"ZWE","iso2":"ZW","code":"716","type":"country"},{"id":"7cd6bf9c-8b69-57c2-abf6-6eeb0741de15","name":"Zambia","deprecated":true,"iso3":"ZMB","iso2":"ZM","code":"894","type":"country"},{"id":"f2d94483-8127-5b5c-9f56-26897f391615","name":"South Africa","deprecated":false,"iso3":"ZAF","iso2":"ZA","code":"710","type":"country"},{"id":"67312148-f472-5f74-af7e-da0dfe6c5483","name":"Mayotte","deprecated":true,"iso3":"MYT","iso2":"YT","code":"175","type":"country"},{"id":"16d66ae1-8a56-5b81-8a83-6f7123be2e2c","name":"Uganda","deprecated":false,"iso3":"UGA","iso2":"UG","code":"800","type":"country"},{"id":"b1825e78-1df2-5592-a76e-7442de702238","name":"Tanzania","deprecated":false,"iso3":"TZA","iso2":"TZ","code":"834","type":"country"},{"id":"34105ec6-4fd5-5617-8a55-a033b433501b","name":"Tunisia","deprecated":false,"iso3":"TUN","iso2":"TN","code":"788","type":"country"},{"id":"00827e94-7231-522b-a92c-c43381c394b0","name":"Togo","deprecated":true,"iso3":"TGO","iso2":"TG","code":"768","type":"country"},{"id":"5b1f4a78-73fb-5d81-b087-a43e6a56210e","name":"Chad","deprecated":true,"iso3":"TCD","iso2":"TD","code":"148","type":"country"},{"id":"4390d558-ea24-5aab-92ed-7ea167512925","name":"Swaziland","deprecated":false,"iso3":"SWZ","iso2":"SZ","code":"748","type":"country"},{"id":"22e9a10d-c048-5bce-92b3-d35ba32a2380","name":"São Tomé and PrÃncipe","deprecated":false,"iso3":"STP","iso2":"ST","code":"678","type":"country"},{"id":"175e350b-3e7b-5988-92a5-b8592f89a5d0","name":"South Sudan","deprecated":true,"iso3":"SSD","iso2":"SS","code":"728","type":"country"},{"id":"408c17e6-3750-56ba-b74d-14cece756b69","name":"Somalia","deprecated":false,"iso3":"SOM","iso2":"SO","code":"706","type":"country"},{"id":"bed65f83-79ce-514e-a9c2-24bae1906576","name":"Senegal","deprecated":true,"iso3":"SEN","iso2":"SN","code":"686","type":"country"},{"id":"81415c05-a391-5182-8902-0f48ee21358a","name":"Sierra Leone","deprecated":true,"iso3":"SLE","iso2":"SL","code":"694","type":"country"},{"id":"50c46fa0-0451-5e15-9bbc-846a527de114","name":"Saint Helena","deprecated":true,"iso3":"SHN","iso2":"SH","code":"654","type":"country"},{"id":"c2a050bc-b370-5bcd-945c-cd0d88d814ee","name":"Sudan","deprecated":false,"iso3":"SDN","iso2":"SD","code":"729","type":"country"},{"id":"2792902e-5e01-5294-bd39-4a9b86443f69","name":"Seychelles","deprecated":false,"iso3":"SYC","iso2":"SC","code":"690","type":"country"},{"id":"e6e6e19f-26b3-53cc-ae5c-ad6af73ffa23","name":"Rwanda","deprecated":false,"iso3":"RWA","iso2":"RW","code":"646","type":"country"},{"id":"1657adab-03a4-556a-b779-d62bf356497f","name":"Réunion","deprecated":true,"iso3":"REU","iso2":"RE","code":"638","type":"country"},{"id":"db11cb4c-3534-5c9a-bd15-7b41c5b161d6","name":"Nigeria","deprecated":false,"iso3":"NGA","iso2":"NG","code":"566","type":"country"},{"id":"271aded5-deef-50b9-9e02-ec55543da25b","name":"Niger","deprecated":true,"iso3":"NER","iso2":"NE","code":"562","type":"country"},{"id":"a8f12931-d0a3-5ead-b8f7-26c9d8e29684","name":"Namibia","deprecated":false,"iso3":"NAM","iso2":"NA","code":"516","type":"country"},{"id":"f85a38bd-9851-5540-9a47-2bcda221c02f","name":"Mozambique","deprecated":false,"iso3":"MOZ","iso2":"MZ","code":"508","type":"country"},{"id":"26316b70-a4e5-5ee7-9176-d8f88977ac81","name":"Malawi","deprecated":false,"iso3":"MWI","iso2":"MW","code":"454","type":"country"},{"id":"8ac5e628-88fe-5a8f-a8e8-5e9823bed8c9","name":"Mauritius","deprecated":true,"iso3":"MUS","iso2":"MU","code":"480","type":"country"},{"id":"6286246a-cb95-57c8-bf4d-85524e069dc9","name":"Mauritania","deprecated":false,"iso3":"MRT","iso2":"MR","code":"478","type":"country"},{"id":"9eaf4ef5-fcd1-55b8-b344-7b60f9acbb2a","name":"Mali","deprecated":true,"iso3":"MLI","iso2":"ML","code":"466","type":"country"},{"id":"3158c9ea-2e08-5057-923c-a252e9bbceb5","name":"Madagascar","deprecated":true,"iso3":"MDG","iso2":"MG","code":"450","type":"country"},{"id":"b110114a-4903-54d2-8925-cfa66175fc81","name":"Morocco","deprecated":true,"iso3":"MAR","iso2":"MA","code":"504","type":"country"},{"id":"ac567919-9e6f-5712-8ef8-817d2875ae89","name":"Libya","deprecated":false,"iso3":"LBY","iso2":"LY","code":"434","type":"country"},{"id":"b82c039e-20c2-50f0-9176-307e154d19cd","name":"Lesotho","deprecated":true,"iso3":"LSO","iso2":"LS","code":"426","type":"country"},{"id":"936e5855-cede-5036-b530-4a8dc3ded9f1","name":"Liberia","deprecated":true,"iso3":"LBR","iso2":"LR","code":"430","type":"country"},{"id":"781554f5-83af-5829-a0b1-f679ccadcbc8","name":"Comoros","deprecated":true,"iso3":"COM","iso2":"KM","code":"174","type":"country"},{"id":"ef9608a5-3398-5610-9770-361e8f4d5018","name":"Kenya","deprecated":false,"iso3":"KEN","iso2":"KE","code":"404","type":"country"},{"id":"7ff14832-3c58-5e8d-b6fa-7d211d0eddea","name":"Guinea-Bissau","deprecated":true,"iso3":"GNB","iso2":"GW","code":"624","type":"country"},{"id":"24ef0507-02b5-58d8-a403-8087853d0d0e","name":"Equatorial Guinea","deprecated":false,"iso3":"GNQ","iso2":"GQ","code":"226","type":"country"},{"id":"8b2e1fe0-df59-514f-8cad-46e618371f10","name":"Guinea","deprecated":false,"iso3":"GIN","iso2":"GN","code":"324","type":"country"},{"id":"2311d16e-f8c8-5db8-9446-ddc015dee026","name":"Gambia","deprecated":true,"iso3":"GMB","iso2":"GM","code":"270","type":"country"},{"id":"9cbd51af-d825-56f1-b3c3-1412697fe6d8","name":"Ghana","deprecated":true,"iso3":"GHA","iso2":"GH","code":"288","type":"country"},{"id":"1a6265f3-08ce-57c4-9d8d-8807bc7c3f96","name":"Gabon","deprecated":true,"iso3":"GAB","iso2":"GA","code":"266","type":"country"},{"id":"7466e390-4ac7-5c6e-8ae7-cffbf4d26761","name":"Ethiopia","deprecated":false,"iso3":"ETH","iso2":"ET","code":"231","type":"country"},{"id":"1b6630d5-2650-5baf-b9a5-fa59fbbd36be","name":"Eritrea","deprecated":false,"iso3":"ERI","iso2":"ER","code":"232","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"},{"id":"23a4cd6d-3738-547b-9e3a-82d60efe6864","name":"Egypt","deprecated":true,"iso3":"EGY","iso2":"EG","code":"818","type":"country"},{"id":"bd6f190e-df1a-568c-94cc-8fbb7394522f","name":"Algeria","deprecated":false,"iso3":"DZA","iso2":"DZ","code":"012","type":"country"},{"id":"9c992f6e-72f5-5d6b-8fb9-b23909129b08","name":"Djibouti","deprecated":true,"iso3":"DJI","iso2":"DJ","code":"262","type":"country"},{"id":"63696b95-bded-58f4-8b4e-402397cfcd8a","name":"Cape Verde","deprecated":true,"iso3":"CPV","iso2":"CV","code":"132","type":"country"},{"id":"6d854d95-e91f-53cb-a1f2-1e07d51eb137","name":"Cameroon","deprecated":false,"iso3":"CMR","iso2":"CM","code":"120","type":"country"},{"id":"e8286886-6019-50d6-b0b4-315f7b9f2cef","name":"Ivory Coast","deprecated":false,"iso3":"CIV","iso2":"CI","code":"384","type":"country"},{"id":"97916595-e2d1-5214-87e2-e242bf4ad893","name":"Republic of the Congo","deprecated":false,"iso3":"COG","iso2":"CG","code":"178","type":"country"},{"id":"b1b8664b-d80d-5480-9b9a-a1ac997bd533","name":"Central African Republic","deprecated":false,"iso3":"CAF","iso2":"CF","code":"140","type":"country"},{"id":"8789e5fc-90ef-5dc5-942f-1f0f6bef20e2","name":"Democratic Republic of the Congo","deprecated":false,"iso3":"COD","iso2":"CD","code":"180","type":"country"},{"id":"e8bab11d-42db-5ff0-a68d-81d7fdae7000","name":"Botswana","deprecated":false,"iso3":"BWA","iso2":"BW","code":"072","type":"country"},{"id":"74442316-edea-5c33-9f4e-de1677f848a1","name":"Benin","deprecated":true,"iso3":"BEN","iso2":"BJ","code":"204","type":"country"},{"id":"a666ef14-444e-5605-add7-3a1a1bf028d6","name":"Burundi","deprecated":true,"iso3":"BDI","iso2":"BI","code":"108","type":"country"},{"id":"b4bd346d-94ee-5893-8439-83dcc230d37e","name":"Burkina Faso","deprecated":false,"iso3":"BFA","iso2":"BF","code":"854","type":"country"},{"id":"c6218172-7179-5f37-9302-48a0ac1e3082","name":"Angola","deprecated":true,"iso3":"AGO","iso2":"AO","code":"024","type":"country"}],"countryCodes":["716","894","710","175","800","834","788","768","148","748","678","728","706","686","694","654","729","690","646","638","566","562","516","508","454","480","478","466","450","504","434","426","430","174","404","624","226","324","270","288","266","231","232","732","818","012","262","132","120","384","178","140","180","072","204","108","854","024"]},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"d992dc09-5ab5-5126-a966-51dd89360213","name":"Cyprus","deprecated":false,"iso3":"CYP","iso2":"CY","code":"196","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"},{"id":"465abc15-6361-5901-99d0-014fd0a8fb59","name":"Peru","deprecated":false,"iso3":"PER","iso2":"PE","code":"604","type":"country"},{"id":"8fc88712-b063-55fa-adf9-7d1090098ca4","name":"Bermuda","deprecated":false,"iso3":"BMU","iso2":"BM","code":"060","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"}]}],"destinationNetworks":[{"id":"25837b53-40d7-599f-9a1e-0a5391f2662e","name":"Network1","description":"Ser ahpi penul nuszil ojsuvo zavlatha junez afuhi soewuteh ha larhoose lijuto ruhi za murmurgu eznehfa nejag piv.","version":"0761c298-1c3c-5537-971c-17934322192b","type":"networkobject","subType":"HOST","value":"f92d:3cda:6fb3:7e4b:db95:8984:e616:928e","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"8dabc86d-1558-5a56-8c32-bc388b6a93f3","name":"Network13","description":"Dojba epfaw rew reltuzaw vaifjen wilida kepsu gadcukam rewog ojudu to siokwig jakel.","version":"81a1cfa9-9bdf-5ac8-98e5-299f203d4289","type":"networkobject","subType":"HOST","value":"b4f1:f88e:09b6:827b:d85f:dbf9:751b:dc45","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"302b9321-60fd-55ac-8111-7b228ba8a7bc","name":"Geolocation1","description":"Eretalta mov naw dibravwe vimu bek ose wipa ecgule kesep pewaco we taruhra awsen kef poin tu fazu.","version":"b9a8a2e0-c5ff-5705-8d0f-b488b9275e46","type":"geolocation","locations":[{"id":"56ea454f-c3b7-5928-88b1-fc3c7937519a","name":"Africa","deprecated":true,"code":1001,"type":"continent","countries":[{"id":"2dd83d58-9368-513e-8bca-464e074764f6","name":"Zimbabwe","deprecated":true,"iso3":"ZWE","iso2":"ZW","code":"716","type":"country"},{"id":"7cd6bf9c-8b69-57c2-abf6-6eeb0741de15","name":"Zambia","deprecated":true,"iso3":"ZMB","iso2":"ZM","code":"894","type":"country"},{"id":"f2d94483-8127-5b5c-9f56-26897f391615","name":"South Africa","deprecated":false,"iso3":"ZAF","iso2":"ZA","code":"710","type":"country"},{"id":"67312148-f472-5f74-af7e-da0dfe6c5483","name":"Mayotte","deprecated":true,"iso3":"MYT","iso2":"YT","code":"175","type":"country"},{"id":"16d66ae1-8a56-5b81-8a83-6f7123be2e2c","name":"Uganda","deprecated":false,"iso3":"UGA","iso2":"UG","code":"800","type":"country"},{"id":"b1825e78-1df2-5592-a76e-7442de702238","name":"Tanzania","deprecated":false,"iso3":"TZA","iso2":"TZ","code":"834","type":"country"},{"id":"34105ec6-4fd5-5617-8a55-a033b433501b","name":"Tunisia","deprecated":false,"iso3":"TUN","iso2":"TN","code":"788","type":"country"},{"id":"00827e94-7231-522b-a92c-c43381c394b0","name":"Togo","deprecated":true,"iso3":"TGO","iso2":"TG","code":"768","type":"country"},{"id":"5b1f4a78-73fb-5d81-b087-a43e6a56210e","name":"Chad","deprecated":true,"iso3":"TCD","iso2":"TD","code":"148","type":"country"},{"id":"4390d558-ea24-5aab-92ed-7ea167512925","name":"Swaziland","deprecated":false,"iso3":"SWZ","iso2":"SZ","code":"748","type":"country"},{"id":"22e9a10d-c048-5bce-92b3-d35ba32a2380","name":"São Tomé and PrÃncipe","deprecated":false,"iso3":"STP","iso2":"ST","code":"678","type":"country"},{"id":"175e350b-3e7b-5988-92a5-b8592f89a5d0","name":"South Sudan","deprecated":true,"iso3":"SSD","iso2":"SS","code":"728","type":"country"},{"id":"408c17e6-3750-56ba-b74d-14cece756b69","name":"Somalia","deprecated":false,"iso3":"SOM","iso2":"SO","code":"706","type":"country"},{"id":"bed65f83-79ce-514e-a9c2-24bae1906576","name":"Senegal","deprecated":true,"iso3":"SEN","iso2":"SN","code":"686","type":"country"},{"id":"81415c05-a391-5182-8902-0f48ee21358a","name":"Sierra Leone","deprecated":true,"iso3":"SLE","iso2":"SL","code":"694","type":"country"},{"id":"50c46fa0-0451-5e15-9bbc-846a527de114","name":"Saint Helena","deprecated":true,"iso3":"SHN","iso2":"SH","code":"654","type":"country"},{"id":"c2a050bc-b370-5bcd-945c-cd0d88d814ee","name":"Sudan","deprecated":false,"iso3":"SDN","iso2":"SD","code":"729","type":"country"},{"id":"2792902e-5e01-5294-bd39-4a9b86443f69","name":"Seychelles","deprecated":false,"iso3":"SYC","iso2":"SC","code":"690","type":"country"},{"id":"e6e6e19f-26b3-53cc-ae5c-ad6af73ffa23","name":"Rwanda","deprecated":false,"iso3":"RWA","iso2":"RW","code":"646","type":"country"},{"id":"1657adab-03a4-556a-b779-d62bf356497f","name":"Réunion","deprecated":true,"iso3":"REU","iso2":"RE","code":"638","type":"country"},{"id":"db11cb4c-3534-5c9a-bd15-7b41c5b161d6","name":"Nigeria","deprecated":false,"iso3":"NGA","iso2":"NG","code":"566","type":"country"},{"id":"271aded5-deef-50b9-9e02-ec55543da25b","name":"Niger","deprecated":true,"iso3":"NER","iso2":"NE","code":"562","type":"country"},{"id":"a8f12931-d0a3-5ead-b8f7-26c9d8e29684","name":"Namibia","deprecated":false,"iso3":"NAM","iso2":"NA","code":"516","type":"country"},{"id":"f85a38bd-9851-5540-9a47-2bcda221c02f","name":"Mozambique","deprecated":false,"iso3":"MOZ","iso2":"MZ","code":"508","type":"country"},{"id":"26316b70-a4e5-5ee7-9176-d8f88977ac81","name":"Malawi","deprecated":false,"iso3":"MWI","iso2":"MW","code":"454","type":"country"},{"id":"8ac5e628-88fe-5a8f-a8e8-5e9823bed8c9","name":"Mauritius","deprecated":true,"iso3":"MUS","iso2":"MU","code":"480","type":"country"},{"id":"6286246a-cb95-57c8-bf4d-85524e069dc9","name":"Mauritania","deprecated":false,"iso3":"MRT","iso2":"MR","code":"478","type":"country"},{"id":"9eaf4ef5-fcd1-55b8-b344-7b60f9acbb2a","name":"Mali","deprecated":true,"iso3":"MLI","iso2":"ML","code":"466","type":"country"},{"id":"3158c9ea-2e08-5057-923c-a252e9bbceb5","name":"Madagascar","deprecated":true,"iso3":"MDG","iso2":"MG","code":"450","type":"country"},{"id":"b110114a-4903-54d2-8925-cfa66175fc81","name":"Morocco","deprecated":true,"iso3":"MAR","iso2":"MA","code":"504","type":"country"},{"id":"ac567919-9e6f-5712-8ef8-817d2875ae89","name":"Libya","deprecated":false,"iso3":"LBY","iso2":"LY","code":"434","type":"country"},{"id":"b82c039e-20c2-50f0-9176-307e154d19cd","name":"Lesotho","deprecated":true,"iso3":"LSO","iso2":"LS","code":"426","type":"country"},{"id":"936e5855-cede-5036-b530-4a8dc3ded9f1","name":"Liberia","deprecated":true,"iso3":"LBR","iso2":"LR","code":"430","type":"country"},{"id":"781554f5-83af-5829-a0b1-f679ccadcbc8","name":"Comoros","deprecated":true,"iso3":"COM","iso2":"KM","code":"174","type":"country"},{"id":"ef9608a5-3398-5610-9770-361e8f4d5018","name":"Kenya","deprecated":false,"iso3":"KEN","iso2":"KE","code":"404","type":"country"},{"id":"7ff14832-3c58-5e8d-b6fa-7d211d0eddea","name":"Guinea-Bissau","deprecated":true,"iso3":"GNB","iso2":"GW","code":"624","type":"country"},{"id":"24ef0507-02b5-58d8-a403-8087853d0d0e","name":"Equatorial Guinea","deprecated":false,"iso3":"GNQ","iso2":"GQ","code":"226","type":"country"},{"id":"8b2e1fe0-df59-514f-8cad-46e618371f10","name":"Guinea","deprecated":false,"iso3":"GIN","iso2":"GN","code":"324","type":"country"},{"id":"2311d16e-f8c8-5db8-9446-ddc015dee026","name":"Gambia","deprecated":true,"iso3":"GMB","iso2":"GM","code":"270","type":"country"},{"id":"9cbd51af-d825-56f1-b3c3-1412697fe6d8","name":"Ghana","deprecated":true,"iso3":"GHA","iso2":"GH","code":"288","type":"country"},{"id":"1a6265f3-08ce-57c4-9d8d-8807bc7c3f96","name":"Gabon","deprecated":true,"iso3":"GAB","iso2":"GA","code":"266","type":"country"},{"id":"7466e390-4ac7-5c6e-8ae7-cffbf4d26761","name":"Ethiopia","deprecated":false,"iso3":"ETH","iso2":"ET","code":"231","type":"country"},{"id":"1b6630d5-2650-5baf-b9a5-fa59fbbd36be","name":"Eritrea","deprecated":false,"iso3":"ERI","iso2":"ER","code":"232","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"},{"id":"23a4cd6d-3738-547b-9e3a-82d60efe6864","name":"Egypt","deprecated":true,"iso3":"EGY","iso2":"EG","code":"818","type":"country"},{"id":"bd6f190e-df1a-568c-94cc-8fbb7394522f","name":"Algeria","deprecated":false,"iso3":"DZA","iso2":"DZ","code":"012","type":"country"},{"id":"9c992f6e-72f5-5d6b-8fb9-b23909129b08","name":"Djibouti","deprecated":true,"iso3":"DJI","iso2":"DJ","code":"262","type":"country"},{"id":"63696b95-bded-58f4-8b4e-402397cfcd8a","name":"Cape Verde","deprecated":true,"iso3":"CPV","iso2":"CV","code":"132","type":"country"},{"id":"6d854d95-e91f-53cb-a1f2-1e07d51eb137","name":"Cameroon","deprecated":false,"iso3":"CMR","iso2":"CM","code":"120","type":"country"},{"id":"e8286886-6019-50d6-b0b4-315f7b9f2cef","name":"Ivory Coast","deprecated":false,"iso3":"CIV","iso2":"CI","code":"384","type":"country"},{"id":"97916595-e2d1-5214-87e2-e242bf4ad893","name":"Republic of the Congo","deprecated":false,"iso3":"COG","iso2":"CG","code":"178","type":"country"},{"id":"b1b8664b-d80d-5480-9b9a-a1ac997bd533","name":"Central African Republic","deprecated":false,"iso3":"CAF","iso2":"CF","code":"140","type":"country"},{"id":"8789e5fc-90ef-5dc5-942f-1f0f6bef20e2","name":"Democratic Republic of the Congo","deprecated":false,"iso3":"COD","iso2":"CD","code":"180","type":"country"},{"id":"e8bab11d-42db-5ff0-a68d-81d7fdae7000","name":"Botswana","deprecated":false,"iso3":"BWA","iso2":"BW","code":"072","type":"country"},{"id":"74442316-edea-5c33-9f4e-de1677f848a1","name":"Benin","deprecated":true,"iso3":"BEN","iso2":"BJ","code":"204","type":"country"},{"id":"a666ef14-444e-5605-add7-3a1a1bf028d6","name":"Burundi","deprecated":true,"iso3":"BDI","iso2":"BI","code":"108","type":"country"},{"id":"b4bd346d-94ee-5893-8439-83dcc230d37e","name":"Burkina Faso","deprecated":false,"iso3":"BFA","iso2":"BF","code":"854","type":"country"},{"id":"c6218172-7179-5f37-9302-48a0ac1e3082","name":"Angola","deprecated":true,"iso3":"AGO","iso2":"AO","code":"024","type":"country"}],"countryCodes":["716","894","710","175","800","834","788","768","148","748","678","728","706","686","694","654","729","690","646","638","566","562","516","508","454","480","478","466","450","504","434","426","430","174","404","624","226","324","270","288","266","231","232","732","818","012","262","132","120","384","178","140","180","072","204","108","854","024"]},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"d992dc09-5ab5-5126-a966-51dd89360213","name":"Cyprus","deprecated":false,"iso3":"CYP","iso2":"CY","code":"196","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"},{"id":"465abc15-6361-5901-99d0-014fd0a8fb59","name":"Peru","deprecated":false,"iso3":"PER","iso2":"PE","code":"604","type":"country"},{"id":"8fc88712-b063-55fa-adf9-7d1090098ca4","name":"Bermuda","deprecated":false,"iso3":"BMU","iso2":"BM","code":"060","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"}]}],"sourcePorts":[{"id":"34f7bed0-39b1-5064-a6e7-27b5431b2066","name":"udp_port_2","description":"Eji leklo infagziv wut vujapvug avvutu toduj dulnarse ifdo bipujhas ajo vualo efapomiw ge nepe gomhuh.","version":"5785591f-a79c-5ff4-bc82-b3dd6d70a236","type":"udpportobject","port":8830,"isSystemDefined":false},{"id":"39c5e145-2ed4-5038-ab20-3c4878437d1d","name":"icmpv6port2","description":"Fajla geffe heseipu tez toluhpap ve uhmoba garoeb ozafuzli suhwof aw likofat erige hentejpi jajaza faztiav osece na.","version":"d4492bb3-d9b0-52fc-acc6-81061c83c6b8","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8267,"isSystemDefined":false}],"destinationPorts":[{"id":"5e4d4b4d-706c-5325-b034-896d42bf9087","name":"udp_port_1","description":"Rupkoedo zuv egodid ca buapesug tu mawaduh etaeha pigfa keh it bozute wovi zijuci poscuren ifohhe.","version":"db631abc-32a3-5ca5-8ae5-a3b6f3c8371a","type":"udpportobject","port":8537,"isSystemDefined":true},{"id":"b19e16f9-5846-596a-9757-161e7154e68c","name":"tcp_port_1","description":"Ruwus webwepfa fo copoko aligimaj riz zeti bivsu jah ve virip kesnenwer fi wede magbuf ojku sadruh ji.","version":"a90e8fa8-216a-59a4-bce1-da2f92acd1ad","type":"tcpportobject","port":8721,"isSystemDefined":true}],"users":[{"id":"d23c586b-9046-57c8-b0d7-cd6200ca8e84","name":"User Group 15","realmName":"zutnotecasi","type":"trafficusergroup","realmId":2,"version":"gacvubereb"},{"id":"4a0d7157-0427-534d-94a6-c552397d9002","name":"User Group 13","realmName":"behludivci","type":"trafficusergroup","realmId":2,"version":"hifawtaddil"},{"id":"a2c00f6f-91fe-5ac0-95e8-20349cbb25c4","name":"User Group 14","realmName":"pusojegme","type":"trafficusergroup","realmId":2,"version":"hesakokela"}],"embeddedAppFilter":{"conditions":[{"filter":"muechicpoh","tags":[{"id":"7269266f-8413-59ef-9085-0de4aa64660b","version":"6eb7235a-74ab-5701-8a37-2522e325519d","appId":2,"name":"ApplicationTag2","description":"Zu wep pag palu mazu irowil rag bore ev ica miljov iwoog besjezew fi regevi ap vo.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"VERY_LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"},{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"},{"filter":"kazrutivni","tags":[{"id":"f7e90abe-ce71-56da-9f43-dd8685ec1a3a","version":"8b4ad1f1-dab6-5988-a793-c67eb8dbd3ee","appId":1,"name":"ApplicationTag1","description":"Opa zov vek obnam nobbab midzusmow riwehar gufugin mogfuana nairu camu fupim mo hov nizunfej.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"62bc5d56-7e60-5a71-a467-2c4f2a035a06","version":"e7e0ebc9-3a9a-5342-91e9-ae0ce54b3444","appId":12,"name":"ApplicationTag12","description":"Bamiwaga bo kek wawinta ovepozgan tibutef je kezaluk zonwoz fovul aw ter nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"24cd3c21-8c19-531f-81d5-08aca7b587b9","version":"b18c67e8-0f51-5f2c-88a2-11994eea44b1","appId":5,"name":"ApplicationCategory5","description":"Camweg wevovic diowu fi vo kacag vibumjih lus bowi ewatige epewa ecifoder mu gopeges.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"VERY_LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"15c62b65-ccdb-5e38-8f4b-ab7f619e80cd","version":"21e94979-b95d-5fc2-9e47-de8ba07e5e60","name":"ApplicationFilter12","description":"Bocaz mu tes ci jimvoc nahwo fiwbunum kuv tad ta jinwus zuahva mavdiida zuut ta ughopzef pucma duj.","applications":[{"id":"dca39a3c-23f6-54aa-81d7-ccef34a0cff6","version":"bfc4825b-27f5-57dc-8fef-49ca1e817fa0","description":"Kunew malu alipizdu efezuzo ogulana obir uplimo vikbuw boaf ganehi paetatug cevtal pedlise ig ritkan eva.","deprecated":true,"appId":2,"productivity":2,"risk":2,"name":"Application7","tagIds":["cf4efe76-660c-5a1c-8f49-ad97479def67","f7e90abe-ce71-56da-9f43-dd8685ec1a3a"],"tags":[{"id":"cf4efe76-660c-5a1c-8f49-ad97479def67","version":"4a68850e-91de-55b2-8e73-f94f8260d5f3","appId":14,"name":"ApplicationTag14","description":"Kurjugciv wir dod homa emaro tuzuzab avser lin ginus viskebag mohedoel iznolju dub acenogic kihvot awa.","metadata":{"referenced":true},"type":"applicationtag"},{"id":"f7e90abe-ce71-56da-9f43-dd8685ec1a3a","version":"8b4ad1f1-dab6-5988-a793-c67eb8dbd3ee","appId":1,"name":"ApplicationTag1","description":"Opa zov vek obnam nobbab midzusmow riwehar gufugin mogfuana nairu camu fupim mo hov nizunfej.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["6acda68e-7ae9-5a42-b1ac-b440dcb550dd"],"categories":[{"id":"6acda68e-7ae9-5a42-b1ac-b440dcb550dd","version":"4babca93-368e-5fbf-8029-b65063e54bb9","appId":8,"name":"ApplicationCategory4","description":"Ub vu lujus luputuja mucmoezo didiz forrene buguer ug iwusa tesit mi vusrad welavo zogme vumha.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["CLIENT"],"metadata":{"referenced":true},"type":"application"}],"conditions":[{"filter":"giasnovpe","tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"794d6605-f5d9-5f26-b11d-507eac471889","version":"20176f07-7d98-5dd7-8a17-de688ee66220","appId":1,"name":"ApplicationCategory3","description":"Woc ved ecu hin potalbib la uweerabof mato dewahmo avutji wose pujda tunoduz ucu ho zopusno lo mu.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"VERY_LOW"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"},{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":false},"type":"applicationfilter"}],"applications":[{"id":"d2f1b4a3-4704-59c8-9beb-dffb7ed07518","version":"b0a0aecb-aa27-5c7e-af44-3696768ae771","description":"Ruzik dat pimpe kinri teroh so ruwekat kikan fakajoz juk deb vusma iji madbizzoc carpecre moajiwa vojpi.","deprecated":true,"appId":2,"productivity":1,"risk":2,"name":"Application13","tagIds":["9b266171-0bc7-5f71-aa6c-44b8cbafa329"],"tags":[{"id":"9b266171-0bc7-5f71-aa6c-44b8cbafa329","version":"746ac683-b500-5781-b179-f61db662f8d3","appId":9,"name":"ApplicationTag9","description":"Ja lohivap wim saj zuw hinakug tiduze noemo azonimi ici kovaz ikuza wiihboz bubopmin la uge jeko.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["24cd3c21-8c19-531f-81d5-08aca7b587b9"],"categories":[{"id":"24cd3c21-8c19-531f-81d5-08aca7b587b9","version":"b18c67e8-0f51-5f2c-88a2-11994eea44b1","appId":5,"name":"ApplicationCategory5","description":"Camweg wevovic diowu fi vo kacag vibumjih lus bowi ewatige epewa ecifoder mu gopeges.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["CLIENT"],"metadata":{"referenced":true},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"ef71cd89-a0fc-5994-aaff-0f427dff92fa","version":"pugvagpugmi","name":"UrlGroup5","description":"Muhzipil korezoki kuwelas fojulcud jum ineteig ob zeluc mekpufes api ajnovawa ro tadi.","objects":[{"id":"0776578c-c6ee-58a3-91de-7d50b64343b8","version":"bimupair","name":"Url7","description":"Mer komad cozmersul el gaze fupfod gij pikukkop kavimgen befowez guwojo bikpogezu ice niruvpo ganal ovo taun.","url":"http://difepfel.io/ovcekwe","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlCategory":{"id":"a346d600-32a4-535c-9887-eda79f629be1","version":"1e8d8d5d-ba06-5537-94e9-cda4faa3128e","name":"UrlCategory-12","deprecated":false,"urlCategoryId":12,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"intrusionPolicy":{"id":"a47cb8f5-fe55-11e4-8e99-ipsN20","name":"Balanced Security and Connectivity","links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN20"},"rules":{"links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN20/rules/"}},"description":"Balanced Security and Connectivity Layer","type":"intrusionpolicy","version":"d3d7a26f-ddb0-57fb-a9bf-772424bbdd0a"},"logFiles":false,"type":"accessrule"},{"id":"fcba17c2-86c1-5225-b3d0-d266a9cde1b3","version":"218c22a9-0bb8-52f4-a968-8a85139cf523","ruleId":22,"name":"Access_Rule_22","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_BOTH","syslogServer":{"id":"2fcc57a5-0673-5296-ab42-0537f89225ca","version":"ac94fb6a-ecb6-5b74-9305-aa01e94d60fe","host":"66.33.32.162","port":5897,"protocol":"UDP","useManagementInterface":true,"type":"syslogserver"},"sourceZones":[{"id":"8cb69a8f-7d8d-5f4e-9a4f-f6e717f833ed","name":"SecurityZone3Name","description":"Udanovja dupolo zurepi ufmu ah lezup ba ga jur duvorzu abevabji zil nuikihi wopuw.","version":"dd83a4d5-be23-51f8-9b73-2ae9e26f7d36","interfaces":[{"mtu":2652,"enabled":false,"description":"Efupaf nas ilureg zetikdav emki fafiv tihug orhid zimurfo naferal va ta ug za ur di zetsa ragizike.","name":"subinterface10name","id":"4307a6d5-0ef1-55d4-adc4-0461c31b7eb5","hardwareName":"SubInterface0/10.11","macAddress":"F617.A8F2.5DEB","monitorInterface":true,"standbyMacAddress":"0E24.391A.BFD9","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"c324:084e:8a04:523f:64ec:2b27:9f07:6a8d/32","ipAddress":"0faf:b8b8:7fbe:0d00:facd:c82d:f721:93dd/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"bc90:477f:99f9:ee80:1faa:1f0c:a2a6:77b7","ipAddress":"2d31:24c2:acd3:16b0:d1df:b4b6:763f:48c0"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"250.15.33.10","standbyIpAddress":"254.220.208.229"}},"version":"0f193aa1-ad09-52dd-98e8-eb32e2e61484","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}},{"id":"e12d0a2e-afc7-53cb-85e7-38aa135de327","name":"SecurityZone13Name","description":"Do tewuznas ucait mad ziwgef iw unjup guzov dize guzut vibuk anpekpib nerviw ip ijpa koruf.","version":"09dc0dd3-4a94-5cf2-9efb-89a0f352e003","interfaces":[{"mtu":2652,"enabled":true,"description":"Agi pobjotu zukac rive putsi herima mepues ezijo wicimub utjamoj noskavup wupoje ra dujipale.","name":"subinterface2name","id":"353dee59-d2b6-5df6-9b8e-4f444b489176","hardwareName":"SubInterface0/2.3","macAddress":"EDB8.12E9.D2DB","monitorInterface":false,"standbyMacAddress":"5667.5103.F034","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"2647:2aea:3fdf:b4cc:6433:554a:6ab5:c594/32","ipAddress":"04f0:7320:ae63:ce9f:664b:c7e3:8867:daa9/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"3d77:5e5d:78ec:d370:2293:4026:1bbb:aee3","ipAddress":"e6eb:6fef:da47:e1c1:1523:464b:1cab:92a1"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"96.88.118.226","standbyIpAddress":"17.135.120.105"}},"version":"82ce2f08-42bf-5b19-bbbb-0c4ef276caa0","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"destinationZones":[{"id":"340bf250-a4a5-5049-bddf-a6201a9b8e86","name":"SecurityZone7Name","description":"So gitejipo sotvotdab watu la ica fojum dorog odohog mil etuw ta daghavke dig.","version":"273d67ab-abb9-5af1-8574-3e9af6e98aed","interfaces":[{"mtu":2652,"enabled":false,"description":"Wa cep gi lankowtu ce uvujed tad wo vezke vib vezvufgev hun vob velumde.","name":"subinterface11name","id":"ffc74b4d-ad27-5459-9907-186a8c739189","hardwareName":"SubInterface0/11.12","macAddress":"1534.AB09.4146","monitorInterface":true,"standbyMacAddress":"CF72.BDFB.98A1","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"fafb:559d:106d:67ac:52dd:e182:d306:4792/32","ipAddress":"a7bd:69ea:f24f:04ea:40c5:3f80:0416:0f09/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d544:6d26:411c:e460:9911:cb8b:ca9e:3a15","ipAddress":"f96f:858d:9ed1:fc9f:7b47:0fb4:246d:6cb6"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"17.76.225.83","standbyIpAddress":"195.253.157.229"}},"version":"e22e21d2-9d64-51a4-adc2-a775a4572916","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}}],"sourceNetworks":[{"id":"0f1e5697-c424-59ac-87dd-bc36e3c08465","name":"Network10","description":"Gowvis opopijab joswirud jezow feud ikibik ruronub oh zoteso ilohhu wif wezagina mi dov riluj luffepcep safes zeksim.","version":"59a184bf-98ff-5f9a-a5c3-67542f91153d","type":"networkobject","subType":"NETWORK","value":"146.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"b483d38e-bce7-5bb7-9769-57ec8151bd4f","name":"Network12","description":"Tikafnaz lujis rirunuf sehi ubfewe kabhili zota funfof zagujnuf mel ejejegto fihjunmu ma funah va.","version":"3132162a-9791-5f26-9146-79add126c19f","type":"networkobject","subType":"NETWORK","value":"23.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"09d97c3e-0824-5e9d-bee8-28ea311458a5","name":"Geolocation4","description":"Detriwwot uwaan sa ta pohvab ako fi owe apefi ocde mok alcob.","version":"b599df3c-38d1-523e-9bc6-2d82e76d48ff","type":"geolocation","locations":[{"id":"18cbe485-d646-5aad-827e-13ec090dd450","name":"Europe","deprecated":false,"code":1005,"type":"continent","countries":[{"id":"a0d47a89-de9b-5f06-b5f2-b903320ecf26","name":"Kosovo","deprecated":true,"iso3":"XKX","iso2":"XK","code":"0","type":"country"},{"id":"0613c448-b6b0-55f9-9ab0-81470a794905","name":"Vatican City","deprecated":false,"iso3":"VAT","iso2":"VA","code":"336","type":"country"},{"id":"90c38868-27c0-5de2-a580-630b08b64406","name":"Ukraine","deprecated":false,"iso3":"UKR","iso2":"UA","code":"804","type":"country"},{"id":"e8b65d12-13e5-53b5-abe4-3c833e412440","name":"San Marino","deprecated":true,"iso3":"SMR","iso2":"SM","code":"674","type":"country"},{"id":"cbe10064-72a0-5b1a-813f-0d684567cb07","name":"Slovakia","deprecated":true,"iso3":"SVK","iso2":"SK","code":"703","type":"country"},{"id":"ce221115-d595-50d6-bd2f-fe0429b27b04","name":"Svalbard and Jan Mayen","deprecated":false,"iso3":"SJM","iso2":"SJ","code":"744","type":"country"},{"id":"9401a437-ee7e-51a8-bcc0-7623f8193dac","name":"Slovenia","deprecated":true,"iso3":"SVN","iso2":"SI","code":"705","type":"country"},{"id":"d4901422-c6fd-5ef4-bf4e-09d2074b34dc","name":"Sweden","deprecated":true,"iso3":"SWE","iso2":"SE","code":"752","type":"country"},{"id":"5f22f339-f1a0-5a70-9254-5dd0dad4d243","name":"Russia","deprecated":false,"iso3":"RUS","iso2":"RU","code":"643","type":"country"},{"id":"3a771763-9c5d-580f-9fc5-df41e7355def","name":"Serbia","deprecated":false,"iso3":"SRB","iso2":"RS","code":"688","type":"country"},{"id":"74759e4d-8901-5302-89b7-384fa438a9d2","name":"Romania","deprecated":true,"iso3":"ROU","iso2":"RO","code":"642","type":"country"},{"id":"58579a6d-8542-5c18-8ecb-4d54f527c8e5","name":"Portugal","deprecated":false,"iso3":"PRT","iso2":"PT","code":"620","type":"country"},{"id":"c095aa5d-350d-5db8-9d01-0a106f93c3a5","name":"Poland","deprecated":true,"iso3":"POL","iso2":"PL","code":"616","type":"country"},{"id":"02fa0428-9885-58ba-9fc1-9cc2cb30f0cb","name":"Norway","deprecated":true,"iso3":"NOR","iso2":"NO","code":"578","type":"country"},{"id":"39923980-c4f7-5dda-890c-ab8c290a5be5","name":"Netherlands","deprecated":false,"iso3":"NLD","iso2":"NL","code":"528","type":"country"},{"id":"aaad1a9f-fd04-5427-aea9-6a2216f61efe","name":"Malta","deprecated":false,"iso3":"MLT","iso2":"MT","code":"470","type":"country"},{"id":"ef8d2943-7ddf-57a6-8543-563cc13ebf4e","name":"Macedonia","deprecated":true,"iso3":"MKD","iso2":"MK","code":"807","type":"country"},{"id":"779cdf72-27d4-5e41-b81c-8ea5ef53f01a","name":"Montenegro","deprecated":false,"iso3":"MNE","iso2":"ME","code":"499","type":"country"},{"id":"8ecb3dd6-0cc2-5bac-b21d-83f1e3fbc848","name":"Moldova","deprecated":true,"iso3":"MDA","iso2":"MD","code":"498","type":"country"},{"id":"e0400095-a311-5b38-92e1-d635e6a1f938","name":"Monaco","deprecated":false,"iso3":"MCO","iso2":"MC","code":"492","type":"country"},{"id":"4e696592-960a-51d9-9078-985330e3feb1","name":"Latvia","deprecated":true,"iso3":"LVA","iso2":"LV","code":"428","type":"country"},{"id":"bb1fe9b8-9f49-56fe-9278-4cc73152f780","name":"Luxembourg","deprecated":true,"iso3":"LUX","iso2":"LU","code":"442","type":"country"},{"id":"76d4e398-d6e2-5f4f-ba11-d01a828f883d","name":"Lithuania","deprecated":true,"iso3":"LTU","iso2":"LT","code":"440","type":"country"},{"id":"059ecc8f-4828-5c94-a589-534028509f02","name":"Liechtenstein","deprecated":true,"iso3":"LIE","iso2":"LI","code":"438","type":"country"},{"id":"73f3b217-148d-5d48-a652-495178f5a046","name":"Jersey","deprecated":true,"iso3":"JEY","iso2":"JE","code":"832","type":"country"},{"id":"3e0ee5a1-a07b-52c0-b62c-a470c4269802","name":"Italy","deprecated":false,"iso3":"ITA","iso2":"IT","code":"380","type":"country"},{"id":"0a95f5f3-ed92-5adb-9e53-3a1d516b33f1","name":"Iceland","deprecated":true,"iso3":"ISL","iso2":"IS","code":"352","type":"country"},{"id":"968a378c-2885-5a3b-a0dc-160560765c7e","name":"Isle of Man","deprecated":true,"iso3":"IMN","iso2":"IM","code":"833","type":"country"},{"id":"cae04dab-514c-559a-94d5-b3930bcf5800","name":"Ireland","deprecated":false,"iso3":"IRL","iso2":"IE","code":"372","type":"country"},{"id":"bc5d918e-a2c8-508d-9a87-c990eeec6215","name":"Hungary","deprecated":true,"iso3":"HUN","iso2":"HU","code":"348","type":"country"},{"id":"4adcb40c-5d55-5860-97b6-ebac58830a04","name":"Croatia","deprecated":true,"iso3":"HRV","iso2":"HR","code":"191","type":"country"},{"id":"03330265-fe01-5435-899a-08042bc643b5","name":"Greece","deprecated":false,"iso3":"GRC","iso2":"GR","code":"300","type":"country"},{"id":"a3120da5-8f6f-5fdc-af6d-8ccac4e802b7","name":"Gibraltar","deprecated":true,"iso3":"GIB","iso2":"GI","code":"292","type":"country"},{"id":"7a31d958-157e-509d-bc9f-f52b45c85c6d","name":"Guernsey","deprecated":true,"iso3":"GGY","iso2":"GG","code":"831","type":"country"},{"id":"2fbb8b4c-cc35-5550-acef-bc53b5c0f0f4","name":"United Kingdom","deprecated":false,"iso3":"GBR","iso2":"GB","code":"826","type":"country"},{"id":"92e4bed7-5044-5b4f-8d3f-1239ff903965","name":"France","deprecated":true,"iso3":"FRA","iso2":"FR","code":"250","type":"country"},{"id":"5ee6b8ad-2c86-58d1-ac57-8db405e7dda8","name":"Faroe Islands","deprecated":true,"iso3":"FRO","iso2":"FO","code":"234","type":"country"},{"id":"a7a8cee7-9bad-5786-a874-6be00056cecd","name":"Finland","deprecated":true,"iso3":"FIN","iso2":"FI","code":"246","type":"country"},{"id":"1e9c9635-11bb-5544-8fab-27b6da86a545","name":"Spain","deprecated":true,"iso3":"ESP","iso2":"ES","code":"724","type":"country"},{"id":"355204ae-8c3e-5a96-8f23-3670fde3d26a","name":"Estonia","deprecated":true,"iso3":"EST","iso2":"EE","code":"233","type":"country"},{"id":"a7b4cd03-9dc0-572f-82ff-fef0153b4c8c","name":"Denmark","deprecated":true,"iso3":"DNK","iso2":"DK","code":"208","type":"country"},{"id":"004e74d4-cffc-599e-bd12-f4ac69a8a700","name":"Germany","deprecated":true,"iso3":"DEU","iso2":"DE","code":"276","type":"country"},{"id":"fbdea1d9-5ac4-53d0-be10-3220747421b8","name":"Czech Republic","deprecated":true,"iso3":"CZE","iso2":"CZ","code":"203","type":"country"},{"id":"d992dc09-5ab5-5126-a966-51dd89360213","name":"Cyprus","deprecated":false,"iso3":"CYP","iso2":"CY","code":"196","type":"country"},{"id":"eb716c3b-89e2-529c-a558-ca340a332486","name":"Switzerland","deprecated":true,"iso3":"CHE","iso2":"CH","code":"756","type":"country"},{"id":"089c406e-a4ff-52ae-9672-73a1bdf5a396","name":"Belarus","deprecated":true,"iso3":"BLR","iso2":"BY","code":"112","type":"country"},{"id":"3dfcd86f-2e29-59f7-9e44-27fe038c51a6","name":"Bulgaria","deprecated":false,"iso3":"BGR","iso2":"BG","code":"100","type":"country"},{"id":"8c299df7-5229-5596-963c-04cb2b46d34d","name":"Belgium","deprecated":true,"iso3":"BEL","iso2":"BE","code":"056","type":"country"},{"id":"fc99ebdb-5c82-5819-979d-d8f6310351af","name":"Bosnia and Herzegovina","deprecated":true,"iso3":"BIH","iso2":"BA","code":"070","type":"country"},{"id":"588e4f19-dfac-5134-98c1-c1cafee86399","name":"Ã…land","deprecated":false,"iso3":"ALA","iso2":"AX","code":"248","type":"country"},{"id":"67f08133-23b8-52ac-8436-41d77a2eebfb","name":"Austria","deprecated":false,"iso3":"AUT","iso2":"AT","code":"040","type":"country"},{"id":"28e90dfc-6bc0-556c-a014-d0dc49366442","name":"Albania","deprecated":true,"iso3":"ALB","iso2":"AL","code":"008","type":"country"}],"countryCodes":["0","336","804","674","703","744","705","752","643","688","642","620","616","578","528","470","807","499","498","492","428","442","440","438","832","380","352","833","372","348","191","300","292","831","826","250","234","246","724","233","208","276","203","196","756","112","100","056","070","248","040","008"]},{"id":"4343b55a-5fe8-567f-a099-f3d20b53a9cf","name":"Cook Islands","deprecated":true,"iso3":"COK","iso2":"CK","code":"184","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"},{"id":"c16f6991-a7d7-51dc-85d3-43752e0c5d10","name":"Suriname","deprecated":true,"iso3":"SUR","iso2":"SR","code":"740","type":"country"},{"id":"0b32f4f0-c8db-5011-ac99-73bfc4a31ecb","name":"Bonaire","deprecated":true,"iso3":"BES","iso2":"BQ","code":"535","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"}]}],"destinationNetworks":[{"id":"0f1e5697-c424-59ac-87dd-bc36e3c08465","name":"Network10","description":"Gowvis opopijab joswirud jezow feud ikibik ruronub oh zoteso ilohhu wif wezagina mi dov riluj luffepcep safes zeksim.","version":"59a184bf-98ff-5f9a-a5c3-67542f91153d","type":"networkobject","subType":"NETWORK","value":"146.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"b483d38e-bce7-5bb7-9769-57ec8151bd4f","name":"Network12","description":"Tikafnaz lujis rirunuf sehi ubfewe kabhili zota funfof zagujnuf mel ejejegto fihjunmu ma funah va.","version":"3132162a-9791-5f26-9146-79add126c19f","type":"networkobject","subType":"NETWORK","value":"23.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"09d97c3e-0824-5e9d-bee8-28ea311458a5","name":"Geolocation4","description":"Detriwwot uwaan sa ta pohvab ako fi owe apefi ocde mok alcob.","version":"b599df3c-38d1-523e-9bc6-2d82e76d48ff","type":"geolocation","locations":[{"id":"18cbe485-d646-5aad-827e-13ec090dd450","name":"Europe","deprecated":false,"code":1005,"type":"continent","countries":[{"id":"a0d47a89-de9b-5f06-b5f2-b903320ecf26","name":"Kosovo","deprecated":true,"iso3":"XKX","iso2":"XK","code":"0","type":"country"},{"id":"0613c448-b6b0-55f9-9ab0-81470a794905","name":"Vatican City","deprecated":false,"iso3":"VAT","iso2":"VA","code":"336","type":"country"},{"id":"90c38868-27c0-5de2-a580-630b08b64406","name":"Ukraine","deprecated":false,"iso3":"UKR","iso2":"UA","code":"804","type":"country"},{"id":"e8b65d12-13e5-53b5-abe4-3c833e412440","name":"San Marino","deprecated":true,"iso3":"SMR","iso2":"SM","code":"674","type":"country"},{"id":"cbe10064-72a0-5b1a-813f-0d684567cb07","name":"Slovakia","deprecated":true,"iso3":"SVK","iso2":"SK","code":"703","type":"country"},{"id":"ce221115-d595-50d6-bd2f-fe0429b27b04","name":"Svalbard and Jan Mayen","deprecated":false,"iso3":"SJM","iso2":"SJ","code":"744","type":"country"},{"id":"9401a437-ee7e-51a8-bcc0-7623f8193dac","name":"Slovenia","deprecated":true,"iso3":"SVN","iso2":"SI","code":"705","type":"country"},{"id":"d4901422-c6fd-5ef4-bf4e-09d2074b34dc","name":"Sweden","deprecated":true,"iso3":"SWE","iso2":"SE","code":"752","type":"country"},{"id":"5f22f339-f1a0-5a70-9254-5dd0dad4d243","name":"Russia","deprecated":false,"iso3":"RUS","iso2":"RU","code":"643","type":"country"},{"id":"3a771763-9c5d-580f-9fc5-df41e7355def","name":"Serbia","deprecated":false,"iso3":"SRB","iso2":"RS","code":"688","type":"country"},{"id":"74759e4d-8901-5302-89b7-384fa438a9d2","name":"Romania","deprecated":true,"iso3":"ROU","iso2":"RO","code":"642","type":"country"},{"id":"58579a6d-8542-5c18-8ecb-4d54f527c8e5","name":"Portugal","deprecated":false,"iso3":"PRT","iso2":"PT","code":"620","type":"country"},{"id":"c095aa5d-350d-5db8-9d01-0a106f93c3a5","name":"Poland","deprecated":true,"iso3":"POL","iso2":"PL","code":"616","type":"country"},{"id":"02fa0428-9885-58ba-9fc1-9cc2cb30f0cb","name":"Norway","deprecated":true,"iso3":"NOR","iso2":"NO","code":"578","type":"country"},{"id":"39923980-c4f7-5dda-890c-ab8c290a5be5","name":"Netherlands","deprecated":false,"iso3":"NLD","iso2":"NL","code":"528","type":"country"},{"id":"aaad1a9f-fd04-5427-aea9-6a2216f61efe","name":"Malta","deprecated":false,"iso3":"MLT","iso2":"MT","code":"470","type":"country"},{"id":"ef8d2943-7ddf-57a6-8543-563cc13ebf4e","name":"Macedonia","deprecated":true,"iso3":"MKD","iso2":"MK","code":"807","type":"country"},{"id":"779cdf72-27d4-5e41-b81c-8ea5ef53f01a","name":"Montenegro","deprecated":false,"iso3":"MNE","iso2":"ME","code":"499","type":"country"},{"id":"8ecb3dd6-0cc2-5bac-b21d-83f1e3fbc848","name":"Moldova","deprecated":true,"iso3":"MDA","iso2":"MD","code":"498","type":"country"},{"id":"e0400095-a311-5b38-92e1-d635e6a1f938","name":"Monaco","deprecated":false,"iso3":"MCO","iso2":"MC","code":"492","type":"country"},{"id":"4e696592-960a-51d9-9078-985330e3feb1","name":"Latvia","deprecated":true,"iso3":"LVA","iso2":"LV","code":"428","type":"country"},{"id":"bb1fe9b8-9f49-56fe-9278-4cc73152f780","name":"Luxembourg","deprecated":true,"iso3":"LUX","iso2":"LU","code":"442","type":"country"},{"id":"76d4e398-d6e2-5f4f-ba11-d01a828f883d","name":"Lithuania","deprecated":true,"iso3":"LTU","iso2":"LT","code":"440","type":"country"},{"id":"059ecc8f-4828-5c94-a589-534028509f02","name":"Liechtenstein","deprecated":true,"iso3":"LIE","iso2":"LI","code":"438","type":"country"},{"id":"73f3b217-148d-5d48-a652-495178f5a046","name":"Jersey","deprecated":true,"iso3":"JEY","iso2":"JE","code":"832","type":"country"},{"id":"3e0ee5a1-a07b-52c0-b62c-a470c4269802","name":"Italy","deprecated":false,"iso3":"ITA","iso2":"IT","code":"380","type":"country"},{"id":"0a95f5f3-ed92-5adb-9e53-3a1d516b33f1","name":"Iceland","deprecated":true,"iso3":"ISL","iso2":"IS","code":"352","type":"country"},{"id":"968a378c-2885-5a3b-a0dc-160560765c7e","name":"Isle of Man","deprecated":true,"iso3":"IMN","iso2":"IM","code":"833","type":"country"},{"id":"cae04dab-514c-559a-94d5-b3930bcf5800","name":"Ireland","deprecated":false,"iso3":"IRL","iso2":"IE","code":"372","type":"country"},{"id":"bc5d918e-a2c8-508d-9a87-c990eeec6215","name":"Hungary","deprecated":true,"iso3":"HUN","iso2":"HU","code":"348","type":"country"},{"id":"4adcb40c-5d55-5860-97b6-ebac58830a04","name":"Croatia","deprecated":true,"iso3":"HRV","iso2":"HR","code":"191","type":"country"},{"id":"03330265-fe01-5435-899a-08042bc643b5","name":"Greece","deprecated":false,"iso3":"GRC","iso2":"GR","code":"300","type":"country"},{"id":"a3120da5-8f6f-5fdc-af6d-8ccac4e802b7","name":"Gibraltar","deprecated":true,"iso3":"GIB","iso2":"GI","code":"292","type":"country"},{"id":"7a31d958-157e-509d-bc9f-f52b45c85c6d","name":"Guernsey","deprecated":true,"iso3":"GGY","iso2":"GG","code":"831","type":"country"},{"id":"2fbb8b4c-cc35-5550-acef-bc53b5c0f0f4","name":"United Kingdom","deprecated":false,"iso3":"GBR","iso2":"GB","code":"826","type":"country"},{"id":"92e4bed7-5044-5b4f-8d3f-1239ff903965","name":"France","deprecated":true,"iso3":"FRA","iso2":"FR","code":"250","type":"country"},{"id":"5ee6b8ad-2c86-58d1-ac57-8db405e7dda8","name":"Faroe Islands","deprecated":true,"iso3":"FRO","iso2":"FO","code":"234","type":"country"},{"id":"a7a8cee7-9bad-5786-a874-6be00056cecd","name":"Finland","deprecated":true,"iso3":"FIN","iso2":"FI","code":"246","type":"country"},{"id":"1e9c9635-11bb-5544-8fab-27b6da86a545","name":"Spain","deprecated":true,"iso3":"ESP","iso2":"ES","code":"724","type":"country"},{"id":"355204ae-8c3e-5a96-8f23-3670fde3d26a","name":"Estonia","deprecated":true,"iso3":"EST","iso2":"EE","code":"233","type":"country"},{"id":"a7b4cd03-9dc0-572f-82ff-fef0153b4c8c","name":"Denmark","deprecated":true,"iso3":"DNK","iso2":"DK","code":"208","type":"country"},{"id":"004e74d4-cffc-599e-bd12-f4ac69a8a700","name":"Germany","deprecated":true,"iso3":"DEU","iso2":"DE","code":"276","type":"country"},{"id":"fbdea1d9-5ac4-53d0-be10-3220747421b8","name":"Czech Republic","deprecated":true,"iso3":"CZE","iso2":"CZ","code":"203","type":"country"},{"id":"d992dc09-5ab5-5126-a966-51dd89360213","name":"Cyprus","deprecated":false,"iso3":"CYP","iso2":"CY","code":"196","type":"country"},{"id":"eb716c3b-89e2-529c-a558-ca340a332486","name":"Switzerland","deprecated":true,"iso3":"CHE","iso2":"CH","code":"756","type":"country"},{"id":"089c406e-a4ff-52ae-9672-73a1bdf5a396","name":"Belarus","deprecated":true,"iso3":"BLR","iso2":"BY","code":"112","type":"country"},{"id":"3dfcd86f-2e29-59f7-9e44-27fe038c51a6","name":"Bulgaria","deprecated":false,"iso3":"BGR","iso2":"BG","code":"100","type":"country"},{"id":"8c299df7-5229-5596-963c-04cb2b46d34d","name":"Belgium","deprecated":true,"iso3":"BEL","iso2":"BE","code":"056","type":"country"},{"id":"fc99ebdb-5c82-5819-979d-d8f6310351af","name":"Bosnia and Herzegovina","deprecated":true,"iso3":"BIH","iso2":"BA","code":"070","type":"country"},{"id":"588e4f19-dfac-5134-98c1-c1cafee86399","name":"Ã…land","deprecated":false,"iso3":"ALA","iso2":"AX","code":"248","type":"country"},{"id":"67f08133-23b8-52ac-8436-41d77a2eebfb","name":"Austria","deprecated":false,"iso3":"AUT","iso2":"AT","code":"040","type":"country"},{"id":"28e90dfc-6bc0-556c-a014-d0dc49366442","name":"Albania","deprecated":true,"iso3":"ALB","iso2":"AL","code":"008","type":"country"}],"countryCodes":["0","336","804","674","703","744","705","752","643","688","642","620","616","578","528","470","807","499","498","492","428","442","440","438","832","380","352","833","372","348","191","300","292","831","826","250","234","246","724","233","208","276","203","196","756","112","100","056","070","248","040","008"]},{"id":"4343b55a-5fe8-567f-a099-f3d20b53a9cf","name":"Cook Islands","deprecated":true,"iso3":"COK","iso2":"CK","code":"184","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"},{"id":"c16f6991-a7d7-51dc-85d3-43752e0c5d10","name":"Suriname","deprecated":true,"iso3":"SUR","iso2":"SR","code":"740","type":"country"},{"id":"0b32f4f0-c8db-5011-ac99-73bfc4a31ecb","name":"Bonaire","deprecated":true,"iso3":"BES","iso2":"BQ","code":"535","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"}]}],"sourcePorts":[{"id":"1a4f8032-f665-5045-b0d8-a48b339750d1","name":"tcp_port_2","description":"Ku soguzsi ragibi nupavidag faji kovor ikikov efa ha cozuju inietu daf hif iso.","version":"b6ff8844-fd46-5e03-9ca4-00b7bc8bd936","type":"tcpportobject","port":8189,"isSystemDefined":false},{"id":"34f7bed0-39b1-5064-a6e7-27b5431b2066","name":"udp_port_2","description":"Eji leklo infagziv wut vujapvug avvutu toduj dulnarse ifdo bipujhas ajo vualo efapomiw ge nepe gomhuh.","version":"5785591f-a79c-5ff4-bc82-b3dd6d70a236","type":"udpportobject","port":8830,"isSystemDefined":false}],"destinationPorts":[{"id":"d0ecb6d1-cc76-58fb-a392-4e9c9537be4c","name":"icmpv4port2","description":"Asci be jutgu wo susadagi woveven bafosjoc ceec wovukiv tati tepav gu za muhhudbi.","version":"54ed4735-cf04-5504-8a5a-2dd0bec3f5a9","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8251,"isSystemDefined":false},{"id":"2a40730e-7878-5969-ba53-1d9278cde125","name":"icmpv4port1","description":"Uva ceti behga hetivasu ajbebu rakepe ame ifa aceuriso kejic fucaoti gigvivvo gishelpob jurevmu ov maclefe.","version":"e62c0f51-027e-5a7f-b725-a96162bb7138","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8508,"isSystemDefined":false}],"users":[{"id":"17d2b0ac-fadf-5313-92e5-42fb1968a45b","name":"User Group 9","realmName":"mislebvaccop","type":"trafficusergroup","realmId":2,"version":"tokinedapu"},{"id":"56333652-27c4-5f8b-a6b4-d6f92023c62f","name":"User Group 27","realmName":"ecfomeov","type":"trafficusergroup","realmId":2,"version":"nemawpopew"},{"id":"ee881dbe-33b7-559b-a776-101d11357429","name":"User 2","realmName":"enrinkimu","type":"trafficuser","realmId":2,"version":"nibnajomjo"}],"embeddedAppFilter":{"conditions":[{"filter":"mutilaje","tags":[{"id":"df3a88b5-3e3b-5024-9d9f-25d3262ce374","version":"b689fe7b-2b28-59fb-93cf-3995fe189cf1","appId":3,"name":"ApplicationTag15","description":"Ofihzaj hesa do dawo mipegil bilel liviip mub zahtavso rut nu zaj weuki dep suspufun ac rap.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"415702f2-3bd8-5dba-adea-dd03452067a5","version":"1062501a-214c-51d1-9af3-d9c2ca87588f","appId":4,"name":"ApplicationCategory11","description":"Dubofmih taj cukij fes vizoc urzip lazigeha pot bak jackoaz ufi ebomujme ce.","metadata":{"referenced":true},"type":"applicationcategory"},{"id":"3cd37a5a-b5c2-516a-8eb9-c5d87fcdb2a2","version":"76af8e96-44af-5285-a65a-172f138b8941","appId":3,"name":"ApplicationCategory10","description":"Taljooco pi wo cahorti fih heose wicueci emiwoube no iwozovban ip oho im uke wu ko noed.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"MEDIUM"}],"applicationTypes":[{"type":"typecondition","applicationType":"CLIENT"},{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"MEDIUM"},{"type":"productivitycondition","productivity":"LOW"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"},{"filter":"loweteziwno","tags":[{"id":"11d43e11-683f-5ec2-89c6-6b4e9a8c756d","version":"13924388-a6d9-5f80-8b3b-825736afd2bc","appId":13,"name":"ApplicationTag13","description":"Fiwjag safe jujohmi lipa gucpi la tocgomkap fozensir jafuhi vutbinij jov lifo ciduwno fuzegvef consibe hope.","metadata":{"referenced":true},"type":"applicationtag"}],"categories":[{"id":"24cd3c21-8c19-531f-81d5-08aca7b587b9","version":"b18c67e8-0f51-5f2c-88a2-11994eea44b1","appId":5,"name":"ApplicationCategory5","description":"Camweg wevovic diowu fi vo kacag vibumjih lus bowi ewatige epewa ecifoder mu gopeges.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"3cd37a5a-b5c2-516a-8eb9-c5d87fcdb2a2","version":"76af8e96-44af-5285-a65a-172f138b8941","appId":3,"name":"ApplicationCategory10","description":"Taljooco pi wo cahorti fih heose wicueci emiwoube no iwozovban ip oho im uke wu ko noed.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"VERY_HIGH"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"ce7e9199-db5d-5032-a961-448184ab75ae","version":"1e2955c1-3f40-5f65-a370-5019e41f9ecb","name":"ApplicationFilter14","description":"Acadewlot tol nake cabe ra ecvimza dafouvo wiko mipuzol igozat egara vuj hic cugcono juvi ujmid bonlor.","applications":[{"id":"6361bd7f-01c9-5714-baca-035d66f50a8c","version":"50dcdb47-5d21-537f-b3b0-81713bf31c06","description":"Leku luto lofuwec wuwguhot abmofdo cun vuunuvi lulsoteg kivsas mijmi ru kipumeja sacwuwhe gub magumera.","deprecated":false,"appId":5,"productivity":0,"risk":4,"name":"Application5","tagIds":["0b45de63-5252-5257-acf6-ce494cdb905a"],"tags":[{"id":"0b45de63-5252-5257-acf6-ce494cdb905a","version":"9c3ed423-1b8a-5f1f-aae0-a507cc188490","appId":6,"name":"ApplicationTag6","description":"Varejse ji ogouvu rin nubuten bezozmaj coeg zuralse pa zitomgon lu rigugip.","metadata":{"referenced":true},"type":"applicationtag"}],"categoryIds":["7f62abc6-7f08-5a69-acb6-65def01251d4","fff4b47c-a653-5729-a31a-e6353d420768"],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["SERVER","WEBAPP"],"metadata":{"referenced":true},"type":"application"},{"id":"ce901dd3-4e85-5bf0-a273-2018d76527c8","version":"84a4f0c6-57b3-50f3-bf20-0cf68bbbb806","description":"Gipus bovawge vel ceoziwo nuim ehdifir nowe onoli atsewav irfer semowi ge turos mufo tahukca jaz.","deprecated":true,"appId":5,"productivity":0,"risk":2,"name":"Application2","tagIds":["58edda62-c97b-56e5-9e6c-32926f4d3009"],"tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["1323d445-72c0-5d8b-9f58-c223feb51bac","328094ea-7b95-58e5-a2de-09018514e679"],"categories":[{"id":"1323d445-72c0-5d8b-9f58-c223feb51bac","version":"f85374d2-b1c5-5e65-b746-77dc6a21decb","appId":7,"name":"ApplicationCategory14","description":"Ohoad agoteveto irewomi adizogo lurtoop tizesuca himewwak poftoj cow nunapivif cisge pe hi raam hatdunze.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"328094ea-7b95-58e5-a2de-09018514e679","version":"a9f6d6f5-e2ce-5a1b-8c7f-1a5ba3c375b4","appId":4,"name":"ApplicationCategory1","description":"Pilooru amavudek uhzidkah sieha duhni ikfo celrid az ocolu loplun buj nodlial do ahme henacava so ecevega wemtumacu.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["CLIENT","WEBAPP"],"metadata":{"referenced":false},"type":"application"}],"conditions":[{"filter":"detfaodvej","tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"CRITICAL"}],"applicationTypes":[{"type":"typecondition","applicationType":"CLIENT"},{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"MEDIUM"},{"type":"productivitycondition","productivity":"VERY_HIGH"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":true},"type":"applicationfilter"}],"applications":[{"id":"44b7bb09-58d5-59ef-abd3-7341fa4d1c7b","version":"fe155cb3-e78d-5a5b-8713-5c056c0ea86f","description":"Dazgo jefeci dulhel lowez cotgo mu ewuufih indeh bo urjur vursosoc cetco eb.","deprecated":false,"appId":8,"productivity":3,"risk":3,"name":"Application3","tagIds":["58edda62-c97b-56e5-9e6c-32926f4d3009"],"tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["794d6605-f5d9-5f26-b11d-507eac471889","0928e8e9-25a4-53d0-b118-342a26b44100"],"categories":[{"id":"794d6605-f5d9-5f26-b11d-507eac471889","version":"20176f07-7d98-5dd7-8a17-de688ee66220","appId":1,"name":"ApplicationCategory3","description":"Woc ved ecu hin potalbib la uweerabof mato dewahmo avutji wose pujda tunoduz ucu ho zopusno lo mu.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"0928e8e9-25a4-53d0-b118-342a26b44100","version":"cccc44d5-b855-569b-90ad-b26d4e3e0c66","appId":7,"name":"ApplicationCategory8","description":"Mifzonu fokero acdu panvo cuvubde tovli maz cawag kaoj gosoojo falkof hezel sig ca vo wak.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["SERVER"],"metadata":{"referenced":false},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"bba3c76d-8a74-5ec9-9bc5-df3008b85742","version":"uwofikigom","name":"UrlGroup2","description":"Eze zuj difruw namoha pu nijizkam owitema konho upi neppo fikcebzi hub zadouf sautiar.","objects":[{"id":"00abb7ee-65e7-5e3e-99f7-9800c0af349c","version":"bogoprobifi","name":"Url15","description":"Mok ujci zasidrob zo man urebanfir gim faseg hacabkuw gi jorabco bitle bek.","url":"http://nufiwow.net/mimce","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlCategory":{"id":"ef32d255-d7f2-55c3-ac8a-25c27380c78e","version":"62783416-3b76-5da2-a832-2ea8ba99f299","name":"UrlCategory-14","deprecated":false,"urlCategoryId":14,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"intrusionPolicy":{"id":"a47cb8f5-fe55-11e4-8e99-ipsN30","name":"Security Over Connectivity","links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN30"},"rules":{"links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN30/rules/"}},"description":"Security Over Connectivity Layer","type":"intrusionpolicy","version":"fc826c33-84fb-5b14-96e5-0cdd4717c442"},"filePolicy":{"id":"fdae5632-c7d6-5dce-b95f-40b7c96b2a3d","type":"filepolicy","policyType":"CLOUD_LOOKUP_ALL","name":"File_Policy_2","description":"Tifeluw gag hos javfow rubin migapmom zab murizu pi we suvos ar sic zujizut si nah lephaflef.","version":"8009f4f9-d3bd-5991-acc5-c2eb5550c013"},"logFiles":false,"type":"accessrule"},{"id":"f55ec17e-8a16-54f8-a6f2-eb512582e348","version":"9399d9ac-92ff-5808-98cb-105aae7c9ac6","ruleId":23,"name":"Access_Rule_23","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_BOTH","syslogServer":{"id":"09f3a905-0006-55c6-b976-75ae33bc447c","version":"e2c4d03e-07e8-5b55-9078-0ad7e2389d42","host":"166.248.195.69","port":5897,"protocol":"TCP","useManagementInterface":true,"type":"syslogserver"},"sourceZones":[{"id":"9c8667b7-4e34-56df-b092-1340af45b0d2","name":"SecurityZone10Name","description":"Joni gagko ugmucba ogparjad uvre hobneva wete epujein nelgidma kuollum wi gabvanaj sosso.","version":"bc2e044f-1753-51e2-aa7a-ea7362c6b23b","interfaces":[{"mtu":5818,"enabled":false,"description":"Rojsitepo fifgar sovaf ebabovvoj ivjinjig ite sadehtud upazeh dejsabfuv tipgo cosbe femigpi ac aztazta beduw.","id":"fa3dc115-5c3e-51ae-aa38-60ff9abd415a","hardwareName":"GigabitEthernet1/7","macAddress":"55F1.B70C.C1B7","monitorInterface":false,"standbyMacAddress":"B24B.66FA.3266","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"29df:8589:549c:1eef:cc3a:60bf:e04c:3627/32","ipAddress":"afd9:ec18:e2d8:02b5:d0fb:e88c:cea2:e443/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"1a98:7998:35a2:1767:f8b7:fea5:dc50:6a35","ipAddress":"2365:d545:9cd1:ab13:70c3:7177:cd7b:749e"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"135.29.245.249","standbyIpAddress":"74.247.146.212"}},"version":"143d2951-eca6-58fa-b11e-89d0e27b913c","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]},{"mtu":2652,"enabled":false,"description":"Cacfi rijgebpuj hotow vu jisfesgub os biami baajo cimod totufo cajip epkaeg ezeugpek ucifulo huzdeal.","name":"subinterface8name","id":"90da9e2e-5eb1-5d7f-95cf-8759bf36f644","hardwareName":"SubInterface0/8.9","macAddress":"8C77.2E4D.7213","monitorInterface":false,"standbyMacAddress":"32AD.D756.5E62","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"1ca8:b55c:d9ed:3be2:2955:da65:a52c:d0fc/32","ipAddress":"085b:3c0e:113f:ccef:6d12:cb57:ef1d:431d/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"3025:32ff:78fb:37e2:42a3:8d40:64ee:e93e","ipAddress":"7aea:6aed:7d14:3ac6:df8b:0446:5b7d:f55f"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"225.196.76.214","standbyIpAddress":"62.250.115.23"}},"version":"4e59e028-4b81-5f28-9fbf-6033fd2394b8","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}},{"id":"83e3721c-b23f-5eb1-b660-40655c216680","name":"SecurityZone9Name","description":"Iha kiuh ja iweacce tuh hajmipjuj fikufuv bofijwi esede tu gahak wenab belif lupilsif udo puzabke ferfa ofwon.","version":"17150a55-f982-526f-aa60-9e435d2c5455","interfaces":[{"mtu":5818,"enabled":true,"description":"Wabjenuv vuhtevguf zucce omiogu anitug cuho gaejma vesumob oduuro levhid uniozwej olkavcuv dawiim mehub wuka suj.","id":"3faf4981-2b04-5091-9c1f-fa0ab78379b4","hardwareName":"GigabitEthernet1/5","macAddress":"7472.5071.519E","monitorInterface":false,"standbyMacAddress":"5387.1EFE.E0E6","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"84c0:cd09:bceb:ce0c:5cfa:f535:d426:01db/32","ipAddress":"067a:e7f9:1bf0:6af4:b89b:4c11:ec0c:51b4/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"02eb:e82a:bb44:e0a0:d969:6055:6744:cfa2","ipAddress":"aa33:0271:1f23:9725:0d24:7767:0fd2:0cf8"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"6.124.202.116","standbyIpAddress":"40.108.171.23"}},"version":"472d2c22-e548-5cb1-983f-f81ee3e14422","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]},{"mtu":5818,"enabled":true,"description":"Dib wohomfa it firasugu joev ge nu dab caejuja ba no owezru rijbofnuv da ren.","name":"outside","id":"056580af-b7b5-5ea4-9434-84acde7b7b2b","hardwareName":"GigabitEthernet1/2","macAddress":"B807.AD9D.0E4C","monitorInterface":false,"standbyMacAddress":"8F66.A03C.5C85","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"398d:4979:fd8c:5c79:130d:af73:39ac:575b/32","ipAddress":"0e08:b1ea:5a22:75ba:8e01:eaed:3442:684c/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"264c:f9d4:85a8:fdee:b56d:4b03:96d7:6285","ipAddress":"d0f4:3235:0882:22a2:f8c8:c2db:683c:9639"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"178.90.249.165","standbyIpAddress":"41.101.191.177"}},"version":"53c69bde-efdf-5307-96bb-1d0c92bec9a5","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"PASSIVE","type":"physicalinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}}],"destinationZones":[{"id":"e960df5e-1ab8-5a15-85e5-a7a47f0ebcb0","name":"SecurityZone5Name","description":"Kinen aziheeci teniow ucezaw idikaki rupbu tieb rawihzec ufkedok iwewun le zihpisze vuzip roetjim fokbuwu jemrumvu cigzet.","version":"0925128c-48f1-552e-8507-379551253d9c","interfaces":[{"mtu":2652,"enabled":true,"description":"Hi vihjuup vueji zufmab wib zel woz ligok wu hi iremouto wahoato.","name":"subinterface5name","id":"9f816351-560c-5e5b-ba0a-2051828301e6","hardwareName":"SubInterface0/5.6","macAddress":"84F0.8C6A.D6DF","monitorInterface":true,"standbyMacAddress":"0971.695D.7024","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"e20a:2b14:aecc:7997:984d:9fcd:b3c4:2e66/32","ipAddress":"5753:596d:3c86:ab69:1e26:fa83:c032:8e71/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"44d8:5ccd:bbcd:60df:d35b:afb7:6211:375b","ipAddress":"7b7c:0b52:9938:5274:ef02:b8c5:577c:5028"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"119.148.92.111","standbyIpAddress":"106.21.74.31"}},"version":"7a7c4c69-3da2-5e43-a1f3-2f8026bfb0bd","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"sourceNetworks":[{"id":"73ee665b-fbee-563d-92d0-c41d4e5fb7f2","name":"Network2","description":"Wavfu uk unlofu daefi ow fi te zebnah abaco so lodtiw kijeh upzesin kew zo eg.","version":"d5877fad-91a9-5848-95bd-509fc9538ec7","type":"networkobject","subType":"NETWORK","value":"166.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":false}},{"id":"c1e8dd5a-a13d-5bcd-8db1-d7895b9a9f3a","name":"Network7","description":"Ehe jeep mijwamad kohi ifegujzek tednadcat dewian tuzdum ripi wondoh woh cugi masal.","version":"dc274636-d6d4-590e-b68f-5cc0d313f41b","type":"networkobject","subType":"NETWORK","value":"71.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"3874f4b6-8aea-56e2-8943-0d7804be6180","name":"Geolocation13","description":"Ufijaduj kodzoc epejeh dutab cuibaem jinboge kagnohip pihmarzi hotibsi uluuz sobgeke ric pe pepekjuk eksis voc mehrufoje gobogvug.","version":"d637b478-9ec9-5fba-bc9a-efe4cc2c5bd1","type":"geolocation","locations":[{"id":"c7eb60a1-be27-5963-87ac-0c756fe76124","name":"Oceania","deprecated":true,"code":1006,"type":"continent","countries":[{"id":"28993a70-0f71-51a6-bd15-75bbbe151d39","name":"Samoa","deprecated":true,"iso3":"WSM","iso2":"WS","code":"882","type":"country"},{"id":"91d14642-b0c8-57a5-b226-e39b80213360","name":"Wallis and Futuna","deprecated":true,"iso3":"WLF","iso2":"WF","code":"876","type":"country"},{"id":"1f8bd503-8b6b-53b7-91e8-b4f01a87f55d","name":"Vanuatu","deprecated":true,"iso3":"VUT","iso2":"VU","code":"548","type":"country"},{"id":"0822041a-9790-514e-84a5-229c82007d22","name":"U.S. Minor Outlying Islands","deprecated":true,"iso3":"UMI","iso2":"UM","code":"581","type":"country"},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"9442da73-6b47-5cab-8a0b-baa977ec390b","name":"Tonga","deprecated":true,"iso3":"TON","iso2":"TO","code":"776","type":"country"},{"id":"37cfb898-ea93-52c7-bb5e-05b5e6ff3710","name":"East Timor","deprecated":false,"iso3":"TLS","iso2":"TL","code":"626","type":"country"},{"id":"d4c50c5a-d2a1-527e-81d7-b76ab3722771","name":"Tokelau","deprecated":false,"iso3":"TKL","iso2":"TK","code":"772","type":"country"},{"id":"2b6643b8-6fcb-5315-b350-5817c1573ea4","name":"Solomon Islands","deprecated":true,"iso3":"SLB","iso2":"SB","code":"090","type":"country"},{"id":"10a85a47-2aa1-5729-aa4d-cb226f57c280","name":"Palau","deprecated":false,"iso3":"PLW","iso2":"PW","code":"585","type":"country"},{"id":"dd1d13f6-78f2-5a0f-b4ca-ca27972be314","name":"Pitcairn Islands","deprecated":true,"iso3":"PCN","iso2":"PN","code":"612","type":"country"},{"id":"122477fe-9b24-50ed-88db-64565b4cc950","name":"Papua New Guinea","deprecated":false,"iso3":"PNG","iso2":"PG","code":"598","type":"country"},{"id":"642a86d2-e785-5f88-83a1-6b9299dc0cdf","name":"French Polynesia","deprecated":false,"iso3":"PYF","iso2":"PF","code":"258","type":"country"},{"id":"f2d903e0-16b9-5f01-a3dc-854970d49544","name":"New Zealand","deprecated":true,"iso3":"NZL","iso2":"NZ","code":"554","type":"country"},{"id":"643a299d-d43d-5be0-b5eb-4b30867675b1","name":"Niue","deprecated":false,"iso3":"NIU","iso2":"NU","code":"570","type":"country"},{"id":"65295b82-c8fc-5b50-9e20-e8a1ea9c3439","name":"Nauru","deprecated":true,"iso3":"NRU","iso2":"NR","code":"520","type":"country"},{"id":"fe7bb7a6-4c20-526b-a28f-59c99ffb6c79","name":"Norfolk Island","deprecated":true,"iso3":"NFK","iso2":"NF","code":"574","type":"country"},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"6d4a7385-b2b6-578c-b825-f2bae24ad903","name":"Northern Mariana Islands","deprecated":true,"iso3":"MNP","iso2":"MP","code":"580","type":"country"},{"id":"b49ff744-593f-5d86-ac9a-58d2d4e8307e","name":"Marshall Islands","deprecated":true,"iso3":"MHL","iso2":"MH","code":"584","type":"country"},{"id":"ec318859-4ec8-56f2-a06c-f2d23e06516e","name":"Kiribati","deprecated":false,"iso3":"KIR","iso2":"KI","code":"296","type":"country"},{"id":"6fff8b89-01f2-59d9-9a39-bd5a8c525fc9","name":"Guam","deprecated":false,"iso3":"GUM","iso2":"GU","code":"316","type":"country"},{"id":"87ea1078-3291-54f4-85e1-f2d54f97a96d","name":"Micronesia","deprecated":false,"iso3":"FSM","iso2":"FM","code":"583","type":"country"},{"id":"c7a81f83-2cd9-501d-9645-ed4170667b48","name":"Fiji","deprecated":true,"iso3":"FJI","iso2":"FJ","code":"242","type":"country"},{"id":"4343b55a-5fe8-567f-a099-f3d20b53a9cf","name":"Cook Islands","deprecated":true,"iso3":"COK","iso2":"CK","code":"184","type":"country"},{"id":"147f040e-b349-5414-81d3-dae7700c7e81","name":"Australia","deprecated":true,"iso3":"AUS","iso2":"AU","code":"036","type":"country"},{"id":"f3f980b4-9a78-5ff2-b7e7-be91523e3783","name":"American Samoa","deprecated":true,"iso3":"ASM","iso2":"AS","code":"016","type":"country"}],"countryCodes":["882","876","548","581","798","776","626","772","090","585","612","598","258","554","570","520","574","540","580","584","296","316","583","242","184","036","016"]},{"id":"d6f6aa91-7e0d-5137-abbf-328cc779888c","name":"Antarctica","deprecated":true,"code":1004,"type":"continent","countries":[{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"3358686b-4139-5062-b3a1-e838d19918cf","name":"Heard Island and McDonald Islands","deprecated":true,"iso3":"HMD","iso2":"HM","code":"334","type":"country"},{"id":"ba4897cd-087a-5292-b1be-d3a00a7f26bb","name":"South Georgia and the South Sandwich Islands","deprecated":true,"iso3":"SGS","iso2":"GS","code":"239","type":"country"},{"id":"fa4cea3e-1888-5481-9934-8f815bc26857","name":"Bouvet Island","deprecated":true,"iso3":"BVT","iso2":"BV","code":"074","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"}],"countryCodes":["260","334","239","074","010"]},{"id":"3e0ee5a1-a07b-52c0-b62c-a470c4269802","name":"Italy","deprecated":false,"iso3":"ITA","iso2":"IT","code":"380","type":"country"},{"id":"c73e21a5-7336-58ba-9d53-a3d2eb1e1fdd","name":"Chile","deprecated":true,"iso3":"CHL","iso2":"CL","code":"152","type":"country"},{"id":"8701b229-f2cb-5873-9ad8-d4f15407cd99","name":"Panama","deprecated":true,"iso3":"PAN","iso2":"PA","code":"591","type":"country"},{"id":"23a4cd6d-3738-547b-9e3a-82d60efe6864","name":"Egypt","deprecated":true,"iso3":"EGY","iso2":"EG","code":"818","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"}]}],"destinationNetworks":[{"id":"73ee665b-fbee-563d-92d0-c41d4e5fb7f2","name":"Network2","description":"Wavfu uk unlofu daefi ow fi te zebnah abaco so lodtiw kijeh upzesin kew zo eg.","version":"d5877fad-91a9-5848-95bd-509fc9538ec7","type":"networkobject","subType":"NETWORK","value":"166.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":false}},{"id":"c1e8dd5a-a13d-5bcd-8db1-d7895b9a9f3a","name":"Network7","description":"Ehe jeep mijwamad kohi ifegujzek tednadcat dewian tuzdum ripi wondoh woh cugi masal.","version":"dc274636-d6d4-590e-b68f-5cc0d313f41b","type":"networkobject","subType":"NETWORK","value":"71.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"3874f4b6-8aea-56e2-8943-0d7804be6180","name":"Geolocation13","description":"Ufijaduj kodzoc epejeh dutab cuibaem jinboge kagnohip pihmarzi hotibsi uluuz sobgeke ric pe pepekjuk eksis voc mehrufoje gobogvug.","version":"d637b478-9ec9-5fba-bc9a-efe4cc2c5bd1","type":"geolocation","locations":[{"id":"c7eb60a1-be27-5963-87ac-0c756fe76124","name":"Oceania","deprecated":true,"code":1006,"type":"continent","countries":[{"id":"28993a70-0f71-51a6-bd15-75bbbe151d39","name":"Samoa","deprecated":true,"iso3":"WSM","iso2":"WS","code":"882","type":"country"},{"id":"91d14642-b0c8-57a5-b226-e39b80213360","name":"Wallis and Futuna","deprecated":true,"iso3":"WLF","iso2":"WF","code":"876","type":"country"},{"id":"1f8bd503-8b6b-53b7-91e8-b4f01a87f55d","name":"Vanuatu","deprecated":true,"iso3":"VUT","iso2":"VU","code":"548","type":"country"},{"id":"0822041a-9790-514e-84a5-229c82007d22","name":"U.S. Minor Outlying Islands","deprecated":true,"iso3":"UMI","iso2":"UM","code":"581","type":"country"},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"9442da73-6b47-5cab-8a0b-baa977ec390b","name":"Tonga","deprecated":true,"iso3":"TON","iso2":"TO","code":"776","type":"country"},{"id":"37cfb898-ea93-52c7-bb5e-05b5e6ff3710","name":"East Timor","deprecated":false,"iso3":"TLS","iso2":"TL","code":"626","type":"country"},{"id":"d4c50c5a-d2a1-527e-81d7-b76ab3722771","name":"Tokelau","deprecated":false,"iso3":"TKL","iso2":"TK","code":"772","type":"country"},{"id":"2b6643b8-6fcb-5315-b350-5817c1573ea4","name":"Solomon Islands","deprecated":true,"iso3":"SLB","iso2":"SB","code":"090","type":"country"},{"id":"10a85a47-2aa1-5729-aa4d-cb226f57c280","name":"Palau","deprecated":false,"iso3":"PLW","iso2":"PW","code":"585","type":"country"},{"id":"dd1d13f6-78f2-5a0f-b4ca-ca27972be314","name":"Pitcairn Islands","deprecated":true,"iso3":"PCN","iso2":"PN","code":"612","type":"country"},{"id":"122477fe-9b24-50ed-88db-64565b4cc950","name":"Papua New Guinea","deprecated":false,"iso3":"PNG","iso2":"PG","code":"598","type":"country"},{"id":"642a86d2-e785-5f88-83a1-6b9299dc0cdf","name":"French Polynesia","deprecated":false,"iso3":"PYF","iso2":"PF","code":"258","type":"country"},{"id":"f2d903e0-16b9-5f01-a3dc-854970d49544","name":"New Zealand","deprecated":true,"iso3":"NZL","iso2":"NZ","code":"554","type":"country"},{"id":"643a299d-d43d-5be0-b5eb-4b30867675b1","name":"Niue","deprecated":false,"iso3":"NIU","iso2":"NU","code":"570","type":"country"},{"id":"65295b82-c8fc-5b50-9e20-e8a1ea9c3439","name":"Nauru","deprecated":true,"iso3":"NRU","iso2":"NR","code":"520","type":"country"},{"id":"fe7bb7a6-4c20-526b-a28f-59c99ffb6c79","name":"Norfolk Island","deprecated":true,"iso3":"NFK","iso2":"NF","code":"574","type":"country"},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"6d4a7385-b2b6-578c-b825-f2bae24ad903","name":"Northern Mariana Islands","deprecated":true,"iso3":"MNP","iso2":"MP","code":"580","type":"country"},{"id":"b49ff744-593f-5d86-ac9a-58d2d4e8307e","name":"Marshall Islands","deprecated":true,"iso3":"MHL","iso2":"MH","code":"584","type":"country"},{"id":"ec318859-4ec8-56f2-a06c-f2d23e06516e","name":"Kiribati","deprecated":false,"iso3":"KIR","iso2":"KI","code":"296","type":"country"},{"id":"6fff8b89-01f2-59d9-9a39-bd5a8c525fc9","name":"Guam","deprecated":false,"iso3":"GUM","iso2":"GU","code":"316","type":"country"},{"id":"87ea1078-3291-54f4-85e1-f2d54f97a96d","name":"Micronesia","deprecated":false,"iso3":"FSM","iso2":"FM","code":"583","type":"country"},{"id":"c7a81f83-2cd9-501d-9645-ed4170667b48","name":"Fiji","deprecated":true,"iso3":"FJI","iso2":"FJ","code":"242","type":"country"},{"id":"4343b55a-5fe8-567f-a099-f3d20b53a9cf","name":"Cook Islands","deprecated":true,"iso3":"COK","iso2":"CK","code":"184","type":"country"},{"id":"147f040e-b349-5414-81d3-dae7700c7e81","name":"Australia","deprecated":true,"iso3":"AUS","iso2":"AU","code":"036","type":"country"},{"id":"f3f980b4-9a78-5ff2-b7e7-be91523e3783","name":"American Samoa","deprecated":true,"iso3":"ASM","iso2":"AS","code":"016","type":"country"}],"countryCodes":["882","876","548","581","798","776","626","772","090","585","612","598","258","554","570","520","574","540","580","584","296","316","583","242","184","036","016"]},{"id":"d6f6aa91-7e0d-5137-abbf-328cc779888c","name":"Antarctica","deprecated":true,"code":1004,"type":"continent","countries":[{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"3358686b-4139-5062-b3a1-e838d19918cf","name":"Heard Island and McDonald Islands","deprecated":true,"iso3":"HMD","iso2":"HM","code":"334","type":"country"},{"id":"ba4897cd-087a-5292-b1be-d3a00a7f26bb","name":"South Georgia and the South Sandwich Islands","deprecated":true,"iso3":"SGS","iso2":"GS","code":"239","type":"country"},{"id":"fa4cea3e-1888-5481-9934-8f815bc26857","name":"Bouvet Island","deprecated":true,"iso3":"BVT","iso2":"BV","code":"074","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"}],"countryCodes":["260","334","239","074","010"]},{"id":"3e0ee5a1-a07b-52c0-b62c-a470c4269802","name":"Italy","deprecated":false,"iso3":"ITA","iso2":"IT","code":"380","type":"country"},{"id":"c73e21a5-7336-58ba-9d53-a3d2eb1e1fdd","name":"Chile","deprecated":true,"iso3":"CHL","iso2":"CL","code":"152","type":"country"},{"id":"8701b229-f2cb-5873-9ad8-d4f15407cd99","name":"Panama","deprecated":true,"iso3":"PAN","iso2":"PA","code":"591","type":"country"},{"id":"23a4cd6d-3738-547b-9e3a-82d60efe6864","name":"Egypt","deprecated":true,"iso3":"EGY","iso2":"EG","code":"818","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"}]}],"sourcePorts":[{"id":"ff728962-8729-5bce-941c-1730e280dc0b","name":"icmpv6port1","description":"Uh letiof numsu bokewod gosso sowdilid bevliur idseaho vu delale luctid ila givcogev.","version":"9aca9371-12d1-5490-af24-a87e3160146f","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8452,"isSystemDefined":false},{"id":"39c5e145-2ed4-5038-ab20-3c4878437d1d","name":"icmpv6port2","description":"Fajla geffe heseipu tez toluhpap ve uhmoba garoeb ozafuzli suhwof aw likofat erige hentejpi jajaza faztiav osece na.","version":"d4492bb3-d9b0-52fc-acc6-81061c83c6b8","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8267,"isSystemDefined":false}],"destinationPorts":[{"id":"1a4f8032-f665-5045-b0d8-a48b339750d1","name":"tcp_port_2","description":"Ku soguzsi ragibi nupavidag faji kovor ikikov efa ha cozuju inietu daf hif iso.","version":"b6ff8844-fd46-5e03-9ca4-00b7bc8bd936","type":"tcpportobject","port":8189,"isSystemDefined":false},{"id":"b19e16f9-5846-596a-9757-161e7154e68c","name":"tcp_port_1","description":"Ruwus webwepfa fo copoko aligimaj riz zeti bivsu jah ve virip kesnenwer fi wede magbuf ojku sadruh ji.","version":"a90e8fa8-216a-59a4-bce1-da2f92acd1ad","type":"tcpportobject","port":8721,"isSystemDefined":true}],"users":[{"id":"cdaaabcc-950f-5c26-82dc-407ab8ef9fc6","name":"User Group 30","realmName":"borluclumaga","type":"trafficusergroup","realmId":2,"version":"heznapijma"},{"id":"4cfa5549-4e3c-518e-a754-cda57317bbd8","name":"User Group 6","realmName":"mokodozmov","type":"trafficusergroup","realmId":2,"version":"korgepezfa"},{"id":"19329003-b80c-51e0-9c5e-b210e6102c0a","name":"User 34","realmName":"uraapimozocu","type":"trafficuser","realmId":0,"version":"asdebjiat"}],"embeddedAppFilter":{"conditions":[{"filter":"huimezuben","tags":[{"id":"63db3391-02c9-5d1b-b971-5a6427f4c9fe","version":"95d07b80-ad97-50b0-a64b-b279d1420618","appId":5,"name":"ApplicationTag5","description":"Uwano ujeoska rootmaj kammovu ivitarpoh percuk oto bacema da onsevsej jovocoog ge gafed zakas ijwimuf.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"},{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"VERY_HIGH"},{"type":"productivitycondition","productivity":"LOW"},{"type":"productivitycondition","productivity":"HIGH"}],"type":"applicationfiltercondition"},{"filter":"rapfosapi","tags":[{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"415702f2-3bd8-5dba-adea-dd03452067a5","version":"1062501a-214c-51d1-9af3-d9c2ca87588f","appId":4,"name":"ApplicationCategory11","description":"Dubofmih taj cukij fes vizoc urzip lazigeha pot bak jackoaz ufi ebomujme ce.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"HIGH"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"MEDIUM"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"ce7e9199-db5d-5032-a961-448184ab75ae","version":"1e2955c1-3f40-5f65-a370-5019e41f9ecb","name":"ApplicationFilter14","description":"Acadewlot tol nake cabe ra ecvimza dafouvo wiko mipuzol igozat egara vuj hic cugcono juvi ujmid bonlor.","applications":[{"id":"6361bd7f-01c9-5714-baca-035d66f50a8c","version":"50dcdb47-5d21-537f-b3b0-81713bf31c06","description":"Leku luto lofuwec wuwguhot abmofdo cun vuunuvi lulsoteg kivsas mijmi ru kipumeja sacwuwhe gub magumera.","deprecated":false,"appId":5,"productivity":0,"risk":4,"name":"Application5","tagIds":["0b45de63-5252-5257-acf6-ce494cdb905a"],"tags":[{"id":"0b45de63-5252-5257-acf6-ce494cdb905a","version":"9c3ed423-1b8a-5f1f-aae0-a507cc188490","appId":6,"name":"ApplicationTag6","description":"Varejse ji ogouvu rin nubuten bezozmaj coeg zuralse pa zitomgon lu rigugip.","metadata":{"referenced":true},"type":"applicationtag"}],"categoryIds":["7f62abc6-7f08-5a69-acb6-65def01251d4","fff4b47c-a653-5729-a31a-e6353d420768"],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["SERVER","WEBAPP"],"metadata":{"referenced":true},"type":"application"},{"id":"ce901dd3-4e85-5bf0-a273-2018d76527c8","version":"84a4f0c6-57b3-50f3-bf20-0cf68bbbb806","description":"Gipus bovawge vel ceoziwo nuim ehdifir nowe onoli atsewav irfer semowi ge turos mufo tahukca jaz.","deprecated":true,"appId":5,"productivity":0,"risk":2,"name":"Application2","tagIds":["58edda62-c97b-56e5-9e6c-32926f4d3009"],"tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["1323d445-72c0-5d8b-9f58-c223feb51bac","328094ea-7b95-58e5-a2de-09018514e679"],"categories":[{"id":"1323d445-72c0-5d8b-9f58-c223feb51bac","version":"f85374d2-b1c5-5e65-b746-77dc6a21decb","appId":7,"name":"ApplicationCategory14","description":"Ohoad agoteveto irewomi adizogo lurtoop tizesuca himewwak poftoj cow nunapivif cisge pe hi raam hatdunze.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"328094ea-7b95-58e5-a2de-09018514e679","version":"a9f6d6f5-e2ce-5a1b-8c7f-1a5ba3c375b4","appId":4,"name":"ApplicationCategory1","description":"Pilooru amavudek uhzidkah sieha duhni ikfo celrid az ocolu loplun buj nodlial do ahme henacava so ecevega wemtumacu.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["CLIENT","WEBAPP"],"metadata":{"referenced":false},"type":"application"}],"conditions":[{"filter":"detfaodvej","tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"CRITICAL"}],"applicationTypes":[{"type":"typecondition","applicationType":"CLIENT"},{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"MEDIUM"},{"type":"productivitycondition","productivity":"VERY_HIGH"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":true},"type":"applicationfilter"}],"applications":[{"id":"c51fa076-7516-5b1a-b689-87d5d4dd6656","version":"71b129f0-e504-5ee0-85b0-3d683c7fbc85","description":"Fishak luksa juw magaldi igo kaipojo vifpok jarado fefadkiw keogo mow kojepoha bonewke hobomag vo gi om tam.","deprecated":false,"appId":4,"productivity":1,"risk":3,"name":"Application4","tagIds":["58edda62-c97b-56e5-9e6c-32926f4d3009","63db3391-02c9-5d1b-b971-5a6427f4c9fe"],"tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"63db3391-02c9-5d1b-b971-5a6427f4c9fe","version":"95d07b80-ad97-50b0-a64b-b279d1420618","appId":5,"name":"ApplicationTag5","description":"Uwano ujeoska rootmaj kammovu ivitarpoh percuk oto bacema da onsevsej jovocoog ge gafed zakas ijwimuf.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["794d6605-f5d9-5f26-b11d-507eac471889","33552c21-0930-5bb5-8459-9b7608cda68e"],"categories":[{"id":"794d6605-f5d9-5f26-b11d-507eac471889","version":"20176f07-7d98-5dd7-8a17-de688ee66220","appId":1,"name":"ApplicationCategory3","description":"Woc ved ecu hin potalbib la uweerabof mato dewahmo avutji wose pujda tunoduz ucu ho zopusno lo mu.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"33552c21-0930-5bb5-8459-9b7608cda68e","version":"73578557-169e-5431-99f4-4a87fb56d57c","appId":4,"name":"ApplicationCategory9","description":"Tir upwul taf foj igonas mawejus ba ni loj racwu pu nelkal gofifun zemcuz ut.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["CLIENT","WEBAPP"],"metadata":{"referenced":false},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"ef71cd89-a0fc-5994-aaff-0f427dff92fa","version":"pugvagpugmi","name":"UrlGroup5","description":"Muhzipil korezoki kuwelas fojulcud jum ineteig ob zeluc mekpufes api ajnovawa ro tadi.","objects":[{"id":"0776578c-c6ee-58a3-91de-7d50b64343b8","version":"bimupair","name":"Url7","description":"Mer komad cozmersul el gaze fupfod gij pikukkop kavimgen befowez guwojo bikpogezu ice niruvpo ganal ovo taun.","url":"http://difepfel.io/ovcekwe","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlCategory":{"id":"a7bc6deb-1544-59dd-b3c9-f0ff4f94d9aa","version":"46f1e31b-7fee-54bc-a10f-54e97745d47f","name":"UrlCategory-15","deprecated":false,"urlCategoryId":15,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"intrusionPolicy":{"id":"a47cb8f5-fe55-11e4-8e99-ipsN30","name":"Security Over Connectivity","links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN30"},"rules":{"links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN30/rules/"}},"description":"Security Over Connectivity Layer","type":"intrusionpolicy","version":"fc826c33-84fb-5b14-96e5-0cdd4717c442"},"filePolicy":{"id":"e5f42e5a-0e3d-5492-ad97-1db09ef14605","type":"filepolicy","policyType":"BLOCK_OFFICE_DOCUMENTS_UPLOAD_BLOCK_MALWARE_OTHERS","name":"File_Policy_4","description":"Ju ihgufnaj ve gargeoz unatub asiuj ra dag pino jecob ane luno mubud emapod.","version":"55282093-0a9c-5a43-89ed-3d9b9c708952"},"logFiles":false,"type":"accessrule"},{"id":"cf9d5435-2c8c-57cb-9459-4f9207cdaaad","version":"bc5446cb-dad0-5898-9f01-6366253039f7","ruleId":24,"name":"Access_Rule_24","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_NONE","sourceZones":[{"id":"340bf250-a4a5-5049-bddf-a6201a9b8e86","name":"SecurityZone7Name","description":"So gitejipo sotvotdab watu la ica fojum dorog odohog mil etuw ta daghavke dig.","version":"273d67ab-abb9-5af1-8574-3e9af6e98aed","interfaces":[{"mtu":2652,"enabled":false,"description":"Wa cep gi lankowtu ce uvujed tad wo vezke vib vezvufgev hun vob velumde.","name":"subinterface11name","id":"ffc74b4d-ad27-5459-9907-186a8c739189","hardwareName":"SubInterface0/11.12","macAddress":"1534.AB09.4146","monitorInterface":true,"standbyMacAddress":"CF72.BDFB.98A1","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"fafb:559d:106d:67ac:52dd:e182:d306:4792/32","ipAddress":"a7bd:69ea:f24f:04ea:40c5:3f80:0416:0f09/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d544:6d26:411c:e460:9911:cb8b:ca9e:3a15","ipAddress":"f96f:858d:9ed1:fc9f:7b47:0fb4:246d:6cb6"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"17.76.225.83","standbyIpAddress":"195.253.157.229"}},"version":"e22e21d2-9d64-51a4-adc2-a775a4572916","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}},{"id":"aff2c9fc-0b0e-58f4-b418-5ccd970fd67f","name":"SecurityZone11Name","description":"Nued mos di majri nih ebhebe desalu ivif novrove razjihew kepfa okforec lajatet sifu fa.","version":"d334e386-a53c-5345-9181-d20421a28e34","interfaces":[{"mtu":5818,"enabled":true,"description":"Ke vuhdojos zudgopa seto bere refcengo he camohpik pir risvup pum omhos zalpe sukjo rufe.","id":"2cf6e4b9-0bf0-5d7d-9110-6ab397d400a4","hardwareName":"GigabitEthernet1/4","macAddress":"0ABE.1A2F.DC3A","monitorInterface":false,"standbyMacAddress":"6057.AC6B.C47F","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"6d9d:2a5c:831a:6482:0268:e3fe:244e:1c1c/32","ipAddress":"c4fb:ea12:d0f3:42e4:10ed:e3f4:8e5a:6c9a/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"77f1:3852:307c:1449:a914:b786:3831:5ed1","ipAddress":"9eee:0707:2706:edd3:22f1:30d5:52f1:39fb"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"51.99.206.42","standbyIpAddress":"138.81.67.160"}},"version":"365fb3c7-62eb-5a7d-a412-b1cb7a387375","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"destinationZones":[{"id":"e12d0a2e-afc7-53cb-85e7-38aa135de327","name":"SecurityZone13Name","description":"Do tewuznas ucait mad ziwgef iw unjup guzov dize guzut vibuk anpekpib nerviw ip ijpa koruf.","version":"09dc0dd3-4a94-5cf2-9efb-89a0f352e003","interfaces":[{"mtu":2652,"enabled":true,"description":"Agi pobjotu zukac rive putsi herima mepues ezijo wicimub utjamoj noskavup wupoje ra dujipale.","name":"subinterface2name","id":"353dee59-d2b6-5df6-9b8e-4f444b489176","hardwareName":"SubInterface0/2.3","macAddress":"EDB8.12E9.D2DB","monitorInterface":false,"standbyMacAddress":"5667.5103.F034","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"2647:2aea:3fdf:b4cc:6433:554a:6ab5:c594/32","ipAddress":"04f0:7320:ae63:ce9f:664b:c7e3:8867:daa9/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"3d77:5e5d:78ec:d370:2293:4026:1bbb:aee3","ipAddress":"e6eb:6fef:da47:e1c1:1523:464b:1cab:92a1"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"96.88.118.226","standbyIpAddress":"17.135.120.105"}},"version":"82ce2f08-42bf-5b19-bbbb-0c4ef276caa0","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"sourceNetworks":[{"id":"929d7320-9aa2-52c7-b853-76aae05eef6b","name":"Network8","description":"Todviad wi vuckivna otkot nevaiz divu caszi fezmirera tumhugej muv bi vedohile.","version":"cf69d58a-8e9c-52c5-af3f-f3d5f88cd456","type":"networkobject","subType":"HOST","value":"6804:d23a:5056:cdbd:dc9f:9d53:1cf7:f368","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"884f239a-2976-5e8e-9cb5-5aeb31fc1554","name":"Network15","description":"Rad ladfevhez vucvibbu omeheh hi rulsusva nut diw sikeznag ehazelu witam tocrah irca wavegezi na nidmimle.","version":"7c7865f0-2dcd-5833-a31b-7fe684b3c2ff","type":"networkobject","subType":"HOST","value":"80.87.24.187","isSystemDefined":false,"metadata":{"referenced":false}},{"id":"5a766770-58da-53fa-b75a-e192251ed737","name":"Geolocation15","description":"Gu titlu ginpokiv li tetzu cihet bov ir of ka gap osu zujoibi wilkub gaw vinaci luho.","version":"c930d743-98fa-5671-98d8-f0d9a90962a6","type":"geolocation","locations":[{"id":"56ea454f-c3b7-5928-88b1-fc3c7937519a","name":"Africa","deprecated":true,"code":1001,"type":"continent","countries":[{"id":"2dd83d58-9368-513e-8bca-464e074764f6","name":"Zimbabwe","deprecated":true,"iso3":"ZWE","iso2":"ZW","code":"716","type":"country"},{"id":"7cd6bf9c-8b69-57c2-abf6-6eeb0741de15","name":"Zambia","deprecated":true,"iso3":"ZMB","iso2":"ZM","code":"894","type":"country"},{"id":"f2d94483-8127-5b5c-9f56-26897f391615","name":"South Africa","deprecated":false,"iso3":"ZAF","iso2":"ZA","code":"710","type":"country"},{"id":"67312148-f472-5f74-af7e-da0dfe6c5483","name":"Mayotte","deprecated":true,"iso3":"MYT","iso2":"YT","code":"175","type":"country"},{"id":"16d66ae1-8a56-5b81-8a83-6f7123be2e2c","name":"Uganda","deprecated":false,"iso3":"UGA","iso2":"UG","code":"800","type":"country"},{"id":"b1825e78-1df2-5592-a76e-7442de702238","name":"Tanzania","deprecated":false,"iso3":"TZA","iso2":"TZ","code":"834","type":"country"},{"id":"34105ec6-4fd5-5617-8a55-a033b433501b","name":"Tunisia","deprecated":false,"iso3":"TUN","iso2":"TN","code":"788","type":"country"},{"id":"00827e94-7231-522b-a92c-c43381c394b0","name":"Togo","deprecated":true,"iso3":"TGO","iso2":"TG","code":"768","type":"country"},{"id":"5b1f4a78-73fb-5d81-b087-a43e6a56210e","name":"Chad","deprecated":true,"iso3":"TCD","iso2":"TD","code":"148","type":"country"},{"id":"4390d558-ea24-5aab-92ed-7ea167512925","name":"Swaziland","deprecated":false,"iso3":"SWZ","iso2":"SZ","code":"748","type":"country"},{"id":"22e9a10d-c048-5bce-92b3-d35ba32a2380","name":"São Tomé and PrÃncipe","deprecated":false,"iso3":"STP","iso2":"ST","code":"678","type":"country"},{"id":"175e350b-3e7b-5988-92a5-b8592f89a5d0","name":"South Sudan","deprecated":true,"iso3":"SSD","iso2":"SS","code":"728","type":"country"},{"id":"408c17e6-3750-56ba-b74d-14cece756b69","name":"Somalia","deprecated":false,"iso3":"SOM","iso2":"SO","code":"706","type":"country"},{"id":"bed65f83-79ce-514e-a9c2-24bae1906576","name":"Senegal","deprecated":true,"iso3":"SEN","iso2":"SN","code":"686","type":"country"},{"id":"81415c05-a391-5182-8902-0f48ee21358a","name":"Sierra Leone","deprecated":true,"iso3":"SLE","iso2":"SL","code":"694","type":"country"},{"id":"50c46fa0-0451-5e15-9bbc-846a527de114","name":"Saint Helena","deprecated":true,"iso3":"SHN","iso2":"SH","code":"654","type":"country"},{"id":"c2a050bc-b370-5bcd-945c-cd0d88d814ee","name":"Sudan","deprecated":false,"iso3":"SDN","iso2":"SD","code":"729","type":"country"},{"id":"2792902e-5e01-5294-bd39-4a9b86443f69","name":"Seychelles","deprecated":false,"iso3":"SYC","iso2":"SC","code":"690","type":"country"},{"id":"e6e6e19f-26b3-53cc-ae5c-ad6af73ffa23","name":"Rwanda","deprecated":false,"iso3":"RWA","iso2":"RW","code":"646","type":"country"},{"id":"1657adab-03a4-556a-b779-d62bf356497f","name":"Réunion","deprecated":true,"iso3":"REU","iso2":"RE","code":"638","type":"country"},{"id":"db11cb4c-3534-5c9a-bd15-7b41c5b161d6","name":"Nigeria","deprecated":false,"iso3":"NGA","iso2":"NG","code":"566","type":"country"},{"id":"271aded5-deef-50b9-9e02-ec55543da25b","name":"Niger","deprecated":true,"iso3":"NER","iso2":"NE","code":"562","type":"country"},{"id":"a8f12931-d0a3-5ead-b8f7-26c9d8e29684","name":"Namibia","deprecated":false,"iso3":"NAM","iso2":"NA","code":"516","type":"country"},{"id":"f85a38bd-9851-5540-9a47-2bcda221c02f","name":"Mozambique","deprecated":false,"iso3":"MOZ","iso2":"MZ","code":"508","type":"country"},{"id":"26316b70-a4e5-5ee7-9176-d8f88977ac81","name":"Malawi","deprecated":false,"iso3":"MWI","iso2":"MW","code":"454","type":"country"},{"id":"8ac5e628-88fe-5a8f-a8e8-5e9823bed8c9","name":"Mauritius","deprecated":true,"iso3":"MUS","iso2":"MU","code":"480","type":"country"},{"id":"6286246a-cb95-57c8-bf4d-85524e069dc9","name":"Mauritania","deprecated":false,"iso3":"MRT","iso2":"MR","code":"478","type":"country"},{"id":"9eaf4ef5-fcd1-55b8-b344-7b60f9acbb2a","name":"Mali","deprecated":true,"iso3":"MLI","iso2":"ML","code":"466","type":"country"},{"id":"3158c9ea-2e08-5057-923c-a252e9bbceb5","name":"Madagascar","deprecated":true,"iso3":"MDG","iso2":"MG","code":"450","type":"country"},{"id":"b110114a-4903-54d2-8925-cfa66175fc81","name":"Morocco","deprecated":true,"iso3":"MAR","iso2":"MA","code":"504","type":"country"},{"id":"ac567919-9e6f-5712-8ef8-817d2875ae89","name":"Libya","deprecated":false,"iso3":"LBY","iso2":"LY","code":"434","type":"country"},{"id":"b82c039e-20c2-50f0-9176-307e154d19cd","name":"Lesotho","deprecated":true,"iso3":"LSO","iso2":"LS","code":"426","type":"country"},{"id":"936e5855-cede-5036-b530-4a8dc3ded9f1","name":"Liberia","deprecated":true,"iso3":"LBR","iso2":"LR","code":"430","type":"country"},{"id":"781554f5-83af-5829-a0b1-f679ccadcbc8","name":"Comoros","deprecated":true,"iso3":"COM","iso2":"KM","code":"174","type":"country"},{"id":"ef9608a5-3398-5610-9770-361e8f4d5018","name":"Kenya","deprecated":false,"iso3":"KEN","iso2":"KE","code":"404","type":"country"},{"id":"7ff14832-3c58-5e8d-b6fa-7d211d0eddea","name":"Guinea-Bissau","deprecated":true,"iso3":"GNB","iso2":"GW","code":"624","type":"country"},{"id":"24ef0507-02b5-58d8-a403-8087853d0d0e","name":"Equatorial Guinea","deprecated":false,"iso3":"GNQ","iso2":"GQ","code":"226","type":"country"},{"id":"8b2e1fe0-df59-514f-8cad-46e618371f10","name":"Guinea","deprecated":false,"iso3":"GIN","iso2":"GN","code":"324","type":"country"},{"id":"2311d16e-f8c8-5db8-9446-ddc015dee026","name":"Gambia","deprecated":true,"iso3":"GMB","iso2":"GM","code":"270","type":"country"},{"id":"9cbd51af-d825-56f1-b3c3-1412697fe6d8","name":"Ghana","deprecated":true,"iso3":"GHA","iso2":"GH","code":"288","type":"country"},{"id":"1a6265f3-08ce-57c4-9d8d-8807bc7c3f96","name":"Gabon","deprecated":true,"iso3":"GAB","iso2":"GA","code":"266","type":"country"},{"id":"7466e390-4ac7-5c6e-8ae7-cffbf4d26761","name":"Ethiopia","deprecated":false,"iso3":"ETH","iso2":"ET","code":"231","type":"country"},{"id":"1b6630d5-2650-5baf-b9a5-fa59fbbd36be","name":"Eritrea","deprecated":false,"iso3":"ERI","iso2":"ER","code":"232","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"},{"id":"23a4cd6d-3738-547b-9e3a-82d60efe6864","name":"Egypt","deprecated":true,"iso3":"EGY","iso2":"EG","code":"818","type":"country"},{"id":"bd6f190e-df1a-568c-94cc-8fbb7394522f","name":"Algeria","deprecated":false,"iso3":"DZA","iso2":"DZ","code":"012","type":"country"},{"id":"9c992f6e-72f5-5d6b-8fb9-b23909129b08","name":"Djibouti","deprecated":true,"iso3":"DJI","iso2":"DJ","code":"262","type":"country"},{"id":"63696b95-bded-58f4-8b4e-402397cfcd8a","name":"Cape Verde","deprecated":true,"iso3":"CPV","iso2":"CV","code":"132","type":"country"},{"id":"6d854d95-e91f-53cb-a1f2-1e07d51eb137","name":"Cameroon","deprecated":false,"iso3":"CMR","iso2":"CM","code":"120","type":"country"},{"id":"e8286886-6019-50d6-b0b4-315f7b9f2cef","name":"Ivory Coast","deprecated":false,"iso3":"CIV","iso2":"CI","code":"384","type":"country"},{"id":"97916595-e2d1-5214-87e2-e242bf4ad893","name":"Republic of the Congo","deprecated":false,"iso3":"COG","iso2":"CG","code":"178","type":"country"},{"id":"b1b8664b-d80d-5480-9b9a-a1ac997bd533","name":"Central African Republic","deprecated":false,"iso3":"CAF","iso2":"CF","code":"140","type":"country"},{"id":"8789e5fc-90ef-5dc5-942f-1f0f6bef20e2","name":"Democratic Republic of the Congo","deprecated":false,"iso3":"COD","iso2":"CD","code":"180","type":"country"},{"id":"e8bab11d-42db-5ff0-a68d-81d7fdae7000","name":"Botswana","deprecated":false,"iso3":"BWA","iso2":"BW","code":"072","type":"country"},{"id":"74442316-edea-5c33-9f4e-de1677f848a1","name":"Benin","deprecated":true,"iso3":"BEN","iso2":"BJ","code":"204","type":"country"},{"id":"a666ef14-444e-5605-add7-3a1a1bf028d6","name":"Burundi","deprecated":true,"iso3":"BDI","iso2":"BI","code":"108","type":"country"},{"id":"b4bd346d-94ee-5893-8439-83dcc230d37e","name":"Burkina Faso","deprecated":false,"iso3":"BFA","iso2":"BF","code":"854","type":"country"},{"id":"c6218172-7179-5f37-9302-48a0ac1e3082","name":"Angola","deprecated":true,"iso3":"AGO","iso2":"AO","code":"024","type":"country"}],"countryCodes":["716","894","710","175","800","834","788","768","148","748","678","728","706","686","694","654","729","690","646","638","566","562","516","508","454","480","478","466","450","504","434","426","430","174","404","624","226","324","270","288","266","231","232","732","818","012","262","132","120","384","178","140","180","072","204","108","854","024"]},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"0613c448-b6b0-55f9-9ab0-81470a794905","name":"Vatican City","deprecated":false,"iso3":"VAT","iso2":"VA","code":"336","type":"country"},{"id":"ba4897cd-087a-5292-b1be-d3a00a7f26bb","name":"South Georgia and the South Sandwich Islands","deprecated":true,"iso3":"SGS","iso2":"GS","code":"239","type":"country"},{"id":"c16f6991-a7d7-51dc-85d3-43752e0c5d10","name":"Suriname","deprecated":true,"iso3":"SUR","iso2":"SR","code":"740","type":"country"},{"id":"9cd8a90c-1915-51dc-978b-b35c591d11c0","name":"Barbados","deprecated":false,"iso3":"BRB","iso2":"BB","code":"052","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"}]}],"destinationNetworks":[{"id":"929d7320-9aa2-52c7-b853-76aae05eef6b","name":"Network8","description":"Todviad wi vuckivna otkot nevaiz divu caszi fezmirera tumhugej muv bi vedohile.","version":"cf69d58a-8e9c-52c5-af3f-f3d5f88cd456","type":"networkobject","subType":"HOST","value":"6804:d23a:5056:cdbd:dc9f:9d53:1cf7:f368","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"884f239a-2976-5e8e-9cb5-5aeb31fc1554","name":"Network15","description":"Rad ladfevhez vucvibbu omeheh hi rulsusva nut diw sikeznag ehazelu witam tocrah irca wavegezi na nidmimle.","version":"7c7865f0-2dcd-5833-a31b-7fe684b3c2ff","type":"networkobject","subType":"HOST","value":"80.87.24.187","isSystemDefined":false,"metadata":{"referenced":false}},{"id":"5a766770-58da-53fa-b75a-e192251ed737","name":"Geolocation15","description":"Gu titlu ginpokiv li tetzu cihet bov ir of ka gap osu zujoibi wilkub gaw vinaci luho.","version":"c930d743-98fa-5671-98d8-f0d9a90962a6","type":"geolocation","locations":[{"id":"56ea454f-c3b7-5928-88b1-fc3c7937519a","name":"Africa","deprecated":true,"code":1001,"type":"continent","countries":[{"id":"2dd83d58-9368-513e-8bca-464e074764f6","name":"Zimbabwe","deprecated":true,"iso3":"ZWE","iso2":"ZW","code":"716","type":"country"},{"id":"7cd6bf9c-8b69-57c2-abf6-6eeb0741de15","name":"Zambia","deprecated":true,"iso3":"ZMB","iso2":"ZM","code":"894","type":"country"},{"id":"f2d94483-8127-5b5c-9f56-26897f391615","name":"South Africa","deprecated":false,"iso3":"ZAF","iso2":"ZA","code":"710","type":"country"},{"id":"67312148-f472-5f74-af7e-da0dfe6c5483","name":"Mayotte","deprecated":true,"iso3":"MYT","iso2":"YT","code":"175","type":"country"},{"id":"16d66ae1-8a56-5b81-8a83-6f7123be2e2c","name":"Uganda","deprecated":false,"iso3":"UGA","iso2":"UG","code":"800","type":"country"},{"id":"b1825e78-1df2-5592-a76e-7442de702238","name":"Tanzania","deprecated":false,"iso3":"TZA","iso2":"TZ","code":"834","type":"country"},{"id":"34105ec6-4fd5-5617-8a55-a033b433501b","name":"Tunisia","deprecated":false,"iso3":"TUN","iso2":"TN","code":"788","type":"country"},{"id":"00827e94-7231-522b-a92c-c43381c394b0","name":"Togo","deprecated":true,"iso3":"TGO","iso2":"TG","code":"768","type":"country"},{"id":"5b1f4a78-73fb-5d81-b087-a43e6a56210e","name":"Chad","deprecated":true,"iso3":"TCD","iso2":"TD","code":"148","type":"country"},{"id":"4390d558-ea24-5aab-92ed-7ea167512925","name":"Swaziland","deprecated":false,"iso3":"SWZ","iso2":"SZ","code":"748","type":"country"},{"id":"22e9a10d-c048-5bce-92b3-d35ba32a2380","name":"São Tomé and PrÃncipe","deprecated":false,"iso3":"STP","iso2":"ST","code":"678","type":"country"},{"id":"175e350b-3e7b-5988-92a5-b8592f89a5d0","name":"South Sudan","deprecated":true,"iso3":"SSD","iso2":"SS","code":"728","type":"country"},{"id":"408c17e6-3750-56ba-b74d-14cece756b69","name":"Somalia","deprecated":false,"iso3":"SOM","iso2":"SO","code":"706","type":"country"},{"id":"bed65f83-79ce-514e-a9c2-24bae1906576","name":"Senegal","deprecated":true,"iso3":"SEN","iso2":"SN","code":"686","type":"country"},{"id":"81415c05-a391-5182-8902-0f48ee21358a","name":"Sierra Leone","deprecated":true,"iso3":"SLE","iso2":"SL","code":"694","type":"country"},{"id":"50c46fa0-0451-5e15-9bbc-846a527de114","name":"Saint Helena","deprecated":true,"iso3":"SHN","iso2":"SH","code":"654","type":"country"},{"id":"c2a050bc-b370-5bcd-945c-cd0d88d814ee","name":"Sudan","deprecated":false,"iso3":"SDN","iso2":"SD","code":"729","type":"country"},{"id":"2792902e-5e01-5294-bd39-4a9b86443f69","name":"Seychelles","deprecated":false,"iso3":"SYC","iso2":"SC","code":"690","type":"country"},{"id":"e6e6e19f-26b3-53cc-ae5c-ad6af73ffa23","name":"Rwanda","deprecated":false,"iso3":"RWA","iso2":"RW","code":"646","type":"country"},{"id":"1657adab-03a4-556a-b779-d62bf356497f","name":"Réunion","deprecated":true,"iso3":"REU","iso2":"RE","code":"638","type":"country"},{"id":"db11cb4c-3534-5c9a-bd15-7b41c5b161d6","name":"Nigeria","deprecated":false,"iso3":"NGA","iso2":"NG","code":"566","type":"country"},{"id":"271aded5-deef-50b9-9e02-ec55543da25b","name":"Niger","deprecated":true,"iso3":"NER","iso2":"NE","code":"562","type":"country"},{"id":"a8f12931-d0a3-5ead-b8f7-26c9d8e29684","name":"Namibia","deprecated":false,"iso3":"NAM","iso2":"NA","code":"516","type":"country"},{"id":"f85a38bd-9851-5540-9a47-2bcda221c02f","name":"Mozambique","deprecated":false,"iso3":"MOZ","iso2":"MZ","code":"508","type":"country"},{"id":"26316b70-a4e5-5ee7-9176-d8f88977ac81","name":"Malawi","deprecated":false,"iso3":"MWI","iso2":"MW","code":"454","type":"country"},{"id":"8ac5e628-88fe-5a8f-a8e8-5e9823bed8c9","name":"Mauritius","deprecated":true,"iso3":"MUS","iso2":"MU","code":"480","type":"country"},{"id":"6286246a-cb95-57c8-bf4d-85524e069dc9","name":"Mauritania","deprecated":false,"iso3":"MRT","iso2":"MR","code":"478","type":"country"},{"id":"9eaf4ef5-fcd1-55b8-b344-7b60f9acbb2a","name":"Mali","deprecated":true,"iso3":"MLI","iso2":"ML","code":"466","type":"country"},{"id":"3158c9ea-2e08-5057-923c-a252e9bbceb5","name":"Madagascar","deprecated":true,"iso3":"MDG","iso2":"MG","code":"450","type":"country"},{"id":"b110114a-4903-54d2-8925-cfa66175fc81","name":"Morocco","deprecated":true,"iso3":"MAR","iso2":"MA","code":"504","type":"country"},{"id":"ac567919-9e6f-5712-8ef8-817d2875ae89","name":"Libya","deprecated":false,"iso3":"LBY","iso2":"LY","code":"434","type":"country"},{"id":"b82c039e-20c2-50f0-9176-307e154d19cd","name":"Lesotho","deprecated":true,"iso3":"LSO","iso2":"LS","code":"426","type":"country"},{"id":"936e5855-cede-5036-b530-4a8dc3ded9f1","name":"Liberia","deprecated":true,"iso3":"LBR","iso2":"LR","code":"430","type":"country"},{"id":"781554f5-83af-5829-a0b1-f679ccadcbc8","name":"Comoros","deprecated":true,"iso3":"COM","iso2":"KM","code":"174","type":"country"},{"id":"ef9608a5-3398-5610-9770-361e8f4d5018","name":"Kenya","deprecated":false,"iso3":"KEN","iso2":"KE","code":"404","type":"country"},{"id":"7ff14832-3c58-5e8d-b6fa-7d211d0eddea","name":"Guinea-Bissau","deprecated":true,"iso3":"GNB","iso2":"GW","code":"624","type":"country"},{"id":"24ef0507-02b5-58d8-a403-8087853d0d0e","name":"Equatorial Guinea","deprecated":false,"iso3":"GNQ","iso2":"GQ","code":"226","type":"country"},{"id":"8b2e1fe0-df59-514f-8cad-46e618371f10","name":"Guinea","deprecated":false,"iso3":"GIN","iso2":"GN","code":"324","type":"country"},{"id":"2311d16e-f8c8-5db8-9446-ddc015dee026","name":"Gambia","deprecated":true,"iso3":"GMB","iso2":"GM","code":"270","type":"country"},{"id":"9cbd51af-d825-56f1-b3c3-1412697fe6d8","name":"Ghana","deprecated":true,"iso3":"GHA","iso2":"GH","code":"288","type":"country"},{"id":"1a6265f3-08ce-57c4-9d8d-8807bc7c3f96","name":"Gabon","deprecated":true,"iso3":"GAB","iso2":"GA","code":"266","type":"country"},{"id":"7466e390-4ac7-5c6e-8ae7-cffbf4d26761","name":"Ethiopia","deprecated":false,"iso3":"ETH","iso2":"ET","code":"231","type":"country"},{"id":"1b6630d5-2650-5baf-b9a5-fa59fbbd36be","name":"Eritrea","deprecated":false,"iso3":"ERI","iso2":"ER","code":"232","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"},{"id":"23a4cd6d-3738-547b-9e3a-82d60efe6864","name":"Egypt","deprecated":true,"iso3":"EGY","iso2":"EG","code":"818","type":"country"},{"id":"bd6f190e-df1a-568c-94cc-8fbb7394522f","name":"Algeria","deprecated":false,"iso3":"DZA","iso2":"DZ","code":"012","type":"country"},{"id":"9c992f6e-72f5-5d6b-8fb9-b23909129b08","name":"Djibouti","deprecated":true,"iso3":"DJI","iso2":"DJ","code":"262","type":"country"},{"id":"63696b95-bded-58f4-8b4e-402397cfcd8a","name":"Cape Verde","deprecated":true,"iso3":"CPV","iso2":"CV","code":"132","type":"country"},{"id":"6d854d95-e91f-53cb-a1f2-1e07d51eb137","name":"Cameroon","deprecated":false,"iso3":"CMR","iso2":"CM","code":"120","type":"country"},{"id":"e8286886-6019-50d6-b0b4-315f7b9f2cef","name":"Ivory Coast","deprecated":false,"iso3":"CIV","iso2":"CI","code":"384","type":"country"},{"id":"97916595-e2d1-5214-87e2-e242bf4ad893","name":"Republic of the Congo","deprecated":false,"iso3":"COG","iso2":"CG","code":"178","type":"country"},{"id":"b1b8664b-d80d-5480-9b9a-a1ac997bd533","name":"Central African Republic","deprecated":false,"iso3":"CAF","iso2":"CF","code":"140","type":"country"},{"id":"8789e5fc-90ef-5dc5-942f-1f0f6bef20e2","name":"Democratic Republic of the Congo","deprecated":false,"iso3":"COD","iso2":"CD","code":"180","type":"country"},{"id":"e8bab11d-42db-5ff0-a68d-81d7fdae7000","name":"Botswana","deprecated":false,"iso3":"BWA","iso2":"BW","code":"072","type":"country"},{"id":"74442316-edea-5c33-9f4e-de1677f848a1","name":"Benin","deprecated":true,"iso3":"BEN","iso2":"BJ","code":"204","type":"country"},{"id":"a666ef14-444e-5605-add7-3a1a1bf028d6","name":"Burundi","deprecated":true,"iso3":"BDI","iso2":"BI","code":"108","type":"country"},{"id":"b4bd346d-94ee-5893-8439-83dcc230d37e","name":"Burkina Faso","deprecated":false,"iso3":"BFA","iso2":"BF","code":"854","type":"country"},{"id":"c6218172-7179-5f37-9302-48a0ac1e3082","name":"Angola","deprecated":true,"iso3":"AGO","iso2":"AO","code":"024","type":"country"}],"countryCodes":["716","894","710","175","800","834","788","768","148","748","678","728","706","686","694","654","729","690","646","638","566","562","516","508","454","480","478","466","450","504","434","426","430","174","404","624","226","324","270","288","266","231","232","732","818","012","262","132","120","384","178","140","180","072","204","108","854","024"]},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"0613c448-b6b0-55f9-9ab0-81470a794905","name":"Vatican City","deprecated":false,"iso3":"VAT","iso2":"VA","code":"336","type":"country"},{"id":"ba4897cd-087a-5292-b1be-d3a00a7f26bb","name":"South Georgia and the South Sandwich Islands","deprecated":true,"iso3":"SGS","iso2":"GS","code":"239","type":"country"},{"id":"c16f6991-a7d7-51dc-85d3-43752e0c5d10","name":"Suriname","deprecated":true,"iso3":"SUR","iso2":"SR","code":"740","type":"country"},{"id":"9cd8a90c-1915-51dc-978b-b35c591d11c0","name":"Barbados","deprecated":false,"iso3":"BRB","iso2":"BB","code":"052","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"}]}],"sourcePorts":[{"id":"2a40730e-7878-5969-ba53-1d9278cde125","name":"icmpv4port1","description":"Uva ceti behga hetivasu ajbebu rakepe ame ifa aceuriso kejic fucaoti gigvivvo gishelpob jurevmu ov maclefe.","version":"e62c0f51-027e-5a7f-b725-a96162bb7138","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8508,"isSystemDefined":false},{"id":"b19e16f9-5846-596a-9757-161e7154e68c","name":"tcp_port_1","description":"Ruwus webwepfa fo copoko aligimaj riz zeti bivsu jah ve virip kesnenwer fi wede magbuf ojku sadruh ji.","version":"a90e8fa8-216a-59a4-bce1-da2f92acd1ad","type":"tcpportobject","port":8721,"isSystemDefined":true}],"destinationPorts":[{"id":"d0ecb6d1-cc76-58fb-a392-4e9c9537be4c","name":"icmpv4port2","description":"Asci be jutgu wo susadagi woveven bafosjoc ceec wovukiv tati tepav gu za muhhudbi.","version":"54ed4735-cf04-5504-8a5a-2dd0bec3f5a9","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8251,"isSystemDefined":false},{"id":"ff728962-8729-5bce-941c-1730e280dc0b","name":"icmpv6port1","description":"Uh letiof numsu bokewod gosso sowdilid bevliur idseaho vu delale luctid ila givcogev.","version":"9aca9371-12d1-5490-af24-a87e3160146f","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8452,"isSystemDefined":false}],"users":[{"id":"a132a804-ac81-53e7-ab7a-44da58c589e7","name":"User 1","realmName":"bunhatsopmi","type":"trafficuser","realmId":2,"version":"jibinumamu"},{"id":"4cfa5549-4e3c-518e-a754-cda57317bbd8","name":"User Group 6","realmName":"mokodozmov","type":"trafficusergroup","realmId":2,"version":"korgepezfa"},{"id":"5f80ddfc-d664-5a52-96d0-f26819061660","name":"User Group 28","realmName":"vewumnepim","type":"trafficusergroup","realmId":2,"version":"koccuhkasu"}],"embeddedAppFilter":{"conditions":[{"filter":"kazrutivni","tags":[{"id":"f7e90abe-ce71-56da-9f43-dd8685ec1a3a","version":"8b4ad1f1-dab6-5988-a793-c67eb8dbd3ee","appId":1,"name":"ApplicationTag1","description":"Opa zov vek obnam nobbab midzusmow riwehar gufugin mogfuana nairu camu fupim mo hov nizunfej.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"62bc5d56-7e60-5a71-a467-2c4f2a035a06","version":"e7e0ebc9-3a9a-5342-91e9-ae0ce54b3444","appId":12,"name":"ApplicationTag12","description":"Bamiwaga bo kek wawinta ovepozgan tibutef je kezaluk zonwoz fovul aw ter nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"24cd3c21-8c19-531f-81d5-08aca7b587b9","version":"b18c67e8-0f51-5f2c-88a2-11994eea44b1","appId":5,"name":"ApplicationCategory5","description":"Camweg wevovic diowu fi vo kacag vibumjih lus bowi ewatige epewa ecifoder mu gopeges.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"VERY_LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"},{"filter":"detfaodvej","tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"CRITICAL"}],"applicationTypes":[{"type":"typecondition","applicationType":"CLIENT"},{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"MEDIUM"},{"type":"productivitycondition","productivity":"VERY_HIGH"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"d34fc0ae-3694-55ab-9ffc-19c66d834cb7","version":"4743a5f3-7dcb-5b78-afd0-0058ca39da4f","name":"ApplicationFilter8","description":"Putzo vowev ec namhilteg kedo jejes tudidan aju er ke deetopo peug ahi bagnuse bacivvep vosev to.","applications":[{"id":"d2f1b4a3-4704-59c8-9beb-dffb7ed07518","version":"b0a0aecb-aa27-5c7e-af44-3696768ae771","description":"Ruzik dat pimpe kinri teroh so ruwekat kikan fakajoz juk deb vusma iji madbizzoc carpecre moajiwa vojpi.","deprecated":true,"appId":2,"productivity":1,"risk":2,"name":"Application13","tagIds":["9b266171-0bc7-5f71-aa6c-44b8cbafa329"],"tags":[{"id":"9b266171-0bc7-5f71-aa6c-44b8cbafa329","version":"746ac683-b500-5781-b179-f61db662f8d3","appId":9,"name":"ApplicationTag9","description":"Ja lohivap wim saj zuw hinakug tiduze noemo azonimi ici kovaz ikuza wiihboz bubopmin la uge jeko.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["24cd3c21-8c19-531f-81d5-08aca7b587b9"],"categories":[{"id":"24cd3c21-8c19-531f-81d5-08aca7b587b9","version":"b18c67e8-0f51-5f2c-88a2-11994eea44b1","appId":5,"name":"ApplicationCategory5","description":"Camweg wevovic diowu fi vo kacag vibumjih lus bowi ewatige epewa ecifoder mu gopeges.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["CLIENT"],"metadata":{"referenced":true},"type":"application"}],"conditions":[{"filter":"kaibaagiaze","tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"63db3391-02c9-5d1b-b971-5a6427f4c9fe","version":"95d07b80-ad97-50b0-a64b-b279d1420618","appId":5,"name":"ApplicationTag5","description":"Uwano ujeoska rootmaj kammovu ivitarpoh percuk oto bacema da onsevsej jovocoog ge gafed zakas ijwimuf.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"0928e8e9-25a4-53d0-b118-342a26b44100","version":"cccc44d5-b855-569b-90ad-b26d4e3e0c66","appId":7,"name":"ApplicationCategory8","description":"Mifzonu fokero acdu panvo cuvubde tovli maz cawag kaoj gosoojo falkof hezel sig ca vo wak.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"VERY_LOW"},{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"CLIENT"},{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"LOW"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":true},"type":"applicationfilter"}],"applications":[{"id":"8f425fed-eadf-5687-8e75-9b4fe967fcc9","version":"91b94988-c56f-5a96-a552-c943995e0b82","description":"Aduuhi zinco zi larcacha pesu umetouki wet jikoh zu vi ot jelrevap.","deprecated":false,"appId":8,"productivity":3,"risk":3,"name":"Application11","tagIds":["f7e90abe-ce71-56da-9f43-dd8685ec1a3a"],"tags":[{"id":"f7e90abe-ce71-56da-9f43-dd8685ec1a3a","version":"8b4ad1f1-dab6-5988-a793-c67eb8dbd3ee","appId":1,"name":"ApplicationTag1","description":"Opa zov vek obnam nobbab midzusmow riwehar gufugin mogfuana nairu camu fupim mo hov nizunfej.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["5b6fae52-502e-50ff-921a-a7a474f7a857","33552c21-0930-5bb5-8459-9b7608cda68e"],"categories":[{"id":"5b6fae52-502e-50ff-921a-a7a474f7a857","version":"fb5f760a-3774-5c39-b306-9174ad3e3c0a","appId":7,"name":"ApplicationCategory6","description":"Wafekioke nozo tu fazif mef tuve rokpicfab maer cu vaz pibcub ifi so noho wazubta cewsinu hakoj.","metadata":{"referenced":true},"type":"applicationcategory"},{"id":"33552c21-0930-5bb5-8459-9b7608cda68e","version":"73578557-169e-5431-99f4-4a87fb56d57c","appId":4,"name":"ApplicationCategory9","description":"Tir upwul taf foj igonas mawejus ba ni loj racwu pu nelkal gofifun zemcuz ut.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["SERVER"],"metadata":{"referenced":true},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"c8bde3f4-9a21-5a44-80db-baae419148f8","version":"bosavmojgeb","name":"UrlGroup9","description":"Zikaw kozicet agwihul jav eja acniiko hobi mogod ukkem ku irpec zen cijguh dabwuovu je sub.","objects":[{"id":"26cf0d0b-7575-594a-9c3b-9e17d5e24fbf","version":"sipugcocti","name":"Url6","description":"Etna gum cacu tin meehe hu cahfik kus supdeba irlohje hig rizhepzov vi togaofo los dujna her sipu.","url":"http://bejakuru.co.uk/ebkampaw","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlReputation":{"id":"d8b59166-b6ce-5232-a41d-e67269d63bc7","name":"Suspicious sites","index":4,"startPercentage":21,"endPercentage":40,"version":"cf849fee-4718-503d-bccb-a9e5c26d78b6","type":"urlreputation"},"urlCategory":{"id":"3a94fe91-baa1-5666-a509-a616e42f8f66","version":"d7d497cd-7431-59ca-be9a-bff06b1aec95","name":"UrlCategory-5","deprecated":false,"urlCategoryId":5,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"intrusionPolicy":{"id":"a47cb8f6-fe55-11e4-8e99-ipsN10","name":"Connectivity Over Security","links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f6-fe55-11e4-8e99-ipsN10"},"rules":{"links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f6-fe55-11e4-8e99-ipsN10/rules/"}},"description":"Connectivity Over Security Layer","type":"intrusionpolicy","version":"f17dd031-7eba-5f6f-8734-300a871471fe"},"filePolicy":{"id":"fdae5632-c7d6-5dce-b95f-40b7c96b2a3d","type":"filepolicy","policyType":"CLOUD_LOOKUP_ALL","name":"File_Policy_2","description":"Tifeluw gag hos javfow rubin migapmom zab murizu pi we suvos ar sic zujizut si nah lephaflef.","version":"8009f4f9-d3bd-5991-acc5-c2eb5550c013"},"logFiles":false,"type":"accessrule"},{"id":"2618b259-e22c-57e2-a755-d2521adc5ebd","version":"9bc80c91-ff6c-5f9b-9f07-6ac3b152b6e0","ruleId":25,"name":"Access_Rule_25","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_NONE","sourceZones":[{"id":"0453e827-ea9e-5279-b45d-49df10666f7f","name":"SecurityZone14Name","description":"Kojugbel ram kucdowaf dozabace bagi vizlujva ibeali humupici apefin sig wiwdocduw halsoz.","version":"aaaea33f-d703-5f8e-9fb0-8647d4f28f12","interfaces":[{"mtu":2652,"enabled":true,"description":"Dijiz mavajmak suhihi ja piobba vigsasu pulasa heka lus nuapoap gar weuluvaz faf duke sojpov pamdaba juhoflon ugosum.","name":"subinterface4name","id":"80110552-0168-5ca1-9539-159176e34426","hardwareName":"SubInterface0/4.5","macAddress":"1753.227B.5D9A","monitorInterface":false,"standbyMacAddress":"FF7B.C256.4778","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"1bb9:5d4d:1200:c9eb:97ff:589e:edd4:16e4/32","ipAddress":"eaba:377e:f390:0e98:800f:a6a7:5709:6b52/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"5189:1c32:5064:5495:0ecf:92dd:9175:944a","ipAddress":"479b:2e4a:a86f:13c2:425b:1e14:b1a3:ddfd"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"213.34.152.190","standbyIpAddress":"91.47.228.196"}},"version":"8bcf839f-438a-5cd4-99a7-b6f07ab652a0","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Povlulmi maev usma nizguv ve win coocila colo dunde karib wadu ku huhakla kikel gas.","name":"subinterface13name","id":"edd991bd-6b34-5057-9389-003a56e10179","hardwareName":"SubInterface0/13.14","macAddress":"CC55.5B72.5979","monitorInterface":true,"standbyMacAddress":"9F25.7162.695C","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0d43:9009:33b7:805f:2a41:1ed1:0ea0:3cd6/32","ipAddress":"e093:0b7d:4775:c0dc:8433:a3b6:1071:8974/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"bf79:78d0:19ad:cc70:9f5b:5882:e462:ba1d","ipAddress":"5ffa:92d3:6efd:ef6f:c194:ff49:7d28:7d56"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"237.58.152.175","standbyIpAddress":"233.37.45.228"}},"version":"f9997393-39da-5999-bef9-a0aa1c914d96","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}},{"id":"8cb69a8f-7d8d-5f4e-9a4f-f6e717f833ed","name":"SecurityZone3Name","description":"Udanovja dupolo zurepi ufmu ah lezup ba ga jur duvorzu abevabji zil nuikihi wopuw.","version":"dd83a4d5-be23-51f8-9b73-2ae9e26f7d36","interfaces":[{"mtu":2652,"enabled":false,"description":"Efupaf nas ilureg zetikdav emki fafiv tihug orhid zimurfo naferal va ta ug za ur di zetsa ragizike.","name":"subinterface10name","id":"4307a6d5-0ef1-55d4-adc4-0461c31b7eb5","hardwareName":"SubInterface0/10.11","macAddress":"F617.A8F2.5DEB","monitorInterface":true,"standbyMacAddress":"0E24.391A.BFD9","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"c324:084e:8a04:523f:64ec:2b27:9f07:6a8d/32","ipAddress":"0faf:b8b8:7fbe:0d00:facd:c82d:f721:93dd/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"bc90:477f:99f9:ee80:1faa:1f0c:a2a6:77b7","ipAddress":"2d31:24c2:acd3:16b0:d1df:b4b6:763f:48c0"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"250.15.33.10","standbyIpAddress":"254.220.208.229"}},"version":"0f193aa1-ad09-52dd-98e8-eb32e2e61484","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"destinationZones":[{"id":"e12d0a2e-afc7-53cb-85e7-38aa135de327","name":"SecurityZone13Name","description":"Do tewuznas ucait mad ziwgef iw unjup guzov dize guzut vibuk anpekpib nerviw ip ijpa koruf.","version":"09dc0dd3-4a94-5cf2-9efb-89a0f352e003","interfaces":[{"mtu":2652,"enabled":true,"description":"Agi pobjotu zukac rive putsi herima mepues ezijo wicimub utjamoj noskavup wupoje ra dujipale.","name":"subinterface2name","id":"353dee59-d2b6-5df6-9b8e-4f444b489176","hardwareName":"SubInterface0/2.3","macAddress":"EDB8.12E9.D2DB","monitorInterface":false,"standbyMacAddress":"5667.5103.F034","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"2647:2aea:3fdf:b4cc:6433:554a:6ab5:c594/32","ipAddress":"04f0:7320:ae63:ce9f:664b:c7e3:8867:daa9/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"3d77:5e5d:78ec:d370:2293:4026:1bbb:aee3","ipAddress":"e6eb:6fef:da47:e1c1:1523:464b:1cab:92a1"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"96.88.118.226","standbyIpAddress":"17.135.120.105"}},"version":"82ce2f08-42bf-5b19-bbbb-0c4ef276caa0","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"sourceNetworks":[{"id":"4e22d897-4214-5a59-adc0-a40ee1363e10","name":"Network5","description":"Kug viuheci tiwihu iberaw rolo januke huwefi jik labam lurepi be nioc ikime.","version":"880073f6-ecc1-5e1e-a50e-625fb47bbcf9","type":"networkobject","subType":"HOST","value":"51ef:0dda:2b5c:2260:6fc7:e9c3:7507:80fe","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"b483d38e-bce7-5bb7-9769-57ec8151bd4f","name":"Network12","description":"Tikafnaz lujis rirunuf sehi ubfewe kabhili zota funfof zagujnuf mel ejejegto fihjunmu ma funah va.","version":"3132162a-9791-5f26-9146-79add126c19f","type":"networkobject","subType":"NETWORK","value":"23.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"eb6bb0a1-cecb-55ba-8f96-9656ef090bfd","name":"Geolocation10","description":"Ziwe tukina pubki ifro winwo fo piog roswuife to ugouj zer dula haip ju.","version":"06ed679a-dbbb-5eb6-a535-ecc514c1a364","type":"geolocation","locations":[{"id":"c7eb60a1-be27-5963-87ac-0c756fe76124","name":"Oceania","deprecated":true,"code":1006,"type":"continent","countries":[{"id":"28993a70-0f71-51a6-bd15-75bbbe151d39","name":"Samoa","deprecated":true,"iso3":"WSM","iso2":"WS","code":"882","type":"country"},{"id":"91d14642-b0c8-57a5-b226-e39b80213360","name":"Wallis and Futuna","deprecated":true,"iso3":"WLF","iso2":"WF","code":"876","type":"country"},{"id":"1f8bd503-8b6b-53b7-91e8-b4f01a87f55d","name":"Vanuatu","deprecated":true,"iso3":"VUT","iso2":"VU","code":"548","type":"country"},{"id":"0822041a-9790-514e-84a5-229c82007d22","name":"U.S. Minor Outlying Islands","deprecated":true,"iso3":"UMI","iso2":"UM","code":"581","type":"country"},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"9442da73-6b47-5cab-8a0b-baa977ec390b","name":"Tonga","deprecated":true,"iso3":"TON","iso2":"TO","code":"776","type":"country"},{"id":"37cfb898-ea93-52c7-bb5e-05b5e6ff3710","name":"East Timor","deprecated":false,"iso3":"TLS","iso2":"TL","code":"626","type":"country"},{"id":"d4c50c5a-d2a1-527e-81d7-b76ab3722771","name":"Tokelau","deprecated":false,"iso3":"TKL","iso2":"TK","code":"772","type":"country"},{"id":"2b6643b8-6fcb-5315-b350-5817c1573ea4","name":"Solomon Islands","deprecated":true,"iso3":"SLB","iso2":"SB","code":"090","type":"country"},{"id":"10a85a47-2aa1-5729-aa4d-cb226f57c280","name":"Palau","deprecated":false,"iso3":"PLW","iso2":"PW","code":"585","type":"country"},{"id":"dd1d13f6-78f2-5a0f-b4ca-ca27972be314","name":"Pitcairn Islands","deprecated":true,"iso3":"PCN","iso2":"PN","code":"612","type":"country"},{"id":"122477fe-9b24-50ed-88db-64565b4cc950","name":"Papua New Guinea","deprecated":false,"iso3":"PNG","iso2":"PG","code":"598","type":"country"},{"id":"642a86d2-e785-5f88-83a1-6b9299dc0cdf","name":"French Polynesia","deprecated":false,"iso3":"PYF","iso2":"PF","code":"258","type":"country"},{"id":"f2d903e0-16b9-5f01-a3dc-854970d49544","name":"New Zealand","deprecated":true,"iso3":"NZL","iso2":"NZ","code":"554","type":"country"},{"id":"643a299d-d43d-5be0-b5eb-4b30867675b1","name":"Niue","deprecated":false,"iso3":"NIU","iso2":"NU","code":"570","type":"country"},{"id":"65295b82-c8fc-5b50-9e20-e8a1ea9c3439","name":"Nauru","deprecated":true,"iso3":"NRU","iso2":"NR","code":"520","type":"country"},{"id":"fe7bb7a6-4c20-526b-a28f-59c99ffb6c79","name":"Norfolk Island","deprecated":true,"iso3":"NFK","iso2":"NF","code":"574","type":"country"},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"6d4a7385-b2b6-578c-b825-f2bae24ad903","name":"Northern Mariana Islands","deprecated":true,"iso3":"MNP","iso2":"MP","code":"580","type":"country"},{"id":"b49ff744-593f-5d86-ac9a-58d2d4e8307e","name":"Marshall Islands","deprecated":true,"iso3":"MHL","iso2":"MH","code":"584","type":"country"},{"id":"ec318859-4ec8-56f2-a06c-f2d23e06516e","name":"Kiribati","deprecated":false,"iso3":"KIR","iso2":"KI","code":"296","type":"country"},{"id":"6fff8b89-01f2-59d9-9a39-bd5a8c525fc9","name":"Guam","deprecated":false,"iso3":"GUM","iso2":"GU","code":"316","type":"country"},{"id":"87ea1078-3291-54f4-85e1-f2d54f97a96d","name":"Micronesia","deprecated":false,"iso3":"FSM","iso2":"FM","code":"583","type":"country"},{"id":"c7a81f83-2cd9-501d-9645-ed4170667b48","name":"Fiji","deprecated":true,"iso3":"FJI","iso2":"FJ","code":"242","type":"country"},{"id":"4343b55a-5fe8-567f-a099-f3d20b53a9cf","name":"Cook Islands","deprecated":true,"iso3":"COK","iso2":"CK","code":"184","type":"country"},{"id":"147f040e-b349-5414-81d3-dae7700c7e81","name":"Australia","deprecated":true,"iso3":"AUS","iso2":"AU","code":"036","type":"country"},{"id":"f3f980b4-9a78-5ff2-b7e7-be91523e3783","name":"American Samoa","deprecated":true,"iso3":"ASM","iso2":"AS","code":"016","type":"country"}],"countryCodes":["882","876","548","581","798","776","626","772","090","585","612","598","258","554","570","520","574","540","580","584","296","316","583","242","184","036","016"]},{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"4adcb40c-5d55-5860-97b6-ebac58830a04","name":"Croatia","deprecated":true,"iso3":"HRV","iso2":"HR","code":"191","type":"country"},{"id":"3358686b-4139-5062-b3a1-e838d19918cf","name":"Heard Island and McDonald Islands","deprecated":true,"iso3":"HMD","iso2":"HM","code":"334","type":"country"},{"id":"e92d8edd-80b3-56dd-bf35-7423b7740c84","name":"Paraguay","deprecated":false,"iso3":"PRY","iso2":"PY","code":"600","type":"country"},{"id":"8701b229-f2cb-5873-9ad8-d4f15407cd99","name":"Panama","deprecated":true,"iso3":"PAN","iso2":"PA","code":"591","type":"country"},{"id":"9cbd51af-d825-56f1-b3c3-1412697fe6d8","name":"Ghana","deprecated":true,"iso3":"GHA","iso2":"GH","code":"288","type":"country"}]}],"destinationNetworks":[{"id":"4e22d897-4214-5a59-adc0-a40ee1363e10","name":"Network5","description":"Kug viuheci tiwihu iberaw rolo januke huwefi jik labam lurepi be nioc ikime.","version":"880073f6-ecc1-5e1e-a50e-625fb47bbcf9","type":"networkobject","subType":"HOST","value":"51ef:0dda:2b5c:2260:6fc7:e9c3:7507:80fe","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"b483d38e-bce7-5bb7-9769-57ec8151bd4f","name":"Network12","description":"Tikafnaz lujis rirunuf sehi ubfewe kabhili zota funfof zagujnuf mel ejejegto fihjunmu ma funah va.","version":"3132162a-9791-5f26-9146-79add126c19f","type":"networkobject","subType":"NETWORK","value":"23.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"eb6bb0a1-cecb-55ba-8f96-9656ef090bfd","name":"Geolocation10","description":"Ziwe tukina pubki ifro winwo fo piog roswuife to ugouj zer dula haip ju.","version":"06ed679a-dbbb-5eb6-a535-ecc514c1a364","type":"geolocation","locations":[{"id":"c7eb60a1-be27-5963-87ac-0c756fe76124","name":"Oceania","deprecated":true,"code":1006,"type":"continent","countries":[{"id":"28993a70-0f71-51a6-bd15-75bbbe151d39","name":"Samoa","deprecated":true,"iso3":"WSM","iso2":"WS","code":"882","type":"country"},{"id":"91d14642-b0c8-57a5-b226-e39b80213360","name":"Wallis and Futuna","deprecated":true,"iso3":"WLF","iso2":"WF","code":"876","type":"country"},{"id":"1f8bd503-8b6b-53b7-91e8-b4f01a87f55d","name":"Vanuatu","deprecated":true,"iso3":"VUT","iso2":"VU","code":"548","type":"country"},{"id":"0822041a-9790-514e-84a5-229c82007d22","name":"U.S. Minor Outlying Islands","deprecated":true,"iso3":"UMI","iso2":"UM","code":"581","type":"country"},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"9442da73-6b47-5cab-8a0b-baa977ec390b","name":"Tonga","deprecated":true,"iso3":"TON","iso2":"TO","code":"776","type":"country"},{"id":"37cfb898-ea93-52c7-bb5e-05b5e6ff3710","name":"East Timor","deprecated":false,"iso3":"TLS","iso2":"TL","code":"626","type":"country"},{"id":"d4c50c5a-d2a1-527e-81d7-b76ab3722771","name":"Tokelau","deprecated":false,"iso3":"TKL","iso2":"TK","code":"772","type":"country"},{"id":"2b6643b8-6fcb-5315-b350-5817c1573ea4","name":"Solomon Islands","deprecated":true,"iso3":"SLB","iso2":"SB","code":"090","type":"country"},{"id":"10a85a47-2aa1-5729-aa4d-cb226f57c280","name":"Palau","deprecated":false,"iso3":"PLW","iso2":"PW","code":"585","type":"country"},{"id":"dd1d13f6-78f2-5a0f-b4ca-ca27972be314","name":"Pitcairn Islands","deprecated":true,"iso3":"PCN","iso2":"PN","code":"612","type":"country"},{"id":"122477fe-9b24-50ed-88db-64565b4cc950","name":"Papua New Guinea","deprecated":false,"iso3":"PNG","iso2":"PG","code":"598","type":"country"},{"id":"642a86d2-e785-5f88-83a1-6b9299dc0cdf","name":"French Polynesia","deprecated":false,"iso3":"PYF","iso2":"PF","code":"258","type":"country"},{"id":"f2d903e0-16b9-5f01-a3dc-854970d49544","name":"New Zealand","deprecated":true,"iso3":"NZL","iso2":"NZ","code":"554","type":"country"},{"id":"643a299d-d43d-5be0-b5eb-4b30867675b1","name":"Niue","deprecated":false,"iso3":"NIU","iso2":"NU","code":"570","type":"country"},{"id":"65295b82-c8fc-5b50-9e20-e8a1ea9c3439","name":"Nauru","deprecated":true,"iso3":"NRU","iso2":"NR","code":"520","type":"country"},{"id":"fe7bb7a6-4c20-526b-a28f-59c99ffb6c79","name":"Norfolk Island","deprecated":true,"iso3":"NFK","iso2":"NF","code":"574","type":"country"},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"6d4a7385-b2b6-578c-b825-f2bae24ad903","name":"Northern Mariana Islands","deprecated":true,"iso3":"MNP","iso2":"MP","code":"580","type":"country"},{"id":"b49ff744-593f-5d86-ac9a-58d2d4e8307e","name":"Marshall Islands","deprecated":true,"iso3":"MHL","iso2":"MH","code":"584","type":"country"},{"id":"ec318859-4ec8-56f2-a06c-f2d23e06516e","name":"Kiribati","deprecated":false,"iso3":"KIR","iso2":"KI","code":"296","type":"country"},{"id":"6fff8b89-01f2-59d9-9a39-bd5a8c525fc9","name":"Guam","deprecated":false,"iso3":"GUM","iso2":"GU","code":"316","type":"country"},{"id":"87ea1078-3291-54f4-85e1-f2d54f97a96d","name":"Micronesia","deprecated":false,"iso3":"FSM","iso2":"FM","code":"583","type":"country"},{"id":"c7a81f83-2cd9-501d-9645-ed4170667b48","name":"Fiji","deprecated":true,"iso3":"FJI","iso2":"FJ","code":"242","type":"country"},{"id":"4343b55a-5fe8-567f-a099-f3d20b53a9cf","name":"Cook Islands","deprecated":true,"iso3":"COK","iso2":"CK","code":"184","type":"country"},{"id":"147f040e-b349-5414-81d3-dae7700c7e81","name":"Australia","deprecated":true,"iso3":"AUS","iso2":"AU","code":"036","type":"country"},{"id":"f3f980b4-9a78-5ff2-b7e7-be91523e3783","name":"American Samoa","deprecated":true,"iso3":"ASM","iso2":"AS","code":"016","type":"country"}],"countryCodes":["882","876","548","581","798","776","626","772","090","585","612","598","258","554","570","520","574","540","580","584","296","316","583","242","184","036","016"]},{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"4adcb40c-5d55-5860-97b6-ebac58830a04","name":"Croatia","deprecated":true,"iso3":"HRV","iso2":"HR","code":"191","type":"country"},{"id":"3358686b-4139-5062-b3a1-e838d19918cf","name":"Heard Island and McDonald Islands","deprecated":true,"iso3":"HMD","iso2":"HM","code":"334","type":"country"},{"id":"e92d8edd-80b3-56dd-bf35-7423b7740c84","name":"Paraguay","deprecated":false,"iso3":"PRY","iso2":"PY","code":"600","type":"country"},{"id":"8701b229-f2cb-5873-9ad8-d4f15407cd99","name":"Panama","deprecated":true,"iso3":"PAN","iso2":"PA","code":"591","type":"country"},{"id":"9cbd51af-d825-56f1-b3c3-1412697fe6d8","name":"Ghana","deprecated":true,"iso3":"GHA","iso2":"GH","code":"288","type":"country"}]}],"sourcePorts":[{"id":"34f7bed0-39b1-5064-a6e7-27b5431b2066","name":"udp_port_2","description":"Eji leklo infagziv wut vujapvug avvutu toduj dulnarse ifdo bipujhas ajo vualo efapomiw ge nepe gomhuh.","version":"5785591f-a79c-5ff4-bc82-b3dd6d70a236","type":"udpportobject","port":8830,"isSystemDefined":false},{"id":"5e4d4b4d-706c-5325-b034-896d42bf9087","name":"udp_port_1","description":"Rupkoedo zuv egodid ca buapesug tu mawaduh etaeha pigfa keh it bozute wovi zijuci poscuren ifohhe.","version":"db631abc-32a3-5ca5-8ae5-a3b6f3c8371a","type":"udpportobject","port":8537,"isSystemDefined":true}],"destinationPorts":[{"id":"d0ecb6d1-cc76-58fb-a392-4e9c9537be4c","name":"icmpv4port2","description":"Asci be jutgu wo susadagi woveven bafosjoc ceec wovukiv tati tepav gu za muhhudbi.","version":"54ed4735-cf04-5504-8a5a-2dd0bec3f5a9","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8251,"isSystemDefined":false},{"id":"2a40730e-7878-5969-ba53-1d9278cde125","name":"icmpv4port1","description":"Uva ceti behga hetivasu ajbebu rakepe ame ifa aceuriso kejic fucaoti gigvivvo gishelpob jurevmu ov maclefe.","version":"e62c0f51-027e-5a7f-b725-a96162bb7138","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8508,"isSystemDefined":false}],"users":[{"id":"7c18c328-ff55-51f7-b16b-63f577f00be0","name":"User 27","realmName":"benidweku","type":"trafficuser","realmId":2,"version":"fifbutuhtog"},{"id":"2a2e9055-9f74-576e-adfa-5e1d41558621","name":"User 12","realmName":"acewojurbe","type":"trafficuser","realmId":2,"version":"wigebifar"},{"id":"56333652-27c4-5f8b-a6b4-d6f92023c62f","name":"User Group 27","realmName":"ecfomeov","type":"trafficusergroup","realmId":2,"version":"nemawpopew"}],"embeddedAppFilter":{"conditions":[{"filter":"keludmubluf","tags":[{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"HIGH"}],"applicationTypes":[{"type":"typecondition","applicationType":"CLIENT"},{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"LOW"}],"type":"applicationfiltercondition"},{"filter":"jignorebes","tags":[{"id":"e9812b72-2a36-5146-bce0-b09f876df88d","version":"080dca18-c677-5dd1-8f2f-40555beb4fe4","appId":10,"name":"ApplicationTag10","description":"Viswilo ariuzaf pih wa mul vugavrip rijfon aba kac giicse wolifa cowudzuv vev iztafit.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"0928e8e9-25a4-53d0-b118-342a26b44100","version":"cccc44d5-b855-569b-90ad-b26d4e3e0c66","appId":7,"name":"ApplicationCategory8","description":"Mifzonu fokero acdu panvo cuvubde tovli maz cawag kaoj gosoojo falkof hezel sig ca vo wak.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"MEDIUM"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"},{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"04564350-cd34-5336-b365-6eed136499fb","version":"5b3a3635-a45e-58a8-b08f-031c8b167c39","name":"ApplicationFilter5","description":"Dowvaj dudi lajzezwu huczoak migmeliw omu obcew ri mazaowo gawhal ba ek mamu.","applications":[{"id":"17b348f3-870c-5aa4-bcae-3bfe0f0d061d","version":"7b26e782-fe4b-5259-aa5f-744f5c3f1b22","description":"Tem ac li gagnefro folema no mo tafdis cew vudo wafop ru milis ubuedurur sufbot.","deprecated":true,"appId":2,"productivity":0,"risk":2,"name":"Application8","tagIds":["e9812b72-2a36-5146-bce0-b09f876df88d"],"tags":[{"id":"e9812b72-2a36-5146-bce0-b09f876df88d","version":"080dca18-c677-5dd1-8f2f-40555beb4fe4","appId":10,"name":"ApplicationTag10","description":"Viswilo ariuzaf pih wa mul vugavrip rijfon aba kac giicse wolifa cowudzuv vev iztafit.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["328094ea-7b95-58e5-a2de-09018514e679"],"categories":[{"id":"328094ea-7b95-58e5-a2de-09018514e679","version":"a9f6d6f5-e2ce-5a1b-8c7f-1a5ba3c375b4","appId":4,"name":"ApplicationCategory1","description":"Pilooru amavudek uhzidkah sieha duhni ikfo celrid az ocolu loplun buj nodlial do ahme henacava so ecevega wemtumacu.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["CLIENT","SERVER"],"metadata":{"referenced":true},"type":"application"}],"conditions":[{"filter":"uckupehot","tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"},{"type":"typecondition","applicationType":"CLIENT"}],"productivities":[{"type":"productivitycondition","productivity":"LOW"},{"type":"productivitycondition","productivity":"VERY_HIGH"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":true},"type":"applicationfilter"}],"applications":[{"id":"dca39a3c-23f6-54aa-81d7-ccef34a0cff6","version":"bfc4825b-27f5-57dc-8fef-49ca1e817fa0","description":"Kunew malu alipizdu efezuzo ogulana obir uplimo vikbuw boaf ganehi paetatug cevtal pedlise ig ritkan eva.","deprecated":true,"appId":2,"productivity":2,"risk":2,"name":"Application7","tagIds":["cf4efe76-660c-5a1c-8f49-ad97479def67","f7e90abe-ce71-56da-9f43-dd8685ec1a3a"],"tags":[{"id":"cf4efe76-660c-5a1c-8f49-ad97479def67","version":"4a68850e-91de-55b2-8e73-f94f8260d5f3","appId":14,"name":"ApplicationTag14","description":"Kurjugciv wir dod homa emaro tuzuzab avser lin ginus viskebag mohedoel iznolju dub acenogic kihvot awa.","metadata":{"referenced":true},"type":"applicationtag"},{"id":"f7e90abe-ce71-56da-9f43-dd8685ec1a3a","version":"8b4ad1f1-dab6-5988-a793-c67eb8dbd3ee","appId":1,"name":"ApplicationTag1","description":"Opa zov vek obnam nobbab midzusmow riwehar gufugin mogfuana nairu camu fupim mo hov nizunfej.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["6acda68e-7ae9-5a42-b1ac-b440dcb550dd"],"categories":[{"id":"6acda68e-7ae9-5a42-b1ac-b440dcb550dd","version":"4babca93-368e-5fbf-8029-b65063e54bb9","appId":8,"name":"ApplicationCategory4","description":"Ub vu lujus luputuja mucmoezo didiz forrene buguer ug iwusa tesit mi vusrad welavo zogme vumha.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["CLIENT"],"metadata":{"referenced":true},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"ef71cd89-a0fc-5994-aaff-0f427dff92fa","version":"pugvagpugmi","name":"UrlGroup5","description":"Muhzipil korezoki kuwelas fojulcud jum ineteig ob zeluc mekpufes api ajnovawa ro tadi.","objects":[{"id":"0776578c-c6ee-58a3-91de-7d50b64343b8","version":"bimupair","name":"Url7","description":"Mer komad cozmersul el gaze fupfod gij pikukkop kavimgen befowez guwojo bikpogezu ice niruvpo ganal ovo taun.","url":"http://difepfel.io/ovcekwe","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlReputation":{"id":"cce2faef-905f-518f-b19b-4fafff3c46dc","name":"Benign sites","index":2,"startPercentage":61,"endPercentage":80,"version":"e5912377-b4bf-5c67-86e9-c6a87919444c","type":"urlreputation"},"urlCategory":{"id":"3054fd1f-4d7b-5714-8aa0-b6d1594307f6","version":"352eca96-1735-58d7-98b9-dc6135611e4a","name":"UrlCategory-3","deprecated":false,"urlCategoryId":3,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"filePolicy":{"id":"fdae5632-c7d6-5dce-b95f-40b7c96b2a3d","type":"filepolicy","policyType":"CLOUD_LOOKUP_ALL","name":"File_Policy_2","description":"Tifeluw gag hos javfow rubin migapmom zab murizu pi we suvos ar sic zujizut si nah lephaflef.","version":"8009f4f9-d3bd-5991-acc5-c2eb5550c013"},"logFiles":false,"type":"accessrule"},{"id":"18238e59-f024-5fdc-b267-4f85d0fa5fc3","version":"a676c256-5e28-54ae-b8f5-c56ab189a1d4","ruleId":26,"name":"Access_Rule_26","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_BOTH","syslogServer":{"id":"a58f7f88-bc09-5b27-bdc9-8ad228a931c3","version":"c4030d21-d2ea-5c98-b922-5f81bbfdd10f","host":"228.117.138.170","port":5897,"deviceInterface":{"mtu":5818,"enabled":true,"description":"Setta biwofega af ihi ebele inowo inagiobo nu it fe heivu lijivok.","name":"diagnostic","id":"f7509b61-168c-5d86-9a4c-8d3a2bb23e90","hardwareName":"Management0/0","macAddress":"249A.16A4.5DED","monitorInterface":true,"standbyMacAddress":"06D4.757D.FF06","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0c4e:e907:93c3:ba7a:7842:4899:f454:2a33/32","ipAddress":"41e0:3a60:0ca6:5f1c:cdd5:9c57:4918:682f/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d039:d6f4:278a:cdd3:b9e3:2711:460f:1555","ipAddress":"7e31:6d3f:5bbc:0d7f:4df6:58b9:26a6:d462"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"227.88.54.119","standbyIpAddress":"119.107.19.197"}},"version":"e50dac9e-5493-5760-b5e5-294741f3c409","managementInterface":true,"managementOnly":true,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"},"protocol":"UDP","useManagementInterface":false,"type":"syslogserver"},"sourceZones":[{"id":"e960df5e-1ab8-5a15-85e5-a7a47f0ebcb0","name":"SecurityZone5Name","description":"Kinen aziheeci teniow ucezaw idikaki rupbu tieb rawihzec ufkedok iwewun le zihpisze vuzip roetjim fokbuwu jemrumvu cigzet.","version":"0925128c-48f1-552e-8507-379551253d9c","interfaces":[{"mtu":2652,"enabled":true,"description":"Hi vihjuup vueji zufmab wib zel woz ligok wu hi iremouto wahoato.","name":"subinterface5name","id":"9f816351-560c-5e5b-ba0a-2051828301e6","hardwareName":"SubInterface0/5.6","macAddress":"84F0.8C6A.D6DF","monitorInterface":true,"standbyMacAddress":"0971.695D.7024","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"e20a:2b14:aecc:7997:984d:9fcd:b3c4:2e66/32","ipAddress":"5753:596d:3c86:ab69:1e26:fa83:c032:8e71/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"44d8:5ccd:bbcd:60df:d35b:afb7:6211:375b","ipAddress":"7b7c:0b52:9938:5274:ef02:b8c5:577c:5028"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"119.148.92.111","standbyIpAddress":"106.21.74.31"}},"version":"7a7c4c69-3da2-5e43-a1f3-2f8026bfb0bd","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}},{"id":"83e3721c-b23f-5eb1-b660-40655c216680","name":"SecurityZone9Name","description":"Iha kiuh ja iweacce tuh hajmipjuj fikufuv bofijwi esede tu gahak wenab belif lupilsif udo puzabke ferfa ofwon.","version":"17150a55-f982-526f-aa60-9e435d2c5455","interfaces":[{"mtu":5818,"enabled":true,"description":"Wabjenuv vuhtevguf zucce omiogu anitug cuho gaejma vesumob oduuro levhid uniozwej olkavcuv dawiim mehub wuka suj.","id":"3faf4981-2b04-5091-9c1f-fa0ab78379b4","hardwareName":"GigabitEthernet1/5","macAddress":"7472.5071.519E","monitorInterface":false,"standbyMacAddress":"5387.1EFE.E0E6","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"84c0:cd09:bceb:ce0c:5cfa:f535:d426:01db/32","ipAddress":"067a:e7f9:1bf0:6af4:b89b:4c11:ec0c:51b4/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"02eb:e82a:bb44:e0a0:d969:6055:6744:cfa2","ipAddress":"aa33:0271:1f23:9725:0d24:7767:0fd2:0cf8"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"6.124.202.116","standbyIpAddress":"40.108.171.23"}},"version":"472d2c22-e548-5cb1-983f-f81ee3e14422","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]},{"mtu":5818,"enabled":true,"description":"Dib wohomfa it firasugu joev ge nu dab caejuja ba no owezru rijbofnuv da ren.","name":"outside","id":"056580af-b7b5-5ea4-9434-84acde7b7b2b","hardwareName":"GigabitEthernet1/2","macAddress":"B807.AD9D.0E4C","monitorInterface":false,"standbyMacAddress":"8F66.A03C.5C85","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"398d:4979:fd8c:5c79:130d:af73:39ac:575b/32","ipAddress":"0e08:b1ea:5a22:75ba:8e01:eaed:3442:684c/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"264c:f9d4:85a8:fdee:b56d:4b03:96d7:6285","ipAddress":"d0f4:3235:0882:22a2:f8c8:c2db:683c:9639"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"178.90.249.165","standbyIpAddress":"41.101.191.177"}},"version":"53c69bde-efdf-5307-96bb-1d0c92bec9a5","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"PASSIVE","type":"physicalinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}}],"destinationZones":[{"id":"d2cf6df0-e095-59f1-9afe-4e1f95b290e7","name":"SecurityZone6Name","description":"Kivmeat sepfeheh jekacaloh awe wap vajan utiweb daczo ji ji pew wioha bawmivim ri kaj gibvevsa.","version":"5751e8ac-10c9-5b44-a9fa-1ed8e07d2d40","interfaces":[{"mtu":5818,"enabled":false,"description":"Jigiz malko navsup bojga widbihi vatel vahuwuta ugi bopuru duzwar zopi juinoito sibkonac fozgojmi toopu nurhiru ce joeho.","name":"inside","id":"bddde0e1-1b1f-5f42-b9b7-7c72d9099ef4","hardwareName":"GigabitEthernet1/1","macAddress":"ECFB.7E12.09E1","monitorInterface":true,"standbyMacAddress":"A09D.B513.9683","version":"69f9f38e-0479-58d1-961c-e4040d439200","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"PASSIVE","type":"physicalinterface"},{"mtu":2652,"enabled":true,"description":"Pipakaz ramkudu ulido ce boh ugmepku izareszeh katakuz vosinde takwa piprazipo fostoftug egjolut.","name":"subinterface3name","id":"4258612a-c6ac-5407-8edc-04b207b2b473","hardwareName":"SubInterface0/3.4","macAddress":"4A8E.2AFE.5DE9","monitorInterface":true,"standbyMacAddress":"F917.A989.864E","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"5b49:5a29:3cd4:5c83:7b30:0115:7927:eaf3/32","ipAddress":"a3eb:3b72:2cfa:9901:b7c7:1581:fa72:4b49/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"42e6:34b8:f5eb:802f:626b:503c:781e:aacd","ipAddress":"dcc0:3abc:3933:8a47:25c6:d9a7:2e80:06dc"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"137.234.118.13","standbyIpAddress":"67.162.53.251"}},"version":"2a53f3c3-fc6d-557c-bdbb-e97bc156553c","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"sourceNetworks":[{"id":"8dabc86d-1558-5a56-8c32-bc388b6a93f3","name":"Network13","description":"Dojba epfaw rew reltuzaw vaifjen wilida kepsu gadcukam rewog ojudu to siokwig jakel.","version":"81a1cfa9-9bdf-5ac8-98e5-299f203d4289","type":"networkobject","subType":"HOST","value":"b4f1:f88e:09b6:827b:d85f:dbf9:751b:dc45","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"4f342e19-761a-5d53-a7a6-471d1cf8e254","name":"Network9","description":"Ehibivje dac entikod lofimom dueku ozitakni rilgolpuv zezartim zilkeki bu mu ertum pol vuodle bemah fegbat.","version":"779130e6-7166-5b4e-91f2-d2d92dd952ec","type":"networkobject","subType":"NETWORK","value":"129.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"6fd7b2ed-8cb5-5f6d-9484-1eb947d9d21d","name":"Geolocation2","description":"Hu ewecorek laknueto mene nacudule pa can bevuniv ajhidzug daw murpeuza nafkoz oga.","version":"12c26d86-219a-59fd-85fb-aaf5939a4e66","type":"geolocation","locations":[{"id":"8d0b6206-9550-54d8-9ec8-3ffa76cf5aa1","name":"South America","deprecated":true,"code":1003,"type":"continent","countries":[{"id":"f15f76ba-d150-5ed1-8d49-329860b8a4c2","name":"Venezuela","deprecated":false,"iso3":"VEN","iso2":"VE","code":"862","type":"country"},{"id":"a05f1e97-1b5e-5f45-b53a-373f28de0edc","name":"Uruguay","deprecated":false,"iso3":"URY","iso2":"UY","code":"858","type":"country"},{"id":"c16f6991-a7d7-51dc-85d3-43752e0c5d10","name":"Suriname","deprecated":true,"iso3":"SUR","iso2":"SR","code":"740","type":"country"},{"id":"e92d8edd-80b3-56dd-bf35-7423b7740c84","name":"Paraguay","deprecated":false,"iso3":"PRY","iso2":"PY","code":"600","type":"country"},{"id":"465abc15-6361-5901-99d0-014fd0a8fb59","name":"Peru","deprecated":false,"iso3":"PER","iso2":"PE","code":"604","type":"country"},{"id":"28b8a9fc-2a6a-5fd0-ba10-e3607052f0d1","name":"Guyana","deprecated":false,"iso3":"GUY","iso2":"GY","code":"328","type":"country"},{"id":"f21ae5ba-5139-5bc5-9b7c-6607bf1064c0","name":"French Guiana","deprecated":false,"iso3":"GUF","iso2":"GF","code":"254","type":"country"},{"id":"9c4fc5b1-9569-52be-a502-a076da629c1a","name":"Falkland Islands","deprecated":false,"iso3":"FLK","iso2":"FK","code":"238","type":"country"},{"id":"90518b4d-6bb9-52e6-abd1-d2f35624ff20","name":"Ecuador","deprecated":true,"iso3":"ECU","iso2":"EC","code":"218","type":"country"},{"id":"1bb5225e-e880-5bc6-b4b5-373e05ab4ebf","name":"Colombia","deprecated":false,"iso3":"COL","iso2":"CO","code":"170","type":"country"},{"id":"c73e21a5-7336-58ba-9d53-a3d2eb1e1fdd","name":"Chile","deprecated":true,"iso3":"CHL","iso2":"CL","code":"152","type":"country"},{"id":"df4f3356-7c77-5629-8a0c-7ed0e899c303","name":"Brazil","deprecated":false,"iso3":"BRA","iso2":"BR","code":"076","type":"country"},{"id":"8b0d595a-61a0-508f-bacd-264ee85755cf","name":"Bolivia","deprecated":false,"iso3":"BOL","iso2":"BO","code":"068","type":"country"},{"id":"1adcc1e8-564f-5b54-a236-fc72bae227b9","name":"Argentina","deprecated":false,"iso3":"ARG","iso2":"AR","code":"032","type":"country"}],"countryCodes":["862","858","740","600","604","328","254","238","218","170","152","076","068","032"]},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"a7b4cd03-9dc0-572f-82ff-fef0153b4c8c","name":"Denmark","deprecated":true,"iso3":"DNK","iso2":"DK","code":"208","type":"country"},{"id":"ba4897cd-087a-5292-b1be-d3a00a7f26bb","name":"South Georgia and the South Sandwich Islands","deprecated":true,"iso3":"SGS","iso2":"GS","code":"239","type":"country"},{"id":"76d9fd77-8fb0-5b69-a7b9-5ceae0c32261","name":"Sint Maarten","deprecated":false,"iso3":"SXM","iso2":"SX","code":"534","type":"country"},{"id":"b4bd346d-94ee-5893-8439-83dcc230d37e","name":"Burkina Faso","deprecated":false,"iso3":"BFA","iso2":"BF","code":"854","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"}]}],"destinationNetworks":[{"id":"8dabc86d-1558-5a56-8c32-bc388b6a93f3","name":"Network13","description":"Dojba epfaw rew reltuzaw vaifjen wilida kepsu gadcukam rewog ojudu to siokwig jakel.","version":"81a1cfa9-9bdf-5ac8-98e5-299f203d4289","type":"networkobject","subType":"HOST","value":"b4f1:f88e:09b6:827b:d85f:dbf9:751b:dc45","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"4f342e19-761a-5d53-a7a6-471d1cf8e254","name":"Network9","description":"Ehibivje dac entikod lofimom dueku ozitakni rilgolpuv zezartim zilkeki bu mu ertum pol vuodle bemah fegbat.","version":"779130e6-7166-5b4e-91f2-d2d92dd952ec","type":"networkobject","subType":"NETWORK","value":"129.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"6fd7b2ed-8cb5-5f6d-9484-1eb947d9d21d","name":"Geolocation2","description":"Hu ewecorek laknueto mene nacudule pa can bevuniv ajhidzug daw murpeuza nafkoz oga.","version":"12c26d86-219a-59fd-85fb-aaf5939a4e66","type":"geolocation","locations":[{"id":"8d0b6206-9550-54d8-9ec8-3ffa76cf5aa1","name":"South America","deprecated":true,"code":1003,"type":"continent","countries":[{"id":"f15f76ba-d150-5ed1-8d49-329860b8a4c2","name":"Venezuela","deprecated":false,"iso3":"VEN","iso2":"VE","code":"862","type":"country"},{"id":"a05f1e97-1b5e-5f45-b53a-373f28de0edc","name":"Uruguay","deprecated":false,"iso3":"URY","iso2":"UY","code":"858","type":"country"},{"id":"c16f6991-a7d7-51dc-85d3-43752e0c5d10","name":"Suriname","deprecated":true,"iso3":"SUR","iso2":"SR","code":"740","type":"country"},{"id":"e92d8edd-80b3-56dd-bf35-7423b7740c84","name":"Paraguay","deprecated":false,"iso3":"PRY","iso2":"PY","code":"600","type":"country"},{"id":"465abc15-6361-5901-99d0-014fd0a8fb59","name":"Peru","deprecated":false,"iso3":"PER","iso2":"PE","code":"604","type":"country"},{"id":"28b8a9fc-2a6a-5fd0-ba10-e3607052f0d1","name":"Guyana","deprecated":false,"iso3":"GUY","iso2":"GY","code":"328","type":"country"},{"id":"f21ae5ba-5139-5bc5-9b7c-6607bf1064c0","name":"French Guiana","deprecated":false,"iso3":"GUF","iso2":"GF","code":"254","type":"country"},{"id":"9c4fc5b1-9569-52be-a502-a076da629c1a","name":"Falkland Islands","deprecated":false,"iso3":"FLK","iso2":"FK","code":"238","type":"country"},{"id":"90518b4d-6bb9-52e6-abd1-d2f35624ff20","name":"Ecuador","deprecated":true,"iso3":"ECU","iso2":"EC","code":"218","type":"country"},{"id":"1bb5225e-e880-5bc6-b4b5-373e05ab4ebf","name":"Colombia","deprecated":false,"iso3":"COL","iso2":"CO","code":"170","type":"country"},{"id":"c73e21a5-7336-58ba-9d53-a3d2eb1e1fdd","name":"Chile","deprecated":true,"iso3":"CHL","iso2":"CL","code":"152","type":"country"},{"id":"df4f3356-7c77-5629-8a0c-7ed0e899c303","name":"Brazil","deprecated":false,"iso3":"BRA","iso2":"BR","code":"076","type":"country"},{"id":"8b0d595a-61a0-508f-bacd-264ee85755cf","name":"Bolivia","deprecated":false,"iso3":"BOL","iso2":"BO","code":"068","type":"country"},{"id":"1adcc1e8-564f-5b54-a236-fc72bae227b9","name":"Argentina","deprecated":false,"iso3":"ARG","iso2":"AR","code":"032","type":"country"}],"countryCodes":["862","858","740","600","604","328","254","238","218","170","152","076","068","032"]},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"a7b4cd03-9dc0-572f-82ff-fef0153b4c8c","name":"Denmark","deprecated":true,"iso3":"DNK","iso2":"DK","code":"208","type":"country"},{"id":"ba4897cd-087a-5292-b1be-d3a00a7f26bb","name":"South Georgia and the South Sandwich Islands","deprecated":true,"iso3":"SGS","iso2":"GS","code":"239","type":"country"},{"id":"76d9fd77-8fb0-5b69-a7b9-5ceae0c32261","name":"Sint Maarten","deprecated":false,"iso3":"SXM","iso2":"SX","code":"534","type":"country"},{"id":"b4bd346d-94ee-5893-8439-83dcc230d37e","name":"Burkina Faso","deprecated":false,"iso3":"BFA","iso2":"BF","code":"854","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"}]}],"sourcePorts":[{"id":"ff728962-8729-5bce-941c-1730e280dc0b","name":"icmpv6port1","description":"Uh letiof numsu bokewod gosso sowdilid bevliur idseaho vu delale luctid ila givcogev.","version":"9aca9371-12d1-5490-af24-a87e3160146f","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8452,"isSystemDefined":false},{"id":"1a4f8032-f665-5045-b0d8-a48b339750d1","name":"tcp_port_2","description":"Ku soguzsi ragibi nupavidag faji kovor ikikov efa ha cozuju inietu daf hif iso.","version":"b6ff8844-fd46-5e03-9ca4-00b7bc8bd936","type":"tcpportobject","port":8189,"isSystemDefined":false}],"destinationPorts":[{"id":"39c5e145-2ed4-5038-ab20-3c4878437d1d","name":"icmpv6port2","description":"Fajla geffe heseipu tez toluhpap ve uhmoba garoeb ozafuzli suhwof aw likofat erige hentejpi jajaza faztiav osece na.","version":"d4492bb3-d9b0-52fc-acc6-81061c83c6b8","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8267,"isSystemDefined":false},{"id":"b19e16f9-5846-596a-9757-161e7154e68c","name":"tcp_port_1","description":"Ruwus webwepfa fo copoko aligimaj riz zeti bivsu jah ve virip kesnenwer fi wede magbuf ojku sadruh ji.","version":"a90e8fa8-216a-59a4-bce1-da2f92acd1ad","type":"tcpportobject","port":8721,"isSystemDefined":true}],"users":[{"id":"cdaaabcc-950f-5c26-82dc-407ab8ef9fc6","name":"User Group 30","realmName":"borluclumaga","type":"trafficusergroup","realmId":2,"version":"heznapijma"},{"id":"448736fd-bb0b-58e5-8e0f-0d4fe1b1823a","name":"User 25","realmName":"bomubnefwa","type":"trafficuser","realmId":2,"version":"afeapelopel"},{"id":"2a2e9055-9f74-576e-adfa-5e1d41558621","name":"User 12","realmName":"acewojurbe","type":"trafficuser","realmId":2,"version":"wigebifar"}],"embeddedAppFilter":{"conditions":[{"filter":"detfaodvej","tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"CRITICAL"}],"applicationTypes":[{"type":"typecondition","applicationType":"CLIENT"},{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"MEDIUM"},{"type":"productivitycondition","productivity":"VERY_HIGH"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"},{"filter":"rapfosapi","tags":[{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"415702f2-3bd8-5dba-adea-dd03452067a5","version":"1062501a-214c-51d1-9af3-d9c2ca87588f","appId":4,"name":"ApplicationCategory11","description":"Dubofmih taj cukij fes vizoc urzip lazigeha pot bak jackoaz ufi ebomujme ce.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"HIGH"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"MEDIUM"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"ce7e9199-db5d-5032-a961-448184ab75ae","version":"1e2955c1-3f40-5f65-a370-5019e41f9ecb","name":"ApplicationFilter14","description":"Acadewlot tol nake cabe ra ecvimza dafouvo wiko mipuzol igozat egara vuj hic cugcono juvi ujmid bonlor.","applications":[{"id":"6361bd7f-01c9-5714-baca-035d66f50a8c","version":"50dcdb47-5d21-537f-b3b0-81713bf31c06","description":"Leku luto lofuwec wuwguhot abmofdo cun vuunuvi lulsoteg kivsas mijmi ru kipumeja sacwuwhe gub magumera.","deprecated":false,"appId":5,"productivity":0,"risk":4,"name":"Application5","tagIds":["0b45de63-5252-5257-acf6-ce494cdb905a"],"tags":[{"id":"0b45de63-5252-5257-acf6-ce494cdb905a","version":"9c3ed423-1b8a-5f1f-aae0-a507cc188490","appId":6,"name":"ApplicationTag6","description":"Varejse ji ogouvu rin nubuten bezozmaj coeg zuralse pa zitomgon lu rigugip.","metadata":{"referenced":true},"type":"applicationtag"}],"categoryIds":["7f62abc6-7f08-5a69-acb6-65def01251d4","fff4b47c-a653-5729-a31a-e6353d420768"],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["SERVER","WEBAPP"],"metadata":{"referenced":true},"type":"application"},{"id":"ce901dd3-4e85-5bf0-a273-2018d76527c8","version":"84a4f0c6-57b3-50f3-bf20-0cf68bbbb806","description":"Gipus bovawge vel ceoziwo nuim ehdifir nowe onoli atsewav irfer semowi ge turos mufo tahukca jaz.","deprecated":true,"appId":5,"productivity":0,"risk":2,"name":"Application2","tagIds":["58edda62-c97b-56e5-9e6c-32926f4d3009"],"tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["1323d445-72c0-5d8b-9f58-c223feb51bac","328094ea-7b95-58e5-a2de-09018514e679"],"categories":[{"id":"1323d445-72c0-5d8b-9f58-c223feb51bac","version":"f85374d2-b1c5-5e65-b746-77dc6a21decb","appId":7,"name":"ApplicationCategory14","description":"Ohoad agoteveto irewomi adizogo lurtoop tizesuca himewwak poftoj cow nunapivif cisge pe hi raam hatdunze.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"328094ea-7b95-58e5-a2de-09018514e679","version":"a9f6d6f5-e2ce-5a1b-8c7f-1a5ba3c375b4","appId":4,"name":"ApplicationCategory1","description":"Pilooru amavudek uhzidkah sieha duhni ikfo celrid az ocolu loplun buj nodlial do ahme henacava so ecevega wemtumacu.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["CLIENT","WEBAPP"],"metadata":{"referenced":false},"type":"application"}],"conditions":[{"filter":"detfaodvej","tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"CRITICAL"}],"applicationTypes":[{"type":"typecondition","applicationType":"CLIENT"},{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"MEDIUM"},{"type":"productivitycondition","productivity":"VERY_HIGH"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":true},"type":"applicationfilter"}],"applications":[{"id":"44b7bb09-58d5-59ef-abd3-7341fa4d1c7b","version":"fe155cb3-e78d-5a5b-8713-5c056c0ea86f","description":"Dazgo jefeci dulhel lowez cotgo mu ewuufih indeh bo urjur vursosoc cetco eb.","deprecated":false,"appId":8,"productivity":3,"risk":3,"name":"Application3","tagIds":["58edda62-c97b-56e5-9e6c-32926f4d3009"],"tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["794d6605-f5d9-5f26-b11d-507eac471889","0928e8e9-25a4-53d0-b118-342a26b44100"],"categories":[{"id":"794d6605-f5d9-5f26-b11d-507eac471889","version":"20176f07-7d98-5dd7-8a17-de688ee66220","appId":1,"name":"ApplicationCategory3","description":"Woc ved ecu hin potalbib la uweerabof mato dewahmo avutji wose pujda tunoduz ucu ho zopusno lo mu.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"0928e8e9-25a4-53d0-b118-342a26b44100","version":"cccc44d5-b855-569b-90ad-b26d4e3e0c66","appId":7,"name":"ApplicationCategory8","description":"Mifzonu fokero acdu panvo cuvubde tovli maz cawag kaoj gosoojo falkof hezel sig ca vo wak.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["SERVER"],"metadata":{"referenced":false},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"4644bbc1-d476-565e-83ae-5a744000483c","version":"jaebrizdos","name":"UrlGroup8","description":"Mudacoc fapeus bimafi vectibep vib at bomecras moano ut wo vimkoc il lekeje os ekugiubi newtu.","objects":[{"id":"26cf0d0b-7575-594a-9c3b-9e17d5e24fbf","version":"sipugcocti","name":"Url6","description":"Etna gum cacu tin meehe hu cahfik kus supdeba irlohje hig rizhepzov vi togaofo los dujna her sipu.","url":"http://bejakuru.co.uk/ebkampaw","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlCategory":{"id":"4aaaf075-67f8-5584-85db-439de34a0f04","version":"922f3981-fd98-5b5a-8467-f9e8bcfe9ee4","name":"UrlCategory-9","deprecated":false,"urlCategoryId":9,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"filePolicy":{"id":"9c84889f-8c5c-5643-a489-d01bb07639a5","type":"filepolicy","policyType":"BLOCK_OFFICE_DOCUMENTS_PDF_UPLOAD_BLOCK_MALWARE_OTHERS","name":"File_Policy_3","description":"Mi rul etusisti iphogu acrevdid cas bijcaz nul ceaf napi kegpo su dozpov zikpul lohi gurukdi ke.","version":"d5e7c6d4-1f13-5cd2-9442-bdccd7e4b804"},"logFiles":false,"type":"accessrule"},{"id":"72ed216e-8cf8-530c-b095-296c73a300d7","version":"6f0a0570-6fa4-5559-889d-3336fa74598d","ruleId":27,"name":"Access_Rule_27","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_NONE","sourceZones":[{"id":"0453e827-ea9e-5279-b45d-49df10666f7f","name":"SecurityZone14Name","description":"Kojugbel ram kucdowaf dozabace bagi vizlujva ibeali humupici apefin sig wiwdocduw halsoz.","version":"aaaea33f-d703-5f8e-9fb0-8647d4f28f12","interfaces":[{"mtu":2652,"enabled":true,"description":"Dijiz mavajmak suhihi ja piobba vigsasu pulasa heka lus nuapoap gar weuluvaz faf duke sojpov pamdaba juhoflon ugosum.","name":"subinterface4name","id":"80110552-0168-5ca1-9539-159176e34426","hardwareName":"SubInterface0/4.5","macAddress":"1753.227B.5D9A","monitorInterface":false,"standbyMacAddress":"FF7B.C256.4778","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"1bb9:5d4d:1200:c9eb:97ff:589e:edd4:16e4/32","ipAddress":"eaba:377e:f390:0e98:800f:a6a7:5709:6b52/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"5189:1c32:5064:5495:0ecf:92dd:9175:944a","ipAddress":"479b:2e4a:a86f:13c2:425b:1e14:b1a3:ddfd"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"213.34.152.190","standbyIpAddress":"91.47.228.196"}},"version":"8bcf839f-438a-5cd4-99a7-b6f07ab652a0","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Povlulmi maev usma nizguv ve win coocila colo dunde karib wadu ku huhakla kikel gas.","name":"subinterface13name","id":"edd991bd-6b34-5057-9389-003a56e10179","hardwareName":"SubInterface0/13.14","macAddress":"CC55.5B72.5979","monitorInterface":true,"standbyMacAddress":"9F25.7162.695C","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0d43:9009:33b7:805f:2a41:1ed1:0ea0:3cd6/32","ipAddress":"e093:0b7d:4775:c0dc:8433:a3b6:1071:8974/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"bf79:78d0:19ad:cc70:9f5b:5882:e462:ba1d","ipAddress":"5ffa:92d3:6efd:ef6f:c194:ff49:7d28:7d56"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"237.58.152.175","standbyIpAddress":"233.37.45.228"}},"version":"f9997393-39da-5999-bef9-a0aa1c914d96","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}},{"id":"7fa724f3-b64c-585b-9176-69aed2b36237","name":"SecurityZone1Name","description":"Do pefa ritapo ovauciku vogomougi utino gudo momna sagocbiw bowce awu muzabwoz zetpec kit fe.","version":"9d1d113e-86e0-5106-9f6c-29cc8e8fc7fb","interfaces":[{"mtu":5818,"enabled":true,"description":"Wonca cotfo biok ugfejbah ro itedere itoh pijazu ocozojgi buk facheuho zo.","id":"ef57753e-8a0c-5454-a3b3-fbc3c570851d","hardwareName":"GigabitEthernet1/3","macAddress":"34B5.AF3E.B9E9","monitorInterface":true,"standbyMacAddress":"4AF5.3F46.87FE","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"da83:da11:93ff:4f56:084e:f1c1:269c:0dd0/32","ipAddress":"831e:6e6b:281e:8b10:94d0:03f1:b4d5:3373/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"6a3f:c0b2:5d20:fdb6:945d:bcd1:a144:7558","ipAddress":"af4f:d5f4:67bb:3263:e183:fc6c:ea34:f2e6"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"204.8.215.52","standbyIpAddress":"108.106.112.194"}},"version":"46c1bc9f-9a0a-5425-8dc2-3a04dd84c3f1","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"destinationZones":[{"id":"e960df5e-1ab8-5a15-85e5-a7a47f0ebcb0","name":"SecurityZone5Name","description":"Kinen aziheeci teniow ucezaw idikaki rupbu tieb rawihzec ufkedok iwewun le zihpisze vuzip roetjim fokbuwu jemrumvu cigzet.","version":"0925128c-48f1-552e-8507-379551253d9c","interfaces":[{"mtu":2652,"enabled":true,"description":"Hi vihjuup vueji zufmab wib zel woz ligok wu hi iremouto wahoato.","name":"subinterface5name","id":"9f816351-560c-5e5b-ba0a-2051828301e6","hardwareName":"SubInterface0/5.6","macAddress":"84F0.8C6A.D6DF","monitorInterface":true,"standbyMacAddress":"0971.695D.7024","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"e20a:2b14:aecc:7997:984d:9fcd:b3c4:2e66/32","ipAddress":"5753:596d:3c86:ab69:1e26:fa83:c032:8e71/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"44d8:5ccd:bbcd:60df:d35b:afb7:6211:375b","ipAddress":"7b7c:0b52:9938:5274:ef02:b8c5:577c:5028"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"119.148.92.111","standbyIpAddress":"106.21.74.31"}},"version":"7a7c4c69-3da2-5e43-a1f3-2f8026bfb0bd","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"sourceNetworks":[{"id":"4f342e19-761a-5d53-a7a6-471d1cf8e254","name":"Network9","description":"Ehibivje dac entikod lofimom dueku ozitakni rilgolpuv zezartim zilkeki bu mu ertum pol vuodle bemah fegbat.","version":"779130e6-7166-5b4e-91f2-d2d92dd952ec","type":"networkobject","subType":"NETWORK","value":"129.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"c1e8dd5a-a13d-5bcd-8db1-d7895b9a9f3a","name":"Network7","description":"Ehe jeep mijwamad kohi ifegujzek tednadcat dewian tuzdum ripi wondoh woh cugi masal.","version":"dc274636-d6d4-590e-b68f-5cc0d313f41b","type":"networkobject","subType":"NETWORK","value":"71.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"8681f6d1-4c1b-58ca-bac5-c217895fbbcd","name":"Geolocation7","description":"Ciriro waavwef icmadate zuh lobba amroc mehufi huabwe mi gowukose dapedvip pa uz baoruaj mowka popbiola.","version":"f2554e00-8f4c-5f06-8e33-1e6ece1334ee","type":"geolocation","locations":[{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"87ea1078-3291-54f4-85e1-f2d54f97a96d","name":"Micronesia","deprecated":false,"iso3":"FSM","iso2":"FM","code":"583","type":"country"},{"id":"e8b65d12-13e5-53b5-abe4-3c833e412440","name":"San Marino","deprecated":true,"iso3":"SMR","iso2":"SM","code":"674","type":"country"},{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"9c4fc5b1-9569-52be-a502-a076da629c1a","name":"Falkland Islands","deprecated":false,"iso3":"FLK","iso2":"FK","code":"238","type":"country"},{"id":"627efa23-c14e-5fc0-b2d2-a197986eaa58","name":"Grenada","deprecated":true,"iso3":"GRD","iso2":"GD","code":"308","type":"country"},{"id":"ac567919-9e6f-5712-8ef8-817d2875ae89","name":"Libya","deprecated":false,"iso3":"LBY","iso2":"LY","code":"434","type":"country"}]}],"destinationNetworks":[{"id":"4f342e19-761a-5d53-a7a6-471d1cf8e254","name":"Network9","description":"Ehibivje dac entikod lofimom dueku ozitakni rilgolpuv zezartim zilkeki bu mu ertum pol vuodle bemah fegbat.","version":"779130e6-7166-5b4e-91f2-d2d92dd952ec","type":"networkobject","subType":"NETWORK","value":"129.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"c1e8dd5a-a13d-5bcd-8db1-d7895b9a9f3a","name":"Network7","description":"Ehe jeep mijwamad kohi ifegujzek tednadcat dewian tuzdum ripi wondoh woh cugi masal.","version":"dc274636-d6d4-590e-b68f-5cc0d313f41b","type":"networkobject","subType":"NETWORK","value":"71.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"8681f6d1-4c1b-58ca-bac5-c217895fbbcd","name":"Geolocation7","description":"Ciriro waavwef icmadate zuh lobba amroc mehufi huabwe mi gowukose dapedvip pa uz baoruaj mowka popbiola.","version":"f2554e00-8f4c-5f06-8e33-1e6ece1334ee","type":"geolocation","locations":[{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"87ea1078-3291-54f4-85e1-f2d54f97a96d","name":"Micronesia","deprecated":false,"iso3":"FSM","iso2":"FM","code":"583","type":"country"},{"id":"e8b65d12-13e5-53b5-abe4-3c833e412440","name":"San Marino","deprecated":true,"iso3":"SMR","iso2":"SM","code":"674","type":"country"},{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"9c4fc5b1-9569-52be-a502-a076da629c1a","name":"Falkland Islands","deprecated":false,"iso3":"FLK","iso2":"FK","code":"238","type":"country"},{"id":"627efa23-c14e-5fc0-b2d2-a197986eaa58","name":"Grenada","deprecated":true,"iso3":"GRD","iso2":"GD","code":"308","type":"country"},{"id":"ac567919-9e6f-5712-8ef8-817d2875ae89","name":"Libya","deprecated":false,"iso3":"LBY","iso2":"LY","code":"434","type":"country"}]}],"sourcePorts":[{"id":"5e4d4b4d-706c-5325-b034-896d42bf9087","name":"udp_port_1","description":"Rupkoedo zuv egodid ca buapesug tu mawaduh etaeha pigfa keh it bozute wovi zijuci poscuren ifohhe.","version":"db631abc-32a3-5ca5-8ae5-a3b6f3c8371a","type":"udpportobject","port":8537,"isSystemDefined":true},{"id":"d0ecb6d1-cc76-58fb-a392-4e9c9537be4c","name":"icmpv4port2","description":"Asci be jutgu wo susadagi woveven bafosjoc ceec wovukiv tati tepav gu za muhhudbi.","version":"54ed4735-cf04-5504-8a5a-2dd0bec3f5a9","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8251,"isSystemDefined":false}],"destinationPorts":[{"id":"2a40730e-7878-5969-ba53-1d9278cde125","name":"icmpv4port1","description":"Uva ceti behga hetivasu ajbebu rakepe ame ifa aceuriso kejic fucaoti gigvivvo gishelpob jurevmu ov maclefe.","version":"e62c0f51-027e-5a7f-b725-a96162bb7138","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8508,"isSystemDefined":false},{"id":"39c5e145-2ed4-5038-ab20-3c4878437d1d","name":"icmpv6port2","description":"Fajla geffe heseipu tez toluhpap ve uhmoba garoeb ozafuzli suhwof aw likofat erige hentejpi jajaza faztiav osece na.","version":"d4492bb3-d9b0-52fc-acc6-81061c83c6b8","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8267,"isSystemDefined":false}],"users":[{"id":"6fc80f39-f5ca-52da-baac-a4008a22fdbd","name":"User 29","realmName":"hoomewudavu","type":"trafficuser","realmId":2,"version":"maakuojusal"},{"id":"44735a4a-a680-5da1-a095-e90d6fc646aa","name":"User 22","realmName":"afhuzwiclaz","type":"trafficuser","realmId":2,"version":"tucritjeve"},{"id":"b33b73c3-522a-5e45-93fa-9d0a05dc2444","name":"User 4","realmName":"guzafodoaka","type":"trafficuser","realmId":2,"version":"fiusonuik"}],"embeddedAppFilter":{"conditions":[{"filter":"rapfosapi","tags":[{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"415702f2-3bd8-5dba-adea-dd03452067a5","version":"1062501a-214c-51d1-9af3-d9c2ca87588f","appId":4,"name":"ApplicationCategory11","description":"Dubofmih taj cukij fes vizoc urzip lazigeha pot bak jackoaz ufi ebomujme ce.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"HIGH"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"MEDIUM"}],"type":"applicationfiltercondition"},{"filter":"jignorebes","tags":[{"id":"e9812b72-2a36-5146-bce0-b09f876df88d","version":"080dca18-c677-5dd1-8f2f-40555beb4fe4","appId":10,"name":"ApplicationTag10","description":"Viswilo ariuzaf pih wa mul vugavrip rijfon aba kac giicse wolifa cowudzuv vev iztafit.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"0928e8e9-25a4-53d0-b118-342a26b44100","version":"cccc44d5-b855-569b-90ad-b26d4e3e0c66","appId":7,"name":"ApplicationCategory8","description":"Mifzonu fokero acdu panvo cuvubde tovli maz cawag kaoj gosoojo falkof hezel sig ca vo wak.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"MEDIUM"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"},{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"461cac69-03ff-5113-a215-4cdfaf8bd3f1","version":"c5c46d5e-163b-53e4-a12e-4ec6708cb4a7","name":"ApplicationFilter13","description":"Hi hug zad nolrepmum bil nuwbacora fa guhu ale ogve foksaruw cipzis zomdozun de is da uzifoma.","applications":[{"id":"368e2c4f-cce1-574d-b5ee-ab9d539cf248","version":"3ecf8402-8607-5fdc-a148-f5abddf84f0a","description":"Apeja libsul uweb osjoti ge uzu fal gob woletkew be tu hah ha wuvekohuz gacaw.","deprecated":true,"appId":4,"productivity":1,"risk":0,"name":"Application14","tagIds":["9b16dd72-476a-5ac0-8aeb-fbf6e1f45438"],"tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["5f0662ef-3382-5357-bf35-b9b7361aae44"],"categories":[{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["WEBAPP","SERVER"],"metadata":{"referenced":false},"type":"application"}],"conditions":[{"filter":"giasnovpe","tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"794d6605-f5d9-5f26-b11d-507eac471889","version":"20176f07-7d98-5dd7-8a17-de688ee66220","appId":1,"name":"ApplicationCategory3","description":"Woc ved ecu hin potalbib la uweerabof mato dewahmo avutji wose pujda tunoduz ucu ho zopusno lo mu.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"VERY_LOW"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"},{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":false},"type":"applicationfilter"}],"applications":[{"id":"284fc5f4-ac07-5859-abb8-8d3d7e883e07","version":"3c123aed-eabf-5f8f-b009-4bb510d14c1e","description":"Ruz mujjihpil wehuzfe so hobzokbi us vomret wip tos cieriebe nifej ma.","deprecated":true,"appId":4,"productivity":3,"risk":3,"name":"Application12","tagIds":["7269266f-8413-59ef-9085-0de4aa64660b"],"tags":[{"id":"7269266f-8413-59ef-9085-0de4aa64660b","version":"6eb7235a-74ab-5701-8a37-2522e325519d","appId":2,"name":"ApplicationTag2","description":"Zu wep pag palu mazu irowil rag bore ev ica miljov iwoog besjezew fi regevi ap vo.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["7f62abc6-7f08-5a69-acb6-65def01251d4","3cd37a5a-b5c2-516a-8eb9-c5d87fcdb2a2"],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"3cd37a5a-b5c2-516a-8eb9-c5d87fcdb2a2","version":"76af8e96-44af-5285-a65a-172f138b8941","appId":3,"name":"ApplicationCategory10","description":"Taljooco pi wo cahorti fih heose wicueci emiwoube no iwozovban ip oho im uke wu ko noed.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["WEBAPP"],"metadata":{"referenced":true},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"0d8fb7ba-1aee-5509-a833-5a64db795ba3","version":"nokkivamota","name":"UrlGroup10","description":"Umijidep raticce kainusev di gijo if os necullo dadjus jow zajoz ri pasiz kufdah uskikuw la.","objects":[{"id":"d72bd5cf-710c-5048-b0fa-1bda6746520d","version":"onaisujuja","name":"Url3","description":"Nolze no gavrofkep dog di buc ta oko kon pigu fuezo uzara.","url":"http://gagonofi.edu/letiga","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlReputation":{"id":"00d12166-18a1-568d-8878-cbe92b44602c","name":"Risk unknown","index":0,"startPercentage":0,"endPercentage":0,"version":"b5c74a5a-ad53-5a53-91d1-505f3d64d5d5","type":"urlreputation"},"urlCategory":{"id":"5c03856a-3c13-5838-b397-19e4eb343d1d","version":"4399e700-e8df-5a73-a565-c19049383762","name":"Health and Medicine","deprecated":false,"urlCategoryId":1,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"intrusionPolicy":{"id":"a47cb8f6-fe55-11e4-8e99-ipsN10","name":"Connectivity Over Security","links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f6-fe55-11e4-8e99-ipsN10"},"rules":{"links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f6-fe55-11e4-8e99-ipsN10/rules/"}},"description":"Connectivity Over Security Layer","type":"intrusionpolicy","version":"f17dd031-7eba-5f6f-8734-300a871471fe"},"filePolicy":{"id":"de5b742d-70db-535d-bb42-6e6ba949ef53","type":"filepolicy","policyType":"BLOCK_MALWARE_ALL","name":"File_Policy_1","description":"Wiakeno ja barfowole aredu wutra loc fe soc cakdo se la agokim gevsirrog cagome.","version":"e0e81a67-2608-53e2-a015-f53dc3a9de10"},"logFiles":false,"type":"accessrule"},{"id":"13cee82c-f2e2-5281-8ca5-914a00d0a704","version":"8896aad4-37b8-539a-9f9b-e07cf452e17c","ruleId":28,"name":"Access_Rule_28","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_NONE","sourceZones":[{"id":"ec43d6a8-fe32-5daa-a8bd-766b57a23892","name":"SecurityZone12Name","description":"Etzasus comdupo lu jeitlov zedoj no lidwa ka beni ujenapse lowon dil ami jir.","version":"3091782d-2bd2-57e7-8447-191d486665aa","interfaces":[{"mtu":5818,"enabled":true,"description":"Setta biwofega af ihi ebele inowo inagiobo nu it fe heivu lijivok.","name":"diagnostic","id":"f7509b61-168c-5d86-9a4c-8d3a2bb23e90","hardwareName":"Management0/0","macAddress":"249A.16A4.5DED","monitorInterface":true,"standbyMacAddress":"06D4.757D.FF06","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0c4e:e907:93c3:ba7a:7842:4899:f454:2a33/32","ipAddress":"41e0:3a60:0ca6:5f1c:cdd5:9c57:4918:682f/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d039:d6f4:278a:cdd3:b9e3:2711:460f:1555","ipAddress":"7e31:6d3f:5bbc:0d7f:4df6:58b9:26a6:d462"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"227.88.54.119","standbyIpAddress":"119.107.19.197"}},"version":"e50dac9e-5493-5760-b5e5-294741f3c409","managementInterface":true,"managementOnly":true,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}},{"id":"7fa724f3-b64c-585b-9176-69aed2b36237","name":"SecurityZone1Name","description":"Do pefa ritapo ovauciku vogomougi utino gudo momna sagocbiw bowce awu muzabwoz zetpec kit fe.","version":"9d1d113e-86e0-5106-9f6c-29cc8e8fc7fb","interfaces":[{"mtu":5818,"enabled":true,"description":"Wonca cotfo biok ugfejbah ro itedere itoh pijazu ocozojgi buk facheuho zo.","id":"ef57753e-8a0c-5454-a3b3-fbc3c570851d","hardwareName":"GigabitEthernet1/3","macAddress":"34B5.AF3E.B9E9","monitorInterface":true,"standbyMacAddress":"4AF5.3F46.87FE","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"da83:da11:93ff:4f56:084e:f1c1:269c:0dd0/32","ipAddress":"831e:6e6b:281e:8b10:94d0:03f1:b4d5:3373/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"6a3f:c0b2:5d20:fdb6:945d:bcd1:a144:7558","ipAddress":"af4f:d5f4:67bb:3263:e183:fc6c:ea34:f2e6"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"204.8.215.52","standbyIpAddress":"108.106.112.194"}},"version":"46c1bc9f-9a0a-5425-8dc2-3a04dd84c3f1","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"destinationZones":[{"id":"9c8667b7-4e34-56df-b092-1340af45b0d2","name":"SecurityZone10Name","description":"Joni gagko ugmucba ogparjad uvre hobneva wete epujein nelgidma kuollum wi gabvanaj sosso.","version":"bc2e044f-1753-51e2-aa7a-ea7362c6b23b","interfaces":[{"mtu":5818,"enabled":false,"description":"Rojsitepo fifgar sovaf ebabovvoj ivjinjig ite sadehtud upazeh dejsabfuv tipgo cosbe femigpi ac aztazta beduw.","id":"fa3dc115-5c3e-51ae-aa38-60ff9abd415a","hardwareName":"GigabitEthernet1/7","macAddress":"55F1.B70C.C1B7","monitorInterface":false,"standbyMacAddress":"B24B.66FA.3266","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"29df:8589:549c:1eef:cc3a:60bf:e04c:3627/32","ipAddress":"afd9:ec18:e2d8:02b5:d0fb:e88c:cea2:e443/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"1a98:7998:35a2:1767:f8b7:fea5:dc50:6a35","ipAddress":"2365:d545:9cd1:ab13:70c3:7177:cd7b:749e"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"135.29.245.249","standbyIpAddress":"74.247.146.212"}},"version":"143d2951-eca6-58fa-b11e-89d0e27b913c","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]},{"mtu":2652,"enabled":false,"description":"Cacfi rijgebpuj hotow vu jisfesgub os biami baajo cimod totufo cajip epkaeg ezeugpek ucifulo huzdeal.","name":"subinterface8name","id":"90da9e2e-5eb1-5d7f-95cf-8759bf36f644","hardwareName":"SubInterface0/8.9","macAddress":"8C77.2E4D.7213","monitorInterface":false,"standbyMacAddress":"32AD.D756.5E62","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"1ca8:b55c:d9ed:3be2:2955:da65:a52c:d0fc/32","ipAddress":"085b:3c0e:113f:ccef:6d12:cb57:ef1d:431d/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"3025:32ff:78fb:37e2:42a3:8d40:64ee:e93e","ipAddress":"7aea:6aed:7d14:3ac6:df8b:0446:5b7d:f55f"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"225.196.76.214","standbyIpAddress":"62.250.115.23"}},"version":"4e59e028-4b81-5f28-9fbf-6033fd2394b8","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}}],"sourceNetworks":[{"id":"8dabc86d-1558-5a56-8c32-bc388b6a93f3","name":"Network13","description":"Dojba epfaw rew reltuzaw vaifjen wilida kepsu gadcukam rewog ojudu to siokwig jakel.","version":"81a1cfa9-9bdf-5ac8-98e5-299f203d4289","type":"networkobject","subType":"HOST","value":"b4f1:f88e:09b6:827b:d85f:dbf9:751b:dc45","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"6f55bc7e-79ee-5271-b299-5eb7db9ece0e","name":"Network14","description":"Naduk tuto zatuli pedufu dowkol gapcetod ehukevnem oszi numudol ubibi pufhubfu ripsitfu.","version":"3ab046cd-f4be-55d8-af7a-7a84bc3f7716","type":"networkobject","subType":"HOST","value":"111.31.129.11","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"62d1c211-894a-5027-a046-0d29808688cf","name":"Geolocation11","description":"So gipoguzoh wemomwur zerugeba ne dupwibam ofi rojcowo dupoggot pojlapof sicjigto izavu mobfof bohoguh forjuseme jogas.","version":"c65c168c-cbef-50bd-862e-cb33b7a67f87","type":"geolocation","locations":[{"id":"58c1b14d-e032-5b9c-a581-a5c8857e2260","name":"North America","deprecated":true,"code":1002,"type":"continent","countries":[{"id":"2ba895c9-9f2b-5182-95b9-59306b13ebc4","name":"U.S. Virgin Islands","deprecated":true,"iso3":"VIR","iso2":"VI","code":"850","type":"country"},{"id":"e6bb9c77-a955-5f2b-ac2d-9082a5160f71","name":"British Virgin Islands","deprecated":true,"iso3":"VGB","iso2":"VG","code":"092","type":"country"},{"id":"b3735b95-7d83-5ed3-916e-3379993398f6","name":"Saint Vincent and the Grenadines","deprecated":false,"iso3":"VCT","iso2":"VC","code":"670","type":"country"},{"id":"816c5c8f-f624-561e-99f1-1a26d826a4f3","name":"United States","deprecated":true,"iso3":"USA","iso2":"US","code":"840","type":"country"},{"id":"3fefff2b-d89c-55b1-8cbc-3ef1a65be130","name":"Trinidad and Tobago","deprecated":true,"iso3":"TTO","iso2":"TT","code":"780","type":"country"},{"id":"3589f9a6-a7c1-5332-a139-3f9595fdfd28","name":"Turks and Caicos Islands","deprecated":true,"iso3":"TCA","iso2":"TC","code":"796","type":"country"},{"id":"76d9fd77-8fb0-5b69-a7b9-5ceae0c32261","name":"Sint Maarten","deprecated":false,"iso3":"SXM","iso2":"SX","code":"534","type":"country"},{"id":"85d297a7-310d-59f0-a0ca-ebf303a096cc","name":"El Salvador","deprecated":true,"iso3":"SLV","iso2":"SV","code":"222","type":"country"},{"id":"fa707d6d-a72f-5469-985d-5173dbe32666","name":"Puerto Rico","deprecated":false,"iso3":"PRI","iso2":"PR","code":"630","type":"country"},{"id":"93eb0baf-8f56-5cb2-8282-ab1ad5e85c10","name":"Saint Pierre and Miquelon","deprecated":false,"iso3":"SPM","iso2":"PM","code":"666","type":"country"},{"id":"8701b229-f2cb-5873-9ad8-d4f15407cd99","name":"Panama","deprecated":true,"iso3":"PAN","iso2":"PA","code":"591","type":"country"},{"id":"f9fcc680-cfb6-5541-9a22-5d708e664cd7","name":"Nicaragua","deprecated":true,"iso3":"NIC","iso2":"NI","code":"558","type":"country"},{"id":"2acf54f9-dcef-583a-b011-1ade5b0c8337","name":"Mexico","deprecated":false,"iso3":"MEX","iso2":"MX","code":"484","type":"country"},{"id":"d8b849e3-61d8-5e6b-9616-e84333164d82","name":"Montserrat","deprecated":false,"iso3":"MSR","iso2":"MS","code":"500","type":"country"},{"id":"00bdfb06-2438-5d19-ab21-536be76831df","name":"Martinique","deprecated":false,"iso3":"MTQ","iso2":"MQ","code":"474","type":"country"},{"id":"e41f17d8-47ba-5889-a3f9-757a2d6dbf53","name":"Saint Martin","deprecated":true,"iso3":"MAF","iso2":"MF","code":"663","type":"country"},{"id":"d6056e12-c9d7-52e1-affd-5e54f743c415","name":"Saint Lucia","deprecated":false,"iso3":"LCA","iso2":"LC","code":"662","type":"country"},{"id":"5e6b0423-d9b1-5c70-b1fc-c35c581af83a","name":"Cayman Islands","deprecated":true,"iso3":"CYM","iso2":"KY","code":"136","type":"country"},{"id":"d86293d3-8d1d-59bd-8b48-16fb532231d9","name":"Saint Kitts and Nevis","deprecated":true,"iso3":"KNA","iso2":"KN","code":"659","type":"country"},{"id":"5ca89c40-c558-55ae-b606-c4a7c84900d0","name":"Jamaica","deprecated":true,"iso3":"JAM","iso2":"JM","code":"388","type":"country"},{"id":"d8fbf1b8-0581-5bf5-a03d-ca9382c3a25f","name":"Haiti","deprecated":true,"iso3":"HTI","iso2":"HT","code":"332","type":"country"},{"id":"d42e37aa-8ab2-5cee-be19-f8bc7123029e","name":"Honduras","deprecated":false,"iso3":"HND","iso2":"HN","code":"340","type":"country"},{"id":"deb2c3f7-7c6e-5fae-859a-d19da6b88bf7","name":"Guatemala","deprecated":false,"iso3":"GTM","iso2":"GT","code":"320","type":"country"},{"id":"1339e3d7-5dbf-59d5-9dc4-0c9928509839","name":"Guadeloupe","deprecated":true,"iso3":"GLP","iso2":"GP","code":"312","type":"country"},{"id":"f1ef7a41-03d9-5725-a34c-e7dce349dc68","name":"Greenland","deprecated":true,"iso3":"GRL","iso2":"GL","code":"304","type":"country"},{"id":"627efa23-c14e-5fc0-b2d2-a197986eaa58","name":"Grenada","deprecated":true,"iso3":"GRD","iso2":"GD","code":"308","type":"country"},{"id":"2cef5772-f72d-5ca9-bd72-de4bda8da061","name":"Dominican Republic","deprecated":false,"iso3":"DOM","iso2":"DO","code":"214","type":"country"},{"id":"4ecd121e-af06-5def-a17d-5aeb58e5834b","name":"Dominica","deprecated":true,"iso3":"DMA","iso2":"DM","code":"212","type":"country"},{"id":"57110fb6-aee4-50cf-a1ad-e8e3cf723b03","name":"Curacao","deprecated":false,"iso3":"CUW","iso2":"CW","code":"531","type":"country"},{"id":"473581e5-1b39-5d06-a56c-44a01298ba3d","name":"Cuba","deprecated":false,"iso3":"CUB","iso2":"CU","code":"192","type":"country"},{"id":"6b162de0-602e-5a7d-a241-50ccdb10c3ea","name":"Costa Rica","deprecated":true,"iso3":"CRI","iso2":"CR","code":"188","type":"country"},{"id":"338c3d83-e4bb-5c7e-854a-5370a23c9b06","name":"Canada","deprecated":true,"iso3":"CAN","iso2":"CA","code":"124","type":"country"},{"id":"32ee65e9-d6c1-5d5b-95a4-83dd798ab6fc","name":"Belize","deprecated":true,"iso3":"BLZ","iso2":"BZ","code":"084","type":"country"},{"id":"e37aa05a-1414-5366-abdd-eae7482267de","name":"Bahamas","deprecated":false,"iso3":"BHS","iso2":"BS","code":"044","type":"country"},{"id":"0b32f4f0-c8db-5011-ac99-73bfc4a31ecb","name":"Bonaire","deprecated":true,"iso3":"BES","iso2":"BQ","code":"535","type":"country"},{"id":"8fc88712-b063-55fa-adf9-7d1090098ca4","name":"Bermuda","deprecated":false,"iso3":"BMU","iso2":"BM","code":"060","type":"country"},{"id":"830ae2eb-65f0-56f2-8823-e293c1b6f086","name":"Saint Barthélemy","deprecated":true,"iso3":"BLM","iso2":"BL","code":"652","type":"country"},{"id":"9cd8a90c-1915-51dc-978b-b35c591d11c0","name":"Barbados","deprecated":false,"iso3":"BRB","iso2":"BB","code":"052","type":"country"},{"id":"a91f1f86-8c52-569f-9244-f914a4438731","name":"Aruba","deprecated":true,"iso3":"ABW","iso2":"AW","code":"533","type":"country"},{"id":"50d84fbd-fb07-51a0-ad92-be08d1dd5471","name":"Anguilla","deprecated":true,"iso3":"AIA","iso2":"AI","code":"660","type":"country"},{"id":"2494c782-b35f-5a88-8313-4eda120aa623","name":"Antigua and Barbuda","deprecated":false,"iso3":"ATG","iso2":"AG","code":"028","type":"country"}],"countryCodes":["850","092","670","840","780","796","534","222","630","666","591","558","484","500","474","663","662","136","659","388","332","340","320","312","304","308","214","212","531","192","188","124","084","044","535","060","652","052","533","660","028"]},{"id":"642a86d2-e785-5f88-83a1-6b9299dc0cdf","name":"French Polynesia","deprecated":false,"iso3":"PYF","iso2":"PF","code":"258","type":"country"},{"id":"059ecc8f-4828-5c94-a589-534028509f02","name":"Liechtenstein","deprecated":true,"iso3":"LIE","iso2":"LI","code":"438","type":"country"},{"id":"3358686b-4139-5062-b3a1-e838d19918cf","name":"Heard Island and McDonald Islands","deprecated":true,"iso3":"HMD","iso2":"HM","code":"334","type":"country"},{"id":"9c4fc5b1-9569-52be-a502-a076da629c1a","name":"Falkland Islands","deprecated":false,"iso3":"FLK","iso2":"FK","code":"238","type":"country"},{"id":"f85a38bd-9851-5540-9a47-2bcda221c02f","name":"Mozambique","deprecated":false,"iso3":"MOZ","iso2":"MZ","code":"508","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"}]}],"destinationNetworks":[{"id":"8dabc86d-1558-5a56-8c32-bc388b6a93f3","name":"Network13","description":"Dojba epfaw rew reltuzaw vaifjen wilida kepsu gadcukam rewog ojudu to siokwig jakel.","version":"81a1cfa9-9bdf-5ac8-98e5-299f203d4289","type":"networkobject","subType":"HOST","value":"b4f1:f88e:09b6:827b:d85f:dbf9:751b:dc45","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"6f55bc7e-79ee-5271-b299-5eb7db9ece0e","name":"Network14","description":"Naduk tuto zatuli pedufu dowkol gapcetod ehukevnem oszi numudol ubibi pufhubfu ripsitfu.","version":"3ab046cd-f4be-55d8-af7a-7a84bc3f7716","type":"networkobject","subType":"HOST","value":"111.31.129.11","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"62d1c211-894a-5027-a046-0d29808688cf","name":"Geolocation11","description":"So gipoguzoh wemomwur zerugeba ne dupwibam ofi rojcowo dupoggot pojlapof sicjigto izavu mobfof bohoguh forjuseme jogas.","version":"c65c168c-cbef-50bd-862e-cb33b7a67f87","type":"geolocation","locations":[{"id":"58c1b14d-e032-5b9c-a581-a5c8857e2260","name":"North America","deprecated":true,"code":1002,"type":"continent","countries":[{"id":"2ba895c9-9f2b-5182-95b9-59306b13ebc4","name":"U.S. Virgin Islands","deprecated":true,"iso3":"VIR","iso2":"VI","code":"850","type":"country"},{"id":"e6bb9c77-a955-5f2b-ac2d-9082a5160f71","name":"British Virgin Islands","deprecated":true,"iso3":"VGB","iso2":"VG","code":"092","type":"country"},{"id":"b3735b95-7d83-5ed3-916e-3379993398f6","name":"Saint Vincent and the Grenadines","deprecated":false,"iso3":"VCT","iso2":"VC","code":"670","type":"country"},{"id":"816c5c8f-f624-561e-99f1-1a26d826a4f3","name":"United States","deprecated":true,"iso3":"USA","iso2":"US","code":"840","type":"country"},{"id":"3fefff2b-d89c-55b1-8cbc-3ef1a65be130","name":"Trinidad and Tobago","deprecated":true,"iso3":"TTO","iso2":"TT","code":"780","type":"country"},{"id":"3589f9a6-a7c1-5332-a139-3f9595fdfd28","name":"Turks and Caicos Islands","deprecated":true,"iso3":"TCA","iso2":"TC","code":"796","type":"country"},{"id":"76d9fd77-8fb0-5b69-a7b9-5ceae0c32261","name":"Sint Maarten","deprecated":false,"iso3":"SXM","iso2":"SX","code":"534","type":"country"},{"id":"85d297a7-310d-59f0-a0ca-ebf303a096cc","name":"El Salvador","deprecated":true,"iso3":"SLV","iso2":"SV","code":"222","type":"country"},{"id":"fa707d6d-a72f-5469-985d-5173dbe32666","name":"Puerto Rico","deprecated":false,"iso3":"PRI","iso2":"PR","code":"630","type":"country"},{"id":"93eb0baf-8f56-5cb2-8282-ab1ad5e85c10","name":"Saint Pierre and Miquelon","deprecated":false,"iso3":"SPM","iso2":"PM","code":"666","type":"country"},{"id":"8701b229-f2cb-5873-9ad8-d4f15407cd99","name":"Panama","deprecated":true,"iso3":"PAN","iso2":"PA","code":"591","type":"country"},{"id":"f9fcc680-cfb6-5541-9a22-5d708e664cd7","name":"Nicaragua","deprecated":true,"iso3":"NIC","iso2":"NI","code":"558","type":"country"},{"id":"2acf54f9-dcef-583a-b011-1ade5b0c8337","name":"Mexico","deprecated":false,"iso3":"MEX","iso2":"MX","code":"484","type":"country"},{"id":"d8b849e3-61d8-5e6b-9616-e84333164d82","name":"Montserrat","deprecated":false,"iso3":"MSR","iso2":"MS","code":"500","type":"country"},{"id":"00bdfb06-2438-5d19-ab21-536be76831df","name":"Martinique","deprecated":false,"iso3":"MTQ","iso2":"MQ","code":"474","type":"country"},{"id":"e41f17d8-47ba-5889-a3f9-757a2d6dbf53","name":"Saint Martin","deprecated":true,"iso3":"MAF","iso2":"MF","code":"663","type":"country"},{"id":"d6056e12-c9d7-52e1-affd-5e54f743c415","name":"Saint Lucia","deprecated":false,"iso3":"LCA","iso2":"LC","code":"662","type":"country"},{"id":"5e6b0423-d9b1-5c70-b1fc-c35c581af83a","name":"Cayman Islands","deprecated":true,"iso3":"CYM","iso2":"KY","code":"136","type":"country"},{"id":"d86293d3-8d1d-59bd-8b48-16fb532231d9","name":"Saint Kitts and Nevis","deprecated":true,"iso3":"KNA","iso2":"KN","code":"659","type":"country"},{"id":"5ca89c40-c558-55ae-b606-c4a7c84900d0","name":"Jamaica","deprecated":true,"iso3":"JAM","iso2":"JM","code":"388","type":"country"},{"id":"d8fbf1b8-0581-5bf5-a03d-ca9382c3a25f","name":"Haiti","deprecated":true,"iso3":"HTI","iso2":"HT","code":"332","type":"country"},{"id":"d42e37aa-8ab2-5cee-be19-f8bc7123029e","name":"Honduras","deprecated":false,"iso3":"HND","iso2":"HN","code":"340","type":"country"},{"id":"deb2c3f7-7c6e-5fae-859a-d19da6b88bf7","name":"Guatemala","deprecated":false,"iso3":"GTM","iso2":"GT","code":"320","type":"country"},{"id":"1339e3d7-5dbf-59d5-9dc4-0c9928509839","name":"Guadeloupe","deprecated":true,"iso3":"GLP","iso2":"GP","code":"312","type":"country"},{"id":"f1ef7a41-03d9-5725-a34c-e7dce349dc68","name":"Greenland","deprecated":true,"iso3":"GRL","iso2":"GL","code":"304","type":"country"},{"id":"627efa23-c14e-5fc0-b2d2-a197986eaa58","name":"Grenada","deprecated":true,"iso3":"GRD","iso2":"GD","code":"308","type":"country"},{"id":"2cef5772-f72d-5ca9-bd72-de4bda8da061","name":"Dominican Republic","deprecated":false,"iso3":"DOM","iso2":"DO","code":"214","type":"country"},{"id":"4ecd121e-af06-5def-a17d-5aeb58e5834b","name":"Dominica","deprecated":true,"iso3":"DMA","iso2":"DM","code":"212","type":"country"},{"id":"57110fb6-aee4-50cf-a1ad-e8e3cf723b03","name":"Curacao","deprecated":false,"iso3":"CUW","iso2":"CW","code":"531","type":"country"},{"id":"473581e5-1b39-5d06-a56c-44a01298ba3d","name":"Cuba","deprecated":false,"iso3":"CUB","iso2":"CU","code":"192","type":"country"},{"id":"6b162de0-602e-5a7d-a241-50ccdb10c3ea","name":"Costa Rica","deprecated":true,"iso3":"CRI","iso2":"CR","code":"188","type":"country"},{"id":"338c3d83-e4bb-5c7e-854a-5370a23c9b06","name":"Canada","deprecated":true,"iso3":"CAN","iso2":"CA","code":"124","type":"country"},{"id":"32ee65e9-d6c1-5d5b-95a4-83dd798ab6fc","name":"Belize","deprecated":true,"iso3":"BLZ","iso2":"BZ","code":"084","type":"country"},{"id":"e37aa05a-1414-5366-abdd-eae7482267de","name":"Bahamas","deprecated":false,"iso3":"BHS","iso2":"BS","code":"044","type":"country"},{"id":"0b32f4f0-c8db-5011-ac99-73bfc4a31ecb","name":"Bonaire","deprecated":true,"iso3":"BES","iso2":"BQ","code":"535","type":"country"},{"id":"8fc88712-b063-55fa-adf9-7d1090098ca4","name":"Bermuda","deprecated":false,"iso3":"BMU","iso2":"BM","code":"060","type":"country"},{"id":"830ae2eb-65f0-56f2-8823-e293c1b6f086","name":"Saint Barthélemy","deprecated":true,"iso3":"BLM","iso2":"BL","code":"652","type":"country"},{"id":"9cd8a90c-1915-51dc-978b-b35c591d11c0","name":"Barbados","deprecated":false,"iso3":"BRB","iso2":"BB","code":"052","type":"country"},{"id":"a91f1f86-8c52-569f-9244-f914a4438731","name":"Aruba","deprecated":true,"iso3":"ABW","iso2":"AW","code":"533","type":"country"},{"id":"50d84fbd-fb07-51a0-ad92-be08d1dd5471","name":"Anguilla","deprecated":true,"iso3":"AIA","iso2":"AI","code":"660","type":"country"},{"id":"2494c782-b35f-5a88-8313-4eda120aa623","name":"Antigua and Barbuda","deprecated":false,"iso3":"ATG","iso2":"AG","code":"028","type":"country"}],"countryCodes":["850","092","670","840","780","796","534","222","630","666","591","558","484","500","474","663","662","136","659","388","332","340","320","312","304","308","214","212","531","192","188","124","084","044","535","060","652","052","533","660","028"]},{"id":"642a86d2-e785-5f88-83a1-6b9299dc0cdf","name":"French Polynesia","deprecated":false,"iso3":"PYF","iso2":"PF","code":"258","type":"country"},{"id":"059ecc8f-4828-5c94-a589-534028509f02","name":"Liechtenstein","deprecated":true,"iso3":"LIE","iso2":"LI","code":"438","type":"country"},{"id":"3358686b-4139-5062-b3a1-e838d19918cf","name":"Heard Island and McDonald Islands","deprecated":true,"iso3":"HMD","iso2":"HM","code":"334","type":"country"},{"id":"9c4fc5b1-9569-52be-a502-a076da629c1a","name":"Falkland Islands","deprecated":false,"iso3":"FLK","iso2":"FK","code":"238","type":"country"},{"id":"f85a38bd-9851-5540-9a47-2bcda221c02f","name":"Mozambique","deprecated":false,"iso3":"MOZ","iso2":"MZ","code":"508","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"}]}],"sourcePorts":[{"id":"d0ecb6d1-cc76-58fb-a392-4e9c9537be4c","name":"icmpv4port2","description":"Asci be jutgu wo susadagi woveven bafosjoc ceec wovukiv tati tepav gu za muhhudbi.","version":"54ed4735-cf04-5504-8a5a-2dd0bec3f5a9","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8251,"isSystemDefined":false},{"id":"39c5e145-2ed4-5038-ab20-3c4878437d1d","name":"icmpv6port2","description":"Fajla geffe heseipu tez toluhpap ve uhmoba garoeb ozafuzli suhwof aw likofat erige hentejpi jajaza faztiav osece na.","version":"d4492bb3-d9b0-52fc-acc6-81061c83c6b8","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8267,"isSystemDefined":false}],"destinationPorts":[{"id":"b19e16f9-5846-596a-9757-161e7154e68c","name":"tcp_port_1","description":"Ruwus webwepfa fo copoko aligimaj riz zeti bivsu jah ve virip kesnenwer fi wede magbuf ojku sadruh ji.","version":"a90e8fa8-216a-59a4-bce1-da2f92acd1ad","type":"tcpportobject","port":8721,"isSystemDefined":true},{"id":"2a40730e-7878-5969-ba53-1d9278cde125","name":"icmpv4port1","description":"Uva ceti behga hetivasu ajbebu rakepe ame ifa aceuriso kejic fucaoti gigvivvo gishelpob jurevmu ov maclefe.","version":"e62c0f51-027e-5a7f-b725-a96162bb7138","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8508,"isSystemDefined":false}],"users":[{"id":"dfe8be9f-f2fb-541e-ba1c-8a51b58462c1","name":"User Group 22","realmName":"dibumolub","type":"trafficusergroup","realmId":2,"version":"ukogomzatkaj"},{"id":"d3638498-9eeb-5283-9a18-cd184ddbf6cd","name":"User 26","realmName":"oppogitceh","type":"trafficuser","realmId":2,"version":"gusedivkaw"},{"id":"35a62df5-7fcc-5388-b945-2d9e91aad74d","name":"User Group 10","realmName":"liravopza","type":"trafficusergroup","realmId":2,"version":"cahiruohalik"}],"embeddedAppFilter":{"conditions":[{"filter":"loweteziwno","tags":[{"id":"11d43e11-683f-5ec2-89c6-6b4e9a8c756d","version":"13924388-a6d9-5f80-8b3b-825736afd2bc","appId":13,"name":"ApplicationTag13","description":"Fiwjag safe jujohmi lipa gucpi la tocgomkap fozensir jafuhi vutbinij jov lifo ciduwno fuzegvef consibe hope.","metadata":{"referenced":true},"type":"applicationtag"}],"categories":[{"id":"24cd3c21-8c19-531f-81d5-08aca7b587b9","version":"b18c67e8-0f51-5f2c-88a2-11994eea44b1","appId":5,"name":"ApplicationCategory5","description":"Camweg wevovic diowu fi vo kacag vibumjih lus bowi ewatige epewa ecifoder mu gopeges.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"3cd37a5a-b5c2-516a-8eb9-c5d87fcdb2a2","version":"76af8e96-44af-5285-a65a-172f138b8941","appId":3,"name":"ApplicationCategory10","description":"Taljooco pi wo cahorti fih heose wicueci emiwoube no iwozovban ip oho im uke wu ko noed.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"VERY_HIGH"}],"type":"applicationfiltercondition"},{"filter":"tazfeofgut","tags":[{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"e9812b72-2a36-5146-bce0-b09f876df88d","version":"080dca18-c677-5dd1-8f2f-40555beb4fe4","appId":10,"name":"ApplicationTag10","description":"Viswilo ariuzaf pih wa mul vugavrip rijfon aba kac giicse wolifa cowudzuv vev iztafit.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"},{"id":"ea9b4aa3-c8a2-52f9-87ba-b33f1b452a42","version":"e289f52e-a078-5581-a775-4c8435a534f0","appId":3,"name":"ApplicationCategory7","description":"Ci sovo ig ivebcag gif uk eztez ezofi jizrebi lafozu ehje daj noiw vajru modpoteh juizu.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"MEDIUM"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"MEDIUM"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"23b60b04-37e5-5da7-97a4-83beab8596e0","version":"c1fea614-149c-52dc-9c9d-00ce915dffcc","name":"ApplicationFilter9","description":"Wir todnofi pifofo ogdaub zane gosi kutoiji at raow bipelba itefogsuk mefen mub mumija.","applications":[{"id":"54cfecf9-a1b7-5d3d-84a4-8f7080027cb4","version":"134633d9-a14f-596d-9ebc-c75915ec96f0","description":"Deg ujalaloj bu talkafda jozbafahu fa lub so ijozuzjef bugte jumojba masihaj teug sil lewga wavefulo inhache.","deprecated":true,"appId":4,"productivity":4,"risk":3,"name":"Application10","tagIds":["df3a88b5-3e3b-5024-9d9f-25d3262ce374","a558b06a-1e83-5caa-a903-3b6e291ddc2e"],"tags":[{"id":"df3a88b5-3e3b-5024-9d9f-25d3262ce374","version":"b689fe7b-2b28-59fb-93cf-3995fe189cf1","appId":3,"name":"ApplicationTag15","description":"Ofihzaj hesa do dawo mipegil bilel liviip mub zahtavso rut nu zaj weuki dep suspufun ac rap.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"a558b06a-1e83-5caa-a903-3b6e291ddc2e","version":"96c0750c-0f50-5872-869a-8b50dad24edc","appId":8,"name":"SSL protocol","description":"Ifgafu ma vopuatu ho jim zud hiodiben ango ji nusiwufu hig gatejsem povci.","metadata":{"referenced":true},"type":"applicationtag"}],"categoryIds":["5f0662ef-3382-5357-bf35-b9b7361aae44","fff4b47c-a653-5729-a31a-e6353d420768"],"categories":[{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"},{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["SERVER","WEBAPP"],"metadata":{"referenced":false},"type":"application"},{"id":"284fc5f4-ac07-5859-abb8-8d3d7e883e07","version":"3c123aed-eabf-5f8f-b009-4bb510d14c1e","description":"Ruz mujjihpil wehuzfe so hobzokbi us vomret wip tos cieriebe nifej ma.","deprecated":true,"appId":4,"productivity":3,"risk":3,"name":"Application12","tagIds":["7269266f-8413-59ef-9085-0de4aa64660b"],"tags":[{"id":"7269266f-8413-59ef-9085-0de4aa64660b","version":"6eb7235a-74ab-5701-8a37-2522e325519d","appId":2,"name":"ApplicationTag2","description":"Zu wep pag palu mazu irowil rag bore ev ica miljov iwoog besjezew fi regevi ap vo.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["7f62abc6-7f08-5a69-acb6-65def01251d4","3cd37a5a-b5c2-516a-8eb9-c5d87fcdb2a2"],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"3cd37a5a-b5c2-516a-8eb9-c5d87fcdb2a2","version":"76af8e96-44af-5285-a65a-172f138b8941","appId":3,"name":"ApplicationCategory10","description":"Taljooco pi wo cahorti fih heose wicueci emiwoube no iwozovban ip oho im uke wu ko noed.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["WEBAPP"],"metadata":{"referenced":true},"type":"application"}],"conditions":[{"filter":"huimezuben","tags":[{"id":"63db3391-02c9-5d1b-b971-5a6427f4c9fe","version":"95d07b80-ad97-50b0-a64b-b279d1420618","appId":5,"name":"ApplicationTag5","description":"Uwano ujeoska rootmaj kammovu ivitarpoh percuk oto bacema da onsevsej jovocoog ge gafed zakas ijwimuf.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"},{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"VERY_HIGH"},{"type":"productivitycondition","productivity":"LOW"},{"type":"productivitycondition","productivity":"HIGH"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":true},"type":"applicationfilter"}],"applications":[{"id":"6361bd7f-01c9-5714-baca-035d66f50a8c","version":"50dcdb47-5d21-537f-b3b0-81713bf31c06","description":"Leku luto lofuwec wuwguhot abmofdo cun vuunuvi lulsoteg kivsas mijmi ru kipumeja sacwuwhe gub magumera.","deprecated":false,"appId":5,"productivity":0,"risk":4,"name":"Application5","tagIds":["0b45de63-5252-5257-acf6-ce494cdb905a"],"tags":[{"id":"0b45de63-5252-5257-acf6-ce494cdb905a","version":"9c3ed423-1b8a-5f1f-aae0-a507cc188490","appId":6,"name":"ApplicationTag6","description":"Varejse ji ogouvu rin nubuten bezozmaj coeg zuralse pa zitomgon lu rigugip.","metadata":{"referenced":true},"type":"applicationtag"}],"categoryIds":["7f62abc6-7f08-5a69-acb6-65def01251d4","fff4b47c-a653-5729-a31a-e6353d420768"],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["SERVER","WEBAPP"],"metadata":{"referenced":true},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"bba3c76d-8a74-5ec9-9bc5-df3008b85742","version":"uwofikigom","name":"UrlGroup2","description":"Eze zuj difruw namoha pu nijizkam owitema konho upi neppo fikcebzi hub zadouf sautiar.","objects":[{"id":"00abb7ee-65e7-5e3e-99f7-9800c0af349c","version":"bogoprobifi","name":"Url15","description":"Mok ujci zasidrob zo man urebanfir gim faseg hacabkuw gi jorabco bitle bek.","url":"http://nufiwow.net/mimce","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlCategory":{"id":"293f3f8b-e996-5139-bee7-ff7e376ed4f0","version":"2b059a77-a530-5bd9-8694-f4754a6e7538","name":"UrlCategory-8","deprecated":false,"urlCategoryId":65534,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"intrusionPolicy":{"id":"a47cb8f6-fe55-11e4-8e99-ipsN10","name":"Connectivity Over Security","links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f6-fe55-11e4-8e99-ipsN10"},"rules":{"links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f6-fe55-11e4-8e99-ipsN10/rules/"}},"description":"Connectivity Over Security Layer","type":"intrusionpolicy","version":"f17dd031-7eba-5f6f-8734-300a871471fe"},"filePolicy":{"id":"9c84889f-8c5c-5643-a489-d01bb07639a5","type":"filepolicy","policyType":"BLOCK_OFFICE_DOCUMENTS_PDF_UPLOAD_BLOCK_MALWARE_OTHERS","name":"File_Policy_3","description":"Mi rul etusisti iphogu acrevdid cas bijcaz nul ceaf napi kegpo su dozpov zikpul lohi gurukdi ke.","version":"d5e7c6d4-1f13-5cd2-9442-bdccd7e4b804"},"logFiles":false,"type":"accessrule"},{"id":"84bf1df8-6803-5feb-aabb-6af69b651dd2","version":"49e10f82-c183-5a01-be50-a01e0743ba74","ruleId":29,"name":"Access_Rule_29","protocol":"TCP","ruleAction":"DENY","eventLogAction":"LOG_NONE","sourceZones":[{"id":"e960df5e-1ab8-5a15-85e5-a7a47f0ebcb0","name":"SecurityZone5Name","description":"Kinen aziheeci teniow ucezaw idikaki rupbu tieb rawihzec ufkedok iwewun le zihpisze vuzip roetjim fokbuwu jemrumvu cigzet.","version":"0925128c-48f1-552e-8507-379551253d9c","interfaces":[{"mtu":2652,"enabled":true,"description":"Hi vihjuup vueji zufmab wib zel woz ligok wu hi iremouto wahoato.","name":"subinterface5name","id":"9f816351-560c-5e5b-ba0a-2051828301e6","hardwareName":"SubInterface0/5.6","macAddress":"84F0.8C6A.D6DF","monitorInterface":true,"standbyMacAddress":"0971.695D.7024","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"e20a:2b14:aecc:7997:984d:9fcd:b3c4:2e66/32","ipAddress":"5753:596d:3c86:ab69:1e26:fa83:c032:8e71/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"44d8:5ccd:bbcd:60df:d35b:afb7:6211:375b","ipAddress":"7b7c:0b52:9938:5274:ef02:b8c5:577c:5028"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"119.148.92.111","standbyIpAddress":"106.21.74.31"}},"version":"7a7c4c69-3da2-5e43-a1f3-2f8026bfb0bd","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}},{"id":"f13918c2-287c-5026-b2d4-ae18cf69fd8c","name":"SecurityZone2Name","description":"Elaba havor do tifgovew di tobeep osiho gamalun ilokavo hosoc bavmep lo katzakcu we lekucazif jusifi baluhufa ivinu.","version":"f1cb8b72-77e1-524f-9ee0-07e3f6ffb563","interfaces":[{"mtu":5818,"enabled":true,"description":"Eh fiec wepauju fakigi fedep osgitewo wodrah ponkumido fis nozpuri ju geelo doh vipuopu vobuhalu piova bokadar.","id":"09d6217f-2741-5b6a-bd5c-91ca02f54e09","hardwareName":"GigabitEthernet1/6","macAddress":"3539.C649.1EF4","monitorInterface":false,"standbyMacAddress":"AAB5.9320.943C","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"e765:caaf:c971:52be:e7af:9357:6eab:2e59/32","ipAddress":"d168:a40a:b8df:9bc5:d38c:64df:a4fd:4110/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"76da:7d95:05ed:3ac9:4014:58d2:1e81:b4b2","ipAddress":"fdcf:ebe2:84c9:5892:94f3:b209:1cd6:d430"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"46.176.226.56","standbyIpAddress":"252.197.49.100"}},"version":"e18f92be-6c58-55a7-9dea-ccdefd79a44f","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]},{"mtu":5818,"enabled":false,"description":"Wi repiro sisig se wuglo zuzrog wivsel iboabamu wug sew figinfo pada koorcu wun akawobit cuholso wizpeos belidgew.","id":"c95c223c-b583-5d80-88a6-b1ac1b528e5e","hardwareName":"GigabitEthernet1/8","macAddress":"AD75.0711.BDF3","monitorInterface":false,"standbyMacAddress":"C7BE.0512.EDE1","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"4d6e:8d99:e5e9:8e08:03ed:ac78:12d9:1abc/32","ipAddress":"5b5a:9ba8:4d53:74f4:b2b9:b36b:2930:3030/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"919d:d8d6:cac4:18ed:5582:4d98:5afa:7f30","ipAddress":"9bfa:b940:f6b8:cd45:9eb6:d07e:09a6:b747"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"206.102.168.38","standbyIpAddress":"47.171.86.122"}},"version":"88bd96c5-891e-5b48-ab25-5091e3dfe377","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"destinationZones":[{"id":"95a6c824-af98-562a-8be6-adc2446c4a09","name":"SecurityZone4Name","description":"Hu nevsuzwiz lezjab hidlurus la pak relte kew umigo zo kopi jetjata.","version":"73028d64-6d1e-5a0a-9f3c-db515f246240","interfaces":[{"mtu":2652,"enabled":false,"description":"Zojin ohdahe kulgune acme eriocopus wubvi hulwic buscub daugeiw ekdegwa jijekub ko gijenog lokrogri tolev tiassi pejliuda.","name":"subinterface6name","id":"bf6765a2-9e9f-506d-a381-329a46273a43","hardwareName":"SubInterface0/6.7","macAddress":"35AF.6E50.0377","monitorInterface":true,"standbyMacAddress":"D947.0A8F.425F","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"7206:d020:f8c8:c150:b059:d35c:3824:c1ae/32","ipAddress":"be49:09fb:26ce:f506:0899:43c5:ce17:4143/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"080b:aa66:ca0d:4375:d7c7:8cbb:8978:46f0","ipAddress":"a226:34cd:63b0:a860:aa22:3304:05a5:a64f"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"96.51.91.99","standbyIpAddress":"231.94.58.66"}},"version":"68043109-6c4e-5a0f-8df0-d01122d3c319","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}}],"sourceNetworks":[{"id":"0f1e5697-c424-59ac-87dd-bc36e3c08465","name":"Network10","description":"Gowvis opopijab joswirud jezow feud ikibik ruronub oh zoteso ilohhu wif wezagina mi dov riluj luffepcep safes zeksim.","version":"59a184bf-98ff-5f9a-a5c3-67542f91153d","type":"networkobject","subType":"NETWORK","value":"146.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"929d7320-9aa2-52c7-b853-76aae05eef6b","name":"Network8","description":"Todviad wi vuckivna otkot nevaiz divu caszi fezmirera tumhugej muv bi vedohile.","version":"cf69d58a-8e9c-52c5-af3f-f3d5f88cd456","type":"networkobject","subType":"HOST","value":"6804:d23a:5056:cdbd:dc9f:9d53:1cf7:f368","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"302b9321-60fd-55ac-8111-7b228ba8a7bc","name":"Geolocation1","description":"Eretalta mov naw dibravwe vimu bek ose wipa ecgule kesep pewaco we taruhra awsen kef poin tu fazu.","version":"b9a8a2e0-c5ff-5705-8d0f-b488b9275e46","type":"geolocation","locations":[{"id":"56ea454f-c3b7-5928-88b1-fc3c7937519a","name":"Africa","deprecated":true,"code":1001,"type":"continent","countries":[{"id":"2dd83d58-9368-513e-8bca-464e074764f6","name":"Zimbabwe","deprecated":true,"iso3":"ZWE","iso2":"ZW","code":"716","type":"country"},{"id":"7cd6bf9c-8b69-57c2-abf6-6eeb0741de15","name":"Zambia","deprecated":true,"iso3":"ZMB","iso2":"ZM","code":"894","type":"country"},{"id":"f2d94483-8127-5b5c-9f56-26897f391615","name":"South Africa","deprecated":false,"iso3":"ZAF","iso2":"ZA","code":"710","type":"country"},{"id":"67312148-f472-5f74-af7e-da0dfe6c5483","name":"Mayotte","deprecated":true,"iso3":"MYT","iso2":"YT","code":"175","type":"country"},{"id":"16d66ae1-8a56-5b81-8a83-6f7123be2e2c","name":"Uganda","deprecated":false,"iso3":"UGA","iso2":"UG","code":"800","type":"country"},{"id":"b1825e78-1df2-5592-a76e-7442de702238","name":"Tanzania","deprecated":false,"iso3":"TZA","iso2":"TZ","code":"834","type":"country"},{"id":"34105ec6-4fd5-5617-8a55-a033b433501b","name":"Tunisia","deprecated":false,"iso3":"TUN","iso2":"TN","code":"788","type":"country"},{"id":"00827e94-7231-522b-a92c-c43381c394b0","name":"Togo","deprecated":true,"iso3":"TGO","iso2":"TG","code":"768","type":"country"},{"id":"5b1f4a78-73fb-5d81-b087-a43e6a56210e","name":"Chad","deprecated":true,"iso3":"TCD","iso2":"TD","code":"148","type":"country"},{"id":"4390d558-ea24-5aab-92ed-7ea167512925","name":"Swaziland","deprecated":false,"iso3":"SWZ","iso2":"SZ","code":"748","type":"country"},{"id":"22e9a10d-c048-5bce-92b3-d35ba32a2380","name":"São Tomé and PrÃncipe","deprecated":false,"iso3":"STP","iso2":"ST","code":"678","type":"country"},{"id":"175e350b-3e7b-5988-92a5-b8592f89a5d0","name":"South Sudan","deprecated":true,"iso3":"SSD","iso2":"SS","code":"728","type":"country"},{"id":"408c17e6-3750-56ba-b74d-14cece756b69","name":"Somalia","deprecated":false,"iso3":"SOM","iso2":"SO","code":"706","type":"country"},{"id":"bed65f83-79ce-514e-a9c2-24bae1906576","name":"Senegal","deprecated":true,"iso3":"SEN","iso2":"SN","code":"686","type":"country"},{"id":"81415c05-a391-5182-8902-0f48ee21358a","name":"Sierra Leone","deprecated":true,"iso3":"SLE","iso2":"SL","code":"694","type":"country"},{"id":"50c46fa0-0451-5e15-9bbc-846a527de114","name":"Saint Helena","deprecated":true,"iso3":"SHN","iso2":"SH","code":"654","type":"country"},{"id":"c2a050bc-b370-5bcd-945c-cd0d88d814ee","name":"Sudan","deprecated":false,"iso3":"SDN","iso2":"SD","code":"729","type":"country"},{"id":"2792902e-5e01-5294-bd39-4a9b86443f69","name":"Seychelles","deprecated":false,"iso3":"SYC","iso2":"SC","code":"690","type":"country"},{"id":"e6e6e19f-26b3-53cc-ae5c-ad6af73ffa23","name":"Rwanda","deprecated":false,"iso3":"RWA","iso2":"RW","code":"646","type":"country"},{"id":"1657adab-03a4-556a-b779-d62bf356497f","name":"Réunion","deprecated":true,"iso3":"REU","iso2":"RE","code":"638","type":"country"},{"id":"db11cb4c-3534-5c9a-bd15-7b41c5b161d6","name":"Nigeria","deprecated":false,"iso3":"NGA","iso2":"NG","code":"566","type":"country"},{"id":"271aded5-deef-50b9-9e02-ec55543da25b","name":"Niger","deprecated":true,"iso3":"NER","iso2":"NE","code":"562","type":"country"},{"id":"a8f12931-d0a3-5ead-b8f7-26c9d8e29684","name":"Namibia","deprecated":false,"iso3":"NAM","iso2":"NA","code":"516","type":"country"},{"id":"f85a38bd-9851-5540-9a47-2bcda221c02f","name":"Mozambique","deprecated":false,"iso3":"MOZ","iso2":"MZ","code":"508","type":"country"},{"id":"26316b70-a4e5-5ee7-9176-d8f88977ac81","name":"Malawi","deprecated":false,"iso3":"MWI","iso2":"MW","code":"454","type":"country"},{"id":"8ac5e628-88fe-5a8f-a8e8-5e9823bed8c9","name":"Mauritius","deprecated":true,"iso3":"MUS","iso2":"MU","code":"480","type":"country"},{"id":"6286246a-cb95-57c8-bf4d-85524e069dc9","name":"Mauritania","deprecated":false,"iso3":"MRT","iso2":"MR","code":"478","type":"country"},{"id":"9eaf4ef5-fcd1-55b8-b344-7b60f9acbb2a","name":"Mali","deprecated":true,"iso3":"MLI","iso2":"ML","code":"466","type":"country"},{"id":"3158c9ea-2e08-5057-923c-a252e9bbceb5","name":"Madagascar","deprecated":true,"iso3":"MDG","iso2":"MG","code":"450","type":"country"},{"id":"b110114a-4903-54d2-8925-cfa66175fc81","name":"Morocco","deprecated":true,"iso3":"MAR","iso2":"MA","code":"504","type":"country"},{"id":"ac567919-9e6f-5712-8ef8-817d2875ae89","name":"Libya","deprecated":false,"iso3":"LBY","iso2":"LY","code":"434","type":"country"},{"id":"b82c039e-20c2-50f0-9176-307e154d19cd","name":"Lesotho","deprecated":true,"iso3":"LSO","iso2":"LS","code":"426","type":"country"},{"id":"936e5855-cede-5036-b530-4a8dc3ded9f1","name":"Liberia","deprecated":true,"iso3":"LBR","iso2":"LR","code":"430","type":"country"},{"id":"781554f5-83af-5829-a0b1-f679ccadcbc8","name":"Comoros","deprecated":true,"iso3":"COM","iso2":"KM","code":"174","type":"country"},{"id":"ef9608a5-3398-5610-9770-361e8f4d5018","name":"Kenya","deprecated":false,"iso3":"KEN","iso2":"KE","code":"404","type":"country"},{"id":"7ff14832-3c58-5e8d-b6fa-7d211d0eddea","name":"Guinea-Bissau","deprecated":true,"iso3":"GNB","iso2":"GW","code":"624","type":"country"},{"id":"24ef0507-02b5-58d8-a403-8087853d0d0e","name":"Equatorial Guinea","deprecated":false,"iso3":"GNQ","iso2":"GQ","code":"226","type":"country"},{"id":"8b2e1fe0-df59-514f-8cad-46e618371f10","name":"Guinea","deprecated":false,"iso3":"GIN","iso2":"GN","code":"324","type":"country"},{"id":"2311d16e-f8c8-5db8-9446-ddc015dee026","name":"Gambia","deprecated":true,"iso3":"GMB","iso2":"GM","code":"270","type":"country"},{"id":"9cbd51af-d825-56f1-b3c3-1412697fe6d8","name":"Ghana","deprecated":true,"iso3":"GHA","iso2":"GH","code":"288","type":"country"},{"id":"1a6265f3-08ce-57c4-9d8d-8807bc7c3f96","name":"Gabon","deprecated":true,"iso3":"GAB","iso2":"GA","code":"266","type":"country"},{"id":"7466e390-4ac7-5c6e-8ae7-cffbf4d26761","name":"Ethiopia","deprecated":false,"iso3":"ETH","iso2":"ET","code":"231","type":"country"},{"id":"1b6630d5-2650-5baf-b9a5-fa59fbbd36be","name":"Eritrea","deprecated":false,"iso3":"ERI","iso2":"ER","code":"232","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"},{"id":"23a4cd6d-3738-547b-9e3a-82d60efe6864","name":"Egypt","deprecated":true,"iso3":"EGY","iso2":"EG","code":"818","type":"country"},{"id":"bd6f190e-df1a-568c-94cc-8fbb7394522f","name":"Algeria","deprecated":false,"iso3":"DZA","iso2":"DZ","code":"012","type":"country"},{"id":"9c992f6e-72f5-5d6b-8fb9-b23909129b08","name":"Djibouti","deprecated":true,"iso3":"DJI","iso2":"DJ","code":"262","type":"country"},{"id":"63696b95-bded-58f4-8b4e-402397cfcd8a","name":"Cape Verde","deprecated":true,"iso3":"CPV","iso2":"CV","code":"132","type":"country"},{"id":"6d854d95-e91f-53cb-a1f2-1e07d51eb137","name":"Cameroon","deprecated":false,"iso3":"CMR","iso2":"CM","code":"120","type":"country"},{"id":"e8286886-6019-50d6-b0b4-315f7b9f2cef","name":"Ivory Coast","deprecated":false,"iso3":"CIV","iso2":"CI","code":"384","type":"country"},{"id":"97916595-e2d1-5214-87e2-e242bf4ad893","name":"Republic of the Congo","deprecated":false,"iso3":"COG","iso2":"CG","code":"178","type":"country"},{"id":"b1b8664b-d80d-5480-9b9a-a1ac997bd533","name":"Central African Republic","deprecated":false,"iso3":"CAF","iso2":"CF","code":"140","type":"country"},{"id":"8789e5fc-90ef-5dc5-942f-1f0f6bef20e2","name":"Democratic Republic of the Congo","deprecated":false,"iso3":"COD","iso2":"CD","code":"180","type":"country"},{"id":"e8bab11d-42db-5ff0-a68d-81d7fdae7000","name":"Botswana","deprecated":false,"iso3":"BWA","iso2":"BW","code":"072","type":"country"},{"id":"74442316-edea-5c33-9f4e-de1677f848a1","name":"Benin","deprecated":true,"iso3":"BEN","iso2":"BJ","code":"204","type":"country"},{"id":"a666ef14-444e-5605-add7-3a1a1bf028d6","name":"Burundi","deprecated":true,"iso3":"BDI","iso2":"BI","code":"108","type":"country"},{"id":"b4bd346d-94ee-5893-8439-83dcc230d37e","name":"Burkina Faso","deprecated":false,"iso3":"BFA","iso2":"BF","code":"854","type":"country"},{"id":"c6218172-7179-5f37-9302-48a0ac1e3082","name":"Angola","deprecated":true,"iso3":"AGO","iso2":"AO","code":"024","type":"country"}],"countryCodes":["716","894","710","175","800","834","788","768","148","748","678","728","706","686","694","654","729","690","646","638","566","562","516","508","454","480","478","466","450","504","434","426","430","174","404","624","226","324","270","288","266","231","232","732","818","012","262","132","120","384","178","140","180","072","204","108","854","024"]},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"d992dc09-5ab5-5126-a966-51dd89360213","name":"Cyprus","deprecated":false,"iso3":"CYP","iso2":"CY","code":"196","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"},{"id":"465abc15-6361-5901-99d0-014fd0a8fb59","name":"Peru","deprecated":false,"iso3":"PER","iso2":"PE","code":"604","type":"country"},{"id":"8fc88712-b063-55fa-adf9-7d1090098ca4","name":"Bermuda","deprecated":false,"iso3":"BMU","iso2":"BM","code":"060","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"}]}],"destinationNetworks":[{"id":"0f1e5697-c424-59ac-87dd-bc36e3c08465","name":"Network10","description":"Gowvis opopijab joswirud jezow feud ikibik ruronub oh zoteso ilohhu wif wezagina mi dov riluj luffepcep safes zeksim.","version":"59a184bf-98ff-5f9a-a5c3-67542f91153d","type":"networkobject","subType":"NETWORK","value":"146.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"929d7320-9aa2-52c7-b853-76aae05eef6b","name":"Network8","description":"Todviad wi vuckivna otkot nevaiz divu caszi fezmirera tumhugej muv bi vedohile.","version":"cf69d58a-8e9c-52c5-af3f-f3d5f88cd456","type":"networkobject","subType":"HOST","value":"6804:d23a:5056:cdbd:dc9f:9d53:1cf7:f368","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"302b9321-60fd-55ac-8111-7b228ba8a7bc","name":"Geolocation1","description":"Eretalta mov naw dibravwe vimu bek ose wipa ecgule kesep pewaco we taruhra awsen kef poin tu fazu.","version":"b9a8a2e0-c5ff-5705-8d0f-b488b9275e46","type":"geolocation","locations":[{"id":"56ea454f-c3b7-5928-88b1-fc3c7937519a","name":"Africa","deprecated":true,"code":1001,"type":"continent","countries":[{"id":"2dd83d58-9368-513e-8bca-464e074764f6","name":"Zimbabwe","deprecated":true,"iso3":"ZWE","iso2":"ZW","code":"716","type":"country"},{"id":"7cd6bf9c-8b69-57c2-abf6-6eeb0741de15","name":"Zambia","deprecated":true,"iso3":"ZMB","iso2":"ZM","code":"894","type":"country"},{"id":"f2d94483-8127-5b5c-9f56-26897f391615","name":"South Africa","deprecated":false,"iso3":"ZAF","iso2":"ZA","code":"710","type":"country"},{"id":"67312148-f472-5f74-af7e-da0dfe6c5483","name":"Mayotte","deprecated":true,"iso3":"MYT","iso2":"YT","code":"175","type":"country"},{"id":"16d66ae1-8a56-5b81-8a83-6f7123be2e2c","name":"Uganda","deprecated":false,"iso3":"UGA","iso2":"UG","code":"800","type":"country"},{"id":"b1825e78-1df2-5592-a76e-7442de702238","name":"Tanzania","deprecated":false,"iso3":"TZA","iso2":"TZ","code":"834","type":"country"},{"id":"34105ec6-4fd5-5617-8a55-a033b433501b","name":"Tunisia","deprecated":false,"iso3":"TUN","iso2":"TN","code":"788","type":"country"},{"id":"00827e94-7231-522b-a92c-c43381c394b0","name":"Togo","deprecated":true,"iso3":"TGO","iso2":"TG","code":"768","type":"country"},{"id":"5b1f4a78-73fb-5d81-b087-a43e6a56210e","name":"Chad","deprecated":true,"iso3":"TCD","iso2":"TD","code":"148","type":"country"},{"id":"4390d558-ea24-5aab-92ed-7ea167512925","name":"Swaziland","deprecated":false,"iso3":"SWZ","iso2":"SZ","code":"748","type":"country"},{"id":"22e9a10d-c048-5bce-92b3-d35ba32a2380","name":"São Tomé and PrÃncipe","deprecated":false,"iso3":"STP","iso2":"ST","code":"678","type":"country"},{"id":"175e350b-3e7b-5988-92a5-b8592f89a5d0","name":"South Sudan","deprecated":true,"iso3":"SSD","iso2":"SS","code":"728","type":"country"},{"id":"408c17e6-3750-56ba-b74d-14cece756b69","name":"Somalia","deprecated":false,"iso3":"SOM","iso2":"SO","code":"706","type":"country"},{"id":"bed65f83-79ce-514e-a9c2-24bae1906576","name":"Senegal","deprecated":true,"iso3":"SEN","iso2":"SN","code":"686","type":"country"},{"id":"81415c05-a391-5182-8902-0f48ee21358a","name":"Sierra Leone","deprecated":true,"iso3":"SLE","iso2":"SL","code":"694","type":"country"},{"id":"50c46fa0-0451-5e15-9bbc-846a527de114","name":"Saint Helena","deprecated":true,"iso3":"SHN","iso2":"SH","code":"654","type":"country"},{"id":"c2a050bc-b370-5bcd-945c-cd0d88d814ee","name":"Sudan","deprecated":false,"iso3":"SDN","iso2":"SD","code":"729","type":"country"},{"id":"2792902e-5e01-5294-bd39-4a9b86443f69","name":"Seychelles","deprecated":false,"iso3":"SYC","iso2":"SC","code":"690","type":"country"},{"id":"e6e6e19f-26b3-53cc-ae5c-ad6af73ffa23","name":"Rwanda","deprecated":false,"iso3":"RWA","iso2":"RW","code":"646","type":"country"},{"id":"1657adab-03a4-556a-b779-d62bf356497f","name":"Réunion","deprecated":true,"iso3":"REU","iso2":"RE","code":"638","type":"country"},{"id":"db11cb4c-3534-5c9a-bd15-7b41c5b161d6","name":"Nigeria","deprecated":false,"iso3":"NGA","iso2":"NG","code":"566","type":"country"},{"id":"271aded5-deef-50b9-9e02-ec55543da25b","name":"Niger","deprecated":true,"iso3":"NER","iso2":"NE","code":"562","type":"country"},{"id":"a8f12931-d0a3-5ead-b8f7-26c9d8e29684","name":"Namibia","deprecated":false,"iso3":"NAM","iso2":"NA","code":"516","type":"country"},{"id":"f85a38bd-9851-5540-9a47-2bcda221c02f","name":"Mozambique","deprecated":false,"iso3":"MOZ","iso2":"MZ","code":"508","type":"country"},{"id":"26316b70-a4e5-5ee7-9176-d8f88977ac81","name":"Malawi","deprecated":false,"iso3":"MWI","iso2":"MW","code":"454","type":"country"},{"id":"8ac5e628-88fe-5a8f-a8e8-5e9823bed8c9","name":"Mauritius","deprecated":true,"iso3":"MUS","iso2":"MU","code":"480","type":"country"},{"id":"6286246a-cb95-57c8-bf4d-85524e069dc9","name":"Mauritania","deprecated":false,"iso3":"MRT","iso2":"MR","code":"478","type":"country"},{"id":"9eaf4ef5-fcd1-55b8-b344-7b60f9acbb2a","name":"Mali","deprecated":true,"iso3":"MLI","iso2":"ML","code":"466","type":"country"},{"id":"3158c9ea-2e08-5057-923c-a252e9bbceb5","name":"Madagascar","deprecated":true,"iso3":"MDG","iso2":"MG","code":"450","type":"country"},{"id":"b110114a-4903-54d2-8925-cfa66175fc81","name":"Morocco","deprecated":true,"iso3":"MAR","iso2":"MA","code":"504","type":"country"},{"id":"ac567919-9e6f-5712-8ef8-817d2875ae89","name":"Libya","deprecated":false,"iso3":"LBY","iso2":"LY","code":"434","type":"country"},{"id":"b82c039e-20c2-50f0-9176-307e154d19cd","name":"Lesotho","deprecated":true,"iso3":"LSO","iso2":"LS","code":"426","type":"country"},{"id":"936e5855-cede-5036-b530-4a8dc3ded9f1","name":"Liberia","deprecated":true,"iso3":"LBR","iso2":"LR","code":"430","type":"country"},{"id":"781554f5-83af-5829-a0b1-f679ccadcbc8","name":"Comoros","deprecated":true,"iso3":"COM","iso2":"KM","code":"174","type":"country"},{"id":"ef9608a5-3398-5610-9770-361e8f4d5018","name":"Kenya","deprecated":false,"iso3":"KEN","iso2":"KE","code":"404","type":"country"},{"id":"7ff14832-3c58-5e8d-b6fa-7d211d0eddea","name":"Guinea-Bissau","deprecated":true,"iso3":"GNB","iso2":"GW","code":"624","type":"country"},{"id":"24ef0507-02b5-58d8-a403-8087853d0d0e","name":"Equatorial Guinea","deprecated":false,"iso3":"GNQ","iso2":"GQ","code":"226","type":"country"},{"id":"8b2e1fe0-df59-514f-8cad-46e618371f10","name":"Guinea","deprecated":false,"iso3":"GIN","iso2":"GN","code":"324","type":"country"},{"id":"2311d16e-f8c8-5db8-9446-ddc015dee026","name":"Gambia","deprecated":true,"iso3":"GMB","iso2":"GM","code":"270","type":"country"},{"id":"9cbd51af-d825-56f1-b3c3-1412697fe6d8","name":"Ghana","deprecated":true,"iso3":"GHA","iso2":"GH","code":"288","type":"country"},{"id":"1a6265f3-08ce-57c4-9d8d-8807bc7c3f96","name":"Gabon","deprecated":true,"iso3":"GAB","iso2":"GA","code":"266","type":"country"},{"id":"7466e390-4ac7-5c6e-8ae7-cffbf4d26761","name":"Ethiopia","deprecated":false,"iso3":"ETH","iso2":"ET","code":"231","type":"country"},{"id":"1b6630d5-2650-5baf-b9a5-fa59fbbd36be","name":"Eritrea","deprecated":false,"iso3":"ERI","iso2":"ER","code":"232","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"},{"id":"23a4cd6d-3738-547b-9e3a-82d60efe6864","name":"Egypt","deprecated":true,"iso3":"EGY","iso2":"EG","code":"818","type":"country"},{"id":"bd6f190e-df1a-568c-94cc-8fbb7394522f","name":"Algeria","deprecated":false,"iso3":"DZA","iso2":"DZ","code":"012","type":"country"},{"id":"9c992f6e-72f5-5d6b-8fb9-b23909129b08","name":"Djibouti","deprecated":true,"iso3":"DJI","iso2":"DJ","code":"262","type":"country"},{"id":"63696b95-bded-58f4-8b4e-402397cfcd8a","name":"Cape Verde","deprecated":true,"iso3":"CPV","iso2":"CV","code":"132","type":"country"},{"id":"6d854d95-e91f-53cb-a1f2-1e07d51eb137","name":"Cameroon","deprecated":false,"iso3":"CMR","iso2":"CM","code":"120","type":"country"},{"id":"e8286886-6019-50d6-b0b4-315f7b9f2cef","name":"Ivory Coast","deprecated":false,"iso3":"CIV","iso2":"CI","code":"384","type":"country"},{"id":"97916595-e2d1-5214-87e2-e242bf4ad893","name":"Republic of the Congo","deprecated":false,"iso3":"COG","iso2":"CG","code":"178","type":"country"},{"id":"b1b8664b-d80d-5480-9b9a-a1ac997bd533","name":"Central African Republic","deprecated":false,"iso3":"CAF","iso2":"CF","code":"140","type":"country"},{"id":"8789e5fc-90ef-5dc5-942f-1f0f6bef20e2","name":"Democratic Republic of the Congo","deprecated":false,"iso3":"COD","iso2":"CD","code":"180","type":"country"},{"id":"e8bab11d-42db-5ff0-a68d-81d7fdae7000","name":"Botswana","deprecated":false,"iso3":"BWA","iso2":"BW","code":"072","type":"country"},{"id":"74442316-edea-5c33-9f4e-de1677f848a1","name":"Benin","deprecated":true,"iso3":"BEN","iso2":"BJ","code":"204","type":"country"},{"id":"a666ef14-444e-5605-add7-3a1a1bf028d6","name":"Burundi","deprecated":true,"iso3":"BDI","iso2":"BI","code":"108","type":"country"},{"id":"b4bd346d-94ee-5893-8439-83dcc230d37e","name":"Burkina Faso","deprecated":false,"iso3":"BFA","iso2":"BF","code":"854","type":"country"},{"id":"c6218172-7179-5f37-9302-48a0ac1e3082","name":"Angola","deprecated":true,"iso3":"AGO","iso2":"AO","code":"024","type":"country"}],"countryCodes":["716","894","710","175","800","834","788","768","148","748","678","728","706","686","694","654","729","690","646","638","566","562","516","508","454","480","478","466","450","504","434","426","430","174","404","624","226","324","270","288","266","231","232","732","818","012","262","132","120","384","178","140","180","072","204","108","854","024"]},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"d992dc09-5ab5-5126-a966-51dd89360213","name":"Cyprus","deprecated":false,"iso3":"CYP","iso2":"CY","code":"196","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"},{"id":"465abc15-6361-5901-99d0-014fd0a8fb59","name":"Peru","deprecated":false,"iso3":"PER","iso2":"PE","code":"604","type":"country"},{"id":"8fc88712-b063-55fa-adf9-7d1090098ca4","name":"Bermuda","deprecated":false,"iso3":"BMU","iso2":"BM","code":"060","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"}]}],"sourcePorts":[{"id":"d0ecb6d1-cc76-58fb-a392-4e9c9537be4c","name":"icmpv4port2","description":"Asci be jutgu wo susadagi woveven bafosjoc ceec wovukiv tati tepav gu za muhhudbi.","version":"54ed4735-cf04-5504-8a5a-2dd0bec3f5a9","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8251,"isSystemDefined":false},{"id":"2a40730e-7878-5969-ba53-1d9278cde125","name":"icmpv4port1","description":"Uva ceti behga hetivasu ajbebu rakepe ame ifa aceuriso kejic fucaoti gigvivvo gishelpob jurevmu ov maclefe.","version":"e62c0f51-027e-5a7f-b725-a96162bb7138","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8508,"isSystemDefined":false}],"destinationPorts":[{"id":"ff728962-8729-5bce-941c-1730e280dc0b","name":"icmpv6port1","description":"Uh letiof numsu bokewod gosso sowdilid bevliur idseaho vu delale luctid ila givcogev.","version":"9aca9371-12d1-5490-af24-a87e3160146f","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8452,"isSystemDefined":false},{"id":"5e4d4b4d-706c-5325-b034-896d42bf9087","name":"udp_port_1","description":"Rupkoedo zuv egodid ca buapesug tu mawaduh etaeha pigfa keh it bozute wovi zijuci poscuren ifohhe.","version":"db631abc-32a3-5ca5-8ae5-a3b6f3c8371a","type":"udpportobject","port":8537,"isSystemDefined":true}],"users":[{"id":"5c6ece63-70a7-5455-b42e-83a4a2e3dc3b","name":"User Group 16","realmName":"nofadporog","type":"trafficusergroup","realmId":2,"version":"utjacuwez"},{"id":"34ce25ce-b971-56d3-b495-655fa8025d19","name":"User Group 5","realmName":"tacmisfaku","type":"trafficusergroup","realmId":2,"version":"acufuzanaf"},{"id":"e4cf55a1-9e8b-5e8b-a91e-ed734a516447","name":"User Group 29","realmName":"wicocetifow","type":"trafficusergroup","realmId":2,"version":"ohkofalezi"}],"embeddedAppFilter":{"conditions":[{"filter":"muechicpoh","tags":[{"id":"7269266f-8413-59ef-9085-0de4aa64660b","version":"6eb7235a-74ab-5701-8a37-2522e325519d","appId":2,"name":"ApplicationTag2","description":"Zu wep pag palu mazu irowil rag bore ev ica miljov iwoog besjezew fi regevi ap vo.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"VERY_LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"},{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"},{"filter":"loweteziwno","tags":[{"id":"11d43e11-683f-5ec2-89c6-6b4e9a8c756d","version":"13924388-a6d9-5f80-8b3b-825736afd2bc","appId":13,"name":"ApplicationTag13","description":"Fiwjag safe jujohmi lipa gucpi la tocgomkap fozensir jafuhi vutbinij jov lifo ciduwno fuzegvef consibe hope.","metadata":{"referenced":true},"type":"applicationtag"}],"categories":[{"id":"24cd3c21-8c19-531f-81d5-08aca7b587b9","version":"b18c67e8-0f51-5f2c-88a2-11994eea44b1","appId":5,"name":"ApplicationCategory5","description":"Camweg wevovic diowu fi vo kacag vibumjih lus bowi ewatige epewa ecifoder mu gopeges.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"3cd37a5a-b5c2-516a-8eb9-c5d87fcdb2a2","version":"76af8e96-44af-5285-a65a-172f138b8941","appId":3,"name":"ApplicationCategory10","description":"Taljooco pi wo cahorti fih heose wicueci emiwoube no iwozovban ip oho im uke wu ko noed.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"VERY_HIGH"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"0a6d59d9-86bf-5ca6-bcdc-8f9bbdfa8542","version":"55d07968-5435-5c3e-8840-2f0761cf28e1","name":"ApplicationFilter4","description":"Ro isuopwo azjuswu an dadwiwen kapoteno ifsi vef je omeanni riho lema berezas geci se.","applications":[{"id":"44b7bb09-58d5-59ef-abd3-7341fa4d1c7b","version":"fe155cb3-e78d-5a5b-8713-5c056c0ea86f","description":"Dazgo jefeci dulhel lowez cotgo mu ewuufih indeh bo urjur vursosoc cetco eb.","deprecated":false,"appId":8,"productivity":3,"risk":3,"name":"Application3","tagIds":["58edda62-c97b-56e5-9e6c-32926f4d3009"],"tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["794d6605-f5d9-5f26-b11d-507eac471889","0928e8e9-25a4-53d0-b118-342a26b44100"],"categories":[{"id":"794d6605-f5d9-5f26-b11d-507eac471889","version":"20176f07-7d98-5dd7-8a17-de688ee66220","appId":1,"name":"ApplicationCategory3","description":"Woc ved ecu hin potalbib la uweerabof mato dewahmo avutji wose pujda tunoduz ucu ho zopusno lo mu.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"0928e8e9-25a4-53d0-b118-342a26b44100","version":"cccc44d5-b855-569b-90ad-b26d4e3e0c66","appId":7,"name":"ApplicationCategory8","description":"Mifzonu fokero acdu panvo cuvubde tovli maz cawag kaoj gosoojo falkof hezel sig ca vo wak.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["SERVER"],"metadata":{"referenced":false},"type":"application"}],"conditions":[{"filter":"loweteziwno","tags":[{"id":"11d43e11-683f-5ec2-89c6-6b4e9a8c756d","version":"13924388-a6d9-5f80-8b3b-825736afd2bc","appId":13,"name":"ApplicationTag13","description":"Fiwjag safe jujohmi lipa gucpi la tocgomkap fozensir jafuhi vutbinij jov lifo ciduwno fuzegvef consibe hope.","metadata":{"referenced":true},"type":"applicationtag"}],"categories":[{"id":"24cd3c21-8c19-531f-81d5-08aca7b587b9","version":"b18c67e8-0f51-5f2c-88a2-11994eea44b1","appId":5,"name":"ApplicationCategory5","description":"Camweg wevovic diowu fi vo kacag vibumjih lus bowi ewatige epewa ecifoder mu gopeges.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"3cd37a5a-b5c2-516a-8eb9-c5d87fcdb2a2","version":"76af8e96-44af-5285-a65a-172f138b8941","appId":3,"name":"ApplicationCategory10","description":"Taljooco pi wo cahorti fih heose wicueci emiwoube no iwozovban ip oho im uke wu ko noed.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"VERY_HIGH"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":false},"type":"applicationfilter"}],"applications":[{"id":"f8c5fef0-916a-541e-9113-de4951dde18b","version":"c07380b4-d91f-5a9b-aed7-efbe152c2f6b","description":"Aloul gouwtu riguse luzmokfof somi ehroz esecegwaf fafal heeg ohban fi ijga.","deprecated":true,"appId":6,"productivity":1,"risk":3,"name":"Application6","tagIds":["63db3391-02c9-5d1b-b971-5a6427f4c9fe"],"tags":[{"id":"63db3391-02c9-5d1b-b971-5a6427f4c9fe","version":"95d07b80-ad97-50b0-a64b-b279d1420618","appId":5,"name":"ApplicationTag5","description":"Uwano ujeoska rootmaj kammovu ivitarpoh percuk oto bacema da onsevsej jovocoog ge gafed zakas ijwimuf.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["33552c21-0930-5bb5-8459-9b7608cda68e","794d6605-f5d9-5f26-b11d-507eac471889"],"categories":[{"id":"33552c21-0930-5bb5-8459-9b7608cda68e","version":"73578557-169e-5431-99f4-4a87fb56d57c","appId":4,"name":"ApplicationCategory9","description":"Tir upwul taf foj igonas mawejus ba ni loj racwu pu nelkal gofifun zemcuz ut.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"794d6605-f5d9-5f26-b11d-507eac471889","version":"20176f07-7d98-5dd7-8a17-de688ee66220","appId":1,"name":"ApplicationCategory3","description":"Woc ved ecu hin potalbib la uweerabof mato dewahmo avutji wose pujda tunoduz ucu ho zopusno lo mu.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["WEBAPP"],"metadata":{"referenced":false},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"ef71cd89-a0fc-5994-aaff-0f427dff92fa","version":"pugvagpugmi","name":"UrlGroup5","description":"Muhzipil korezoki kuwelas fojulcud jum ineteig ob zeluc mekpufes api ajnovawa ro tadi.","objects":[{"id":"0776578c-c6ee-58a3-91de-7d50b64343b8","version":"bimupair","name":"Url7","description":"Mer komad cozmersul el gaze fupfod gij pikukkop kavimgen befowez guwojo bikpogezu ice niruvpo ganal ovo taun.","url":"http://difepfel.io/ovcekwe","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlReputation":{"id":"e486bdfa-148b-5bc2-8d36-a9ff520e6100","name":"Benign sites with security risks","index":3,"startPercentage":41,"endPercentage":60,"version":"b9f77c01-ede9-55d2-b674-61ac711565ec","type":"urlreputation"},"urlCategory":{"id":"fef571b3-8633-5be7-9cef-47c0dc5a43a7","version":"2b4b99aa-307f-5ed5-b7f3-5c9e0fa8846e","name":"UrlCategory-4","deprecated":false,"urlCategoryId":4,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"logFiles":false,"type":"accessrule"},{"id":"01c653a0-c459-55e3-9f61-539ba5e169df","version":"aa190f15-92c9-5212-b91b-d84c6d6cb19f","ruleId":30,"name":"Access_Rule_30","protocol":"TCP","ruleAction":"PERMIT","eventLogAction":"LOG_BOTH","syslogServer":{"id":"f2c4e7eb-7291-5517-9517-856dc94ff74d","version":"a0453a75-4ee6-5add-9577-adc5172a2d03","host":"57.182.210.210","port":5897,"protocol":"TCP","useManagementInterface":true,"type":"syslogserver"},"sourceZones":[{"id":"a3e7f3ef-3d09-5365-9a73-229ded43ba48","name":"SecurityZone15Name","description":"Wofa mukko zugal efamosaj ape vurugepa memepi woutod lu ergifde ceini den pegvuni ja.","version":"e721fda0-83ce-51b6-a003-bedfe42bb5db","interfaces":[{"mtu":2652,"enabled":false,"description":"Bo afri kewbiezu atda okpibmim faelaja jip tu ena oc pek mu piwnehsab puspon nuuja ziwelnak ilwu teew.","name":"subinterface9name","id":"a54e4784-eafc-5bc4-bfa1-985dd51ea923","hardwareName":"SubInterface0/9.10","macAddress":"A82E.76DF.F146","monitorInterface":false,"standbyMacAddress":"11D9.182D.C518","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"4f09:724e:c874:a60e:ff7c:0374:170f:cacf/32","ipAddress":"4313:8aa3:d274:f439:ea48:c8c7:c19b:22e2/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"0484:520a:88d4:9a88:6e95:64c9:65b9:f83b","ipAddress":"4ad5:881b:7ff6:552a:b882:7de7:21fc:972d"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"0.192.1.63","standbyIpAddress":"195.235.84.107"}},"version":"877f9f31-9402-5eaa-b18c-9333e068e73e","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}},{"id":"7fa724f3-b64c-585b-9176-69aed2b36237","name":"SecurityZone1Name","description":"Do pefa ritapo ovauciku vogomougi utino gudo momna sagocbiw bowce awu muzabwoz zetpec kit fe.","version":"9d1d113e-86e0-5106-9f6c-29cc8e8fc7fb","interfaces":[{"mtu":5818,"enabled":true,"description":"Wonca cotfo biok ugfejbah ro itedere itoh pijazu ocozojgi buk facheuho zo.","id":"ef57753e-8a0c-5454-a3b3-fbc3c570851d","hardwareName":"GigabitEthernet1/3","macAddress":"34B5.AF3E.B9E9","monitorInterface":true,"standbyMacAddress":"4AF5.3F46.87FE","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"da83:da11:93ff:4f56:084e:f1c1:269c:0dd0/32","ipAddress":"831e:6e6b:281e:8b10:94d0:03f1:b4d5:3373/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"6a3f:c0b2:5d20:fdb6:945d:bcd1:a144:7558","ipAddress":"af4f:d5f4:67bb:3263:e183:fc6c:ea34:f2e6"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"204.8.215.52","standbyIpAddress":"108.106.112.194"}},"version":"46c1bc9f-9a0a-5425-8dc2-3a04dd84c3f1","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"destinationZones":[{"id":"83e3721c-b23f-5eb1-b660-40655c216680","name":"SecurityZone9Name","description":"Iha kiuh ja iweacce tuh hajmipjuj fikufuv bofijwi esede tu gahak wenab belif lupilsif udo puzabke ferfa ofwon.","version":"17150a55-f982-526f-aa60-9e435d2c5455","interfaces":[{"mtu":5818,"enabled":true,"description":"Wabjenuv vuhtevguf zucce omiogu anitug cuho gaejma vesumob oduuro levhid uniozwej olkavcuv dawiim mehub wuka suj.","id":"3faf4981-2b04-5091-9c1f-fa0ab78379b4","hardwareName":"GigabitEthernet1/5","macAddress":"7472.5071.519E","monitorInterface":false,"standbyMacAddress":"5387.1EFE.E0E6","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"84c0:cd09:bceb:ce0c:5cfa:f535:d426:01db/32","ipAddress":"067a:e7f9:1bf0:6af4:b89b:4c11:ec0c:51b4/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"02eb:e82a:bb44:e0a0:d969:6055:6744:cfa2","ipAddress":"aa33:0271:1f23:9725:0d24:7767:0fd2:0cf8"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"6.124.202.116","standbyIpAddress":"40.108.171.23"}},"version":"472d2c22-e548-5cb1-983f-f81ee3e14422","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]},{"mtu":5818,"enabled":true,"description":"Dib wohomfa it firasugu joev ge nu dab caejuja ba no owezru rijbofnuv da ren.","name":"outside","id":"056580af-b7b5-5ea4-9434-84acde7b7b2b","hardwareName":"GigabitEthernet1/2","macAddress":"B807.AD9D.0E4C","monitorInterface":false,"standbyMacAddress":"8F66.A03C.5C85","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"398d:4979:fd8c:5c79:130d:af73:39ac:575b/32","ipAddress":"0e08:b1ea:5a22:75ba:8e01:eaed:3442:684c/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"264c:f9d4:85a8:fdee:b56d:4b03:96d7:6285","ipAddress":"d0f4:3235:0882:22a2:f8c8:c2db:683c:9639"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"178.90.249.165","standbyIpAddress":"41.101.191.177"}},"version":"53c69bde-efdf-5307-96bb-1d0c92bec9a5","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"PASSIVE","type":"physicalinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}}],"sourceNetworks":[{"id":"00826312-17b2-5b1e-968a-aabe114f0734","name":"Network6","description":"Je anah sankorir zaduv noscipan ron pi dubsanuf motnod ugufu zacew idu wafsembuc lo roge almoh lah.","version":"59e9909f-27d5-5e47-8d77-210909065352","type":"networkobject","subType":"NETWORK","value":"234.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"929d7320-9aa2-52c7-b853-76aae05eef6b","name":"Network8","description":"Todviad wi vuckivna otkot nevaiz divu caszi fezmirera tumhugej muv bi vedohile.","version":"cf69d58a-8e9c-52c5-af3f-f3d5f88cd456","type":"networkobject","subType":"HOST","value":"6804:d23a:5056:cdbd:dc9f:9d53:1cf7:f368","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"ae1c0317-eff4-5a33-8a62-261109073d87","name":"Geolocation5","description":"Fihedrag najdeimi ofu remig amokeso duzodro pa guanru isojo honune bumcozi nu.","version":"01c4fd80-7bdc-5ee1-8f7c-de9ff5bbd08d","type":"geolocation","locations":[{"id":"d6f6aa91-7e0d-5137-abbf-328cc779888c","name":"Antarctica","deprecated":true,"code":1004,"type":"continent","countries":[{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"3358686b-4139-5062-b3a1-e838d19918cf","name":"Heard Island and McDonald Islands","deprecated":true,"iso3":"HMD","iso2":"HM","code":"334","type":"country"},{"id":"ba4897cd-087a-5292-b1be-d3a00a7f26bb","name":"South Georgia and the South Sandwich Islands","deprecated":true,"iso3":"SGS","iso2":"GS","code":"239","type":"country"},{"id":"fa4cea3e-1888-5481-9934-8f815bc26857","name":"Bouvet Island","deprecated":true,"iso3":"BVT","iso2":"BV","code":"074","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"}],"countryCodes":["260","334","239","074","010"]},{"id":"9442da73-6b47-5cab-8a0b-baa977ec390b","name":"Tonga","deprecated":true,"iso3":"TON","iso2":"TO","code":"776","type":"country"},{"id":"0a95f5f3-ed92-5adb-9e53-3a1d516b33f1","name":"Iceland","deprecated":true,"iso3":"ISL","iso2":"IS","code":"352","type":"country"},{"id":"a05f1e97-1b5e-5f45-b53a-373f28de0edc","name":"Uruguay","deprecated":false,"iso3":"URY","iso2":"UY","code":"858","type":"country"},{"id":"e6bb9c77-a955-5f2b-ac2d-9082a5160f71","name":"British Virgin Islands","deprecated":true,"iso3":"VGB","iso2":"VG","code":"092","type":"country"},{"id":"db11cb4c-3534-5c9a-bd15-7b41c5b161d6","name":"Nigeria","deprecated":false,"iso3":"NGA","iso2":"NG","code":"566","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"}]}],"destinationNetworks":[{"id":"00826312-17b2-5b1e-968a-aabe114f0734","name":"Network6","description":"Je anah sankorir zaduv noscipan ron pi dubsanuf motnod ugufu zacew idu wafsembuc lo roge almoh lah.","version":"59e9909f-27d5-5e47-8d77-210909065352","type":"networkobject","subType":"NETWORK","value":"234.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"929d7320-9aa2-52c7-b853-76aae05eef6b","name":"Network8","description":"Todviad wi vuckivna otkot nevaiz divu caszi fezmirera tumhugej muv bi vedohile.","version":"cf69d58a-8e9c-52c5-af3f-f3d5f88cd456","type":"networkobject","subType":"HOST","value":"6804:d23a:5056:cdbd:dc9f:9d53:1cf7:f368","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"ae1c0317-eff4-5a33-8a62-261109073d87","name":"Geolocation5","description":"Fihedrag najdeimi ofu remig amokeso duzodro pa guanru isojo honune bumcozi nu.","version":"01c4fd80-7bdc-5ee1-8f7c-de9ff5bbd08d","type":"geolocation","locations":[{"id":"d6f6aa91-7e0d-5137-abbf-328cc779888c","name":"Antarctica","deprecated":true,"code":1004,"type":"continent","countries":[{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"3358686b-4139-5062-b3a1-e838d19918cf","name":"Heard Island and McDonald Islands","deprecated":true,"iso3":"HMD","iso2":"HM","code":"334","type":"country"},{"id":"ba4897cd-087a-5292-b1be-d3a00a7f26bb","name":"South Georgia and the South Sandwich Islands","deprecated":true,"iso3":"SGS","iso2":"GS","code":"239","type":"country"},{"id":"fa4cea3e-1888-5481-9934-8f815bc26857","name":"Bouvet Island","deprecated":true,"iso3":"BVT","iso2":"BV","code":"074","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"}],"countryCodes":["260","334","239","074","010"]},{"id":"9442da73-6b47-5cab-8a0b-baa977ec390b","name":"Tonga","deprecated":true,"iso3":"TON","iso2":"TO","code":"776","type":"country"},{"id":"0a95f5f3-ed92-5adb-9e53-3a1d516b33f1","name":"Iceland","deprecated":true,"iso3":"ISL","iso2":"IS","code":"352","type":"country"},{"id":"a05f1e97-1b5e-5f45-b53a-373f28de0edc","name":"Uruguay","deprecated":false,"iso3":"URY","iso2":"UY","code":"858","type":"country"},{"id":"e6bb9c77-a955-5f2b-ac2d-9082a5160f71","name":"British Virgin Islands","deprecated":true,"iso3":"VGB","iso2":"VG","code":"092","type":"country"},{"id":"db11cb4c-3534-5c9a-bd15-7b41c5b161d6","name":"Nigeria","deprecated":false,"iso3":"NGA","iso2":"NG","code":"566","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"}]}],"sourcePorts":[{"id":"1a4f8032-f665-5045-b0d8-a48b339750d1","name":"tcp_port_2","description":"Ku soguzsi ragibi nupavidag faji kovor ikikov efa ha cozuju inietu daf hif iso.","version":"b6ff8844-fd46-5e03-9ca4-00b7bc8bd936","type":"tcpportobject","port":8189,"isSystemDefined":false},{"id":"5e4d4b4d-706c-5325-b034-896d42bf9087","name":"udp_port_1","description":"Rupkoedo zuv egodid ca buapesug tu mawaduh etaeha pigfa keh it bozute wovi zijuci poscuren ifohhe.","version":"db631abc-32a3-5ca5-8ae5-a3b6f3c8371a","type":"udpportobject","port":8537,"isSystemDefined":true}],"destinationPorts":[{"id":"39c5e145-2ed4-5038-ab20-3c4878437d1d","name":"icmpv6port2","description":"Fajla geffe heseipu tez toluhpap ve uhmoba garoeb ozafuzli suhwof aw likofat erige hentejpi jajaza faztiav osece na.","version":"d4492bb3-d9b0-52fc-acc6-81061c83c6b8","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8267,"isSystemDefined":false},{"id":"b19e16f9-5846-596a-9757-161e7154e68c","name":"tcp_port_1","description":"Ruwus webwepfa fo copoko aligimaj riz zeti bivsu jah ve virip kesnenwer fi wede magbuf ojku sadruh ji.","version":"a90e8fa8-216a-59a4-bce1-da2f92acd1ad","type":"tcpportobject","port":8721,"isSystemDefined":true}],"users":[{"id":"5c815701-9753-5b9e-8b24-c5c5511aa1b6","name":"User 23","realmName":"gowitenci","type":"trafficuser","realmId":2,"version":"tufapitem"},{"id":"08ccb2fe-b3b5-524a-8857-8df8d2b8cd4c","name":"User 6","realmName":"mazivezgez","type":"trafficuser","realmId":2,"version":"vibnilkiza"},{"id":"ce75440f-a481-5a0b-b630-ff9c24a2a3ea","name":"User 15","realmName":"difubuve","type":"trafficuser","realmId":2,"version":"beikbihfij"}],"embeddedAppFilter":{"conditions":[{"filter":"loweteziwno","tags":[{"id":"11d43e11-683f-5ec2-89c6-6b4e9a8c756d","version":"13924388-a6d9-5f80-8b3b-825736afd2bc","appId":13,"name":"ApplicationTag13","description":"Fiwjag safe jujohmi lipa gucpi la tocgomkap fozensir jafuhi vutbinij jov lifo ciduwno fuzegvef consibe hope.","metadata":{"referenced":true},"type":"applicationtag"}],"categories":[{"id":"24cd3c21-8c19-531f-81d5-08aca7b587b9","version":"b18c67e8-0f51-5f2c-88a2-11994eea44b1","appId":5,"name":"ApplicationCategory5","description":"Camweg wevovic diowu fi vo kacag vibumjih lus bowi ewatige epewa ecifoder mu gopeges.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"3cd37a5a-b5c2-516a-8eb9-c5d87fcdb2a2","version":"76af8e96-44af-5285-a65a-172f138b8941","appId":3,"name":"ApplicationCategory10","description":"Taljooco pi wo cahorti fih heose wicueci emiwoube no iwozovban ip oho im uke wu ko noed.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"VERY_HIGH"}],"type":"applicationfiltercondition"},{"filter":"uckupehot","tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"}],"applicationTypes":[{"type":"typecondition","applicationType":"SERVER"},{"type":"typecondition","applicationType":"CLIENT"}],"productivities":[{"type":"productivitycondition","productivity":"LOW"},{"type":"productivitycondition","productivity":"VERY_HIGH"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"a0d6d0e6-95f9-528f-99cd-ade97f3318ba","version":"e719a0ce-c1e2-56c8-a9be-2f90e8351624","name":"ApplicationFilter15","description":"Lirec zejjezop folidetat dinwe zetavi izdoak hi tion eg iwdorha ik ah abpi.","applications":[{"id":"a035fce1-4959-5362-8472-253aa159b1ec","version":"616efbb8-6148-59e3-afd4-68d4d42164c1","description":"Fo cigejki leg umjunu ja da lefuh ib zatlose ganutag dilebi cejizgow.","deprecated":false,"appId":6,"productivity":0,"risk":1,"name":"Application15","tagIds":["f7e90abe-ce71-56da-9f43-dd8685ec1a3a","a558b06a-1e83-5caa-a903-3b6e291ddc2e"],"tags":[{"id":"f7e90abe-ce71-56da-9f43-dd8685ec1a3a","version":"8b4ad1f1-dab6-5988-a793-c67eb8dbd3ee","appId":1,"name":"ApplicationTag1","description":"Opa zov vek obnam nobbab midzusmow riwehar gufugin mogfuana nairu camu fupim mo hov nizunfej.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"a558b06a-1e83-5caa-a903-3b6e291ddc2e","version":"96c0750c-0f50-5872-869a-8b50dad24edc","appId":8,"name":"SSL protocol","description":"Ifgafu ma vopuatu ho jim zud hiodiben ango ji nusiwufu hig gatejsem povci.","metadata":{"referenced":true},"type":"applicationtag"}],"categoryIds":["fff4b47c-a653-5729-a31a-e6353d420768","7f62abc6-7f08-5a69-acb6-65def01251d4"],"categories":[{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["CLIENT","SERVER"],"metadata":{"referenced":true},"type":"application"}],"conditions":[{"filter":"jignorebes","tags":[{"id":"e9812b72-2a36-5146-bce0-b09f876df88d","version":"080dca18-c677-5dd1-8f2f-40555beb4fe4","appId":10,"name":"ApplicationTag10","description":"Viswilo ariuzaf pih wa mul vugavrip rijfon aba kac giicse wolifa cowudzuv vev iztafit.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"0928e8e9-25a4-53d0-b118-342a26b44100","version":"cccc44d5-b855-569b-90ad-b26d4e3e0c66","appId":7,"name":"ApplicationCategory8","description":"Mifzonu fokero acdu panvo cuvubde tovli maz cawag kaoj gosoojo falkof hezel sig ca vo wak.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"MEDIUM"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"},{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":false},"type":"applicationfilter"}],"applications":[{"id":"17b348f3-870c-5aa4-bcae-3bfe0f0d061d","version":"7b26e782-fe4b-5259-aa5f-744f5c3f1b22","description":"Tem ac li gagnefro folema no mo tafdis cew vudo wafop ru milis ubuedurur sufbot.","deprecated":true,"appId":2,"productivity":0,"risk":2,"name":"Application8","tagIds":["e9812b72-2a36-5146-bce0-b09f876df88d"],"tags":[{"id":"e9812b72-2a36-5146-bce0-b09f876df88d","version":"080dca18-c677-5dd1-8f2f-40555beb4fe4","appId":10,"name":"ApplicationTag10","description":"Viswilo ariuzaf pih wa mul vugavrip rijfon aba kac giicse wolifa cowudzuv vev iztafit.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["328094ea-7b95-58e5-a2de-09018514e679"],"categories":[{"id":"328094ea-7b95-58e5-a2de-09018514e679","version":"a9f6d6f5-e2ce-5a1b-8c7f-1a5ba3c375b4","appId":4,"name":"ApplicationCategory1","description":"Pilooru amavudek uhzidkah sieha duhni ikfo celrid az ocolu loplun buj nodlial do ahme henacava so ecevega wemtumacu.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["CLIENT","SERVER"],"metadata":{"referenced":true},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"ffe7a902-b85c-5fd6-af84-62f80cd30c65","version":"weowagopwib","name":"UrlGroup7","description":"Doaniopa kojutwef va uzu ji riw hoap veruhro ge nej tozbuz uzbohi ma pok.","objects":[{"id":"4dcd5400-fbdc-5d2e-a182-437ae706284c","version":"erreupih","name":"Url11","description":"Mu wiod pa winhuta ukzup foveba conefda zecvi wit ciahujah bo lahfonhe adcogo mori.","url":"http://sodzup.io/pivkaod","type":"urlobject"},{"id":"1ec355c1-47fb-55b1-b8d1-6d6a465821ca","version":"hapevemoco","name":"Url10","description":"Cagsif ju ilawusne kal uw tewwuvmul cu suilu putuz fuwabe wi favig bibothep ti hire gucrak.","url":"http://ni.net/civ","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlCategory":{"id":"293f3f8b-e996-5139-bee7-ff7e376ed4f0","version":"2b059a77-a530-5bd9-8694-f4754a6e7538","name":"UrlCategory-8","deprecated":false,"urlCategoryId":65534,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"intrusionPolicy":{"id":"a47cb8f5-fe55-11e4-8e99-ipsN30","name":"Security Over Connectivity","links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN30"},"rules":{"links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f5-fe55-11e4-8e99-ipsN30/rules/"}},"description":"Security Over Connectivity Layer","type":"intrusionpolicy","version":"fc826c33-84fb-5b14-96e5-0cdd4717c442"},"logFiles":false,"type":"accessrule"}],"securityIntelligence":{"id":"f0b864fa-9530-5dac-b94c-a056e4619934","securityIntelligenceNetworkPolicy":{"id":"0ea316eb-527a-5098-a64d-585fa1d4618e","whitelist":[{"id":"73ee665b-fbee-563d-92d0-c41d4e5fb7f2","name":"Network2","description":"Wavfu uk unlofu daefi ow fi te zebnah abaco so lodtiw kijeh upzesin kew zo eg.","version":"d5877fad-91a9-5848-95bd-509fc9538ec7","type":"networkobject","subType":"NETWORK","value":"166.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":false}}],"blacklistForBlock":[{"id":"5f628e6e-9c10-55a9-a69b-78d400a47404","version":"10128965-b11b-5330-bcba-fc2ec3888558","name":"networkfeed23","checksumURL":"Iwiovozul jifeen girzi ci oze zekodo cujzo cefeto ze zihdeka muasa li hokano.","feedURL":"http://reah.io/revnil","updateFrequency":"ONE_HOUR","lastUpdate":"2018-07-12 12:42:21.872Z","type":"networkfeed"}],"version":"97086e22-b9cb-5709-ba75-f7e2551f17ba","name":"viovba","type":"securityintelligencenetworkpolicy"},"securityIntelligenceURLPolicy":{"id":"b58aeb8a-9ab0-5cc2-b062-053a08affa7b","whitelist":[{"id":"ce7eba4c-0b9a-5a3f-bb88-6ce71398fbc8","version":"epozikeccow","name":"UrlGroup1","description":"Kajili nockugda van cikepuh toavah kebpi muwnumo tezotu pelapdec sif fepgo hul sacwav na.","objects":[{"id":"d31c2d0e-3ad0-5053-9a7b-a0ef29eff5f9","version":"ajolouhog","name":"Url8","description":"Kirgirac rireto vu nimu kek bo dosoze tillen wisud kerecfar evibur wen cehpa weg ju doneh.","url":"http://de.co.uk/neni","type":"urlobject"},{"id":"d72bd5cf-710c-5048-b0fa-1bda6746520d","version":"onaisujuja","name":"Url3","description":"Nolze no gavrofkep dog di buc ta oko kon pigu fuezo uzara.","url":"http://gagonofi.edu/letiga","type":"urlobject"}],"type":"urlobjectgroup"}],"blacklistForBlock":[{"id":"ef71cd89-a0fc-5994-aaff-0f427dff92fa","version":"pugvagpugmi","name":"UrlGroup5","description":"Muhzipil korezoki kuwelas fojulcud jum ineteig ob zeluc mekpufes api ajnovawa ro tadi.","objects":[{"id":"0776578c-c6ee-58a3-91de-7d50b64343b8","version":"bimupair","name":"Url7","description":"Mer komad cozmersul el gaze fupfod gij pikukkop kavimgen befowez guwojo bikpogezu ice niruvpo ganal ovo taun.","url":"http://difepfel.io/ovcekwe","type":"urlobject"}],"type":"urlobjectgroup"},{"id":"1ec355c1-47fb-55b1-b8d1-6d6a465821ca","version":"hapevemoco","name":"Url10","description":"Cagsif ju ilawusne kal uw tewwuvmul cu suilu putuz fuwabe wi favig bibothep ti hire gucrak.","url":"http://ni.net/civ","type":"urlobject"},{"id":"e9248457-7eaf-5343-9069-e672bf530f61","version":"5e4d020b-63f5-5cf7-b09a-1223a60908b7","name":"urlfeed3","checksumURL":"Ackurpi tairjif nuabowu teg buuzro tiohumah mogolar mukva divti inabufepu jis decicev zomajpe cufowgo wazatevo ku okrocelo mibuw.","feedURL":"http://hif.com/efasepnu","updateFrequency":"ONE_WEEK","lastUpdate":"2018-07-10 12:42:21.877Z","type":"urlfeed"}],"version":"19d1ac8b-8d22-5601-96b5-4d965ecac9ec","name":"vibeaze","type":"securityintelligenceurlpolicy"},"syslogServer":{"id":"5f0e6c85-c926-5164-b869-521630fab8d0","version":"bf8528ac-8ccc-5ef7-a484-11e827a3cd66","host":"80.207.116.68","port":5897,"deviceInterface":{"mtu":5818,"enabled":true,"description":"Setta biwofega af ihi ebele inowo inagiobo nu it fe heivu lijivok.","name":"diagnostic","id":"f7509b61-168c-5d86-9a4c-8d3a2bb23e90","hardwareName":"Management0/0","macAddress":"249A.16A4.5DED","monitorInterface":true,"standbyMacAddress":"06D4.757D.FF06","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0c4e:e907:93c3:ba7a:7842:4899:f454:2a33/32","ipAddress":"41e0:3a60:0ca6:5f1c:cdd5:9c57:4918:682f/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d039:d6f4:278a:cdd3:b9e3:2711:460f:1555","ipAddress":"7e31:6d3f:5bbc:0d7f:4df6:58b9:26a6:d462"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"227.88.54.119","standbyIpAddress":"119.107.19.197"}},"version":"e50dac9e-5493-5760-b5e5-294741f3c409","managementInterface":true,"managementOnly":true,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"},"protocol":"UDP","useManagementInterface":false,"type":"syslogserver"},"logEnabled":true,"name":"NGFW-Default-Security-Intelligence-Policy","version":"c6b476ea-d3cd-55eb-ad8b-8541b6555ae3","type":"securityintelligencepolicy"},"sslPolicy":{"id":"default-ssl-random-id","type":"sslpolicy","version":"dc207d5a-c82b-54c6-b909-57bc23791864","name":"SSL_Policy_1","sslRules":[],"undecryptableActions":{"type":"sslundecryptableactions","compressedSession":"DO_NOT_DECRYPT","sslV2Session":"BLOCK_WITH_RESET","unknownCipherSuite":"INHERIT_DEFAULT_ACTION","unsupportedCipherSuite":"INHERIT_DEFAULT_ACTION","sessionNotCached":"BLOCK_WITH_RESET","handShakeErrors":"BLOCK","decryptionErrors":"BLOCK"},"decryptionCACertificate":{"id":"4d266d16-14e6-58c4-940a-2246efd34363","name":"Internal CA1","cert":"-----BEGIN CERTIFICATE-----\nMIIDEjCCAnugAwIBAgIJAJ69cfUJsifzMA0GCSqGSIb3DQEBBQUAMIGCMQswCQYD\nVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxDjAMBgNVBAoMBUNpc2NvMQwwCgYDVQQL\nDANBREkxIjAgBgNVBAMMGUFESSBUZWFtIFRlc3RpbmcgYXQgQ2lzY28xITAfBgkq\nhkiG9w0BCQEWEnRjaHJpc3RtQGNpc2NvLmNvbTAeFw0xNTA0MDYxNDQ0NTJaFw0x\nNjA0MDUxNDQ0NTJaMIGVMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxDzAN\nBgNVBAcMBkF1c3RpbjEVMBMGA1UECgwMQURJIGF0IENpc2NvMQwwCgYDVQQLDANB\nREkxHTAbBgNVBAMMFEFESSBUZXN0aW5nIEF0IENpc2NvMSEwHwYJKoZIhvcNAQkB\nFhJ0Y2hyaXN0bUBjaXNjby5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB\nAKk6jiG3XImaQNnVe1zeRbchMVbpBxdDYIRt0Eqvl2HqfAZJDKSw+s080iMC5Dmg\nTvOaZYaf4rc92z/WpMTgiOxmwKLhaw1INzBptxc4JoQPNFG4qUSVIHW9mnoXwluo\naXypJKAgeLukuO5tdUj9Iy4IHabMmJxcQsZ1vJ65cIH5AgMBAAGjezB5MAkGA1Ud\nEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmlj\nYXRlMB0GA1UdDgQWBBROqbPMUm6cUg+E/ficJa8WkdhcwzAfBgNVHSMEGDAWgBRD\nXj/hqU0NPpTv1+Z6O7LQixcgxTANBgkqhkiG9w0BAQUFAAOBgQBaoTmcEb14AIcd\nq6R34phLlDP1JRV54NQ5gTXK858dyRE41CHensHSwXlHUg2JJ/LuUhK7h+ST1Qhy\nkFCHNQHh9ojRK34ydIIltGaGGCIZDEgUqhc7IeZ/PSR5252vQaAwDWDxapA2ZsVo\nr9OY0Q7uuCLvNNiQQzvjlnQZ94Rp4A==\n-----END CERTIFICATE-----\n","privateKey":"-----BEGIN PRIVATE KEY-----MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCqsrdtuAzs/APtjiJefyhxCnheLOFOP8BfvtcdfFNFVj3RP5n30AYGmTT31dTLPeA4dYHgthUImKkxcWIOuJqHlLrEo3fmfEbhy8KehfQ0Pfy+4K/QTB7NU28/K9Hr0Mwz6bUuboby/BvIi1u/ZIzl5KlmJBz/cQMPonD2hte2fwvkqCfhpNl25tMzEpyqCAa4tciUqSXf0Zs63XtcVPBpuGN6vU0QllqxLbzsQ7ShwymBiLnUqX95tWkJCrRIfklEwlbTXyRM5NSjk6EdZeDfX5OHexV4AodbtGZSeQYU7s2vs50khtIWVGr+14dPguWf9ggMCRoX+B9RogfV03IVAgMBAAECggEAfwLTsXQNShiK46uqrx12fgYIYiqKyqps/dEGRw5G94SgIp5sdhP3J9m/q9kTqNa1i80Dgqx5IhhVbFCtYb7CXLex8LahdIJsS35NpZ6OgoDNG0ocB6VcFfNLB3oXjJukFcyD37Sl/Q7RrXrkHZk3radi1Hlyii8Q1AVOgGD9CPBwRaBrjAuJXunJRSnzJ1MuV29PoNSOcQ0o+q26JkZaTcFHt/iVdeBiKFEyfwd6oWTkpRQiUD+Xi/P9XkYud1nou64dvw6XIDpsV7uX07OASHk1fuQjDJLwyO4KlcWBzNb6Z1sE6l1EqHcZKqijcYISElzPGTEVlDkXAT5YxiIjAQKBgQDVYP/8obthBaUBFVkPaZNUzLsjyv9ONOWVHIzw9YVOmC7v2WdrnDgoBkNaV4SdCOYsJW+887nA6zK2208DlRea1fAcZWgItRqvJi9wiqtZAS1BCC+tTliYS3x/wqmFyFRqLK4dIqpbZ52+vEoEMgrDJmzG7k7aXjAm9+JH+MqfBQKBgQDMy0KcdA68h5VlbifLnMbQUJO7Zy081Tdbpgnf02/PaC/HHbYnbn/hWv8TTuoBcEDkh0nl3JRmPKMyF+Aeqj5Xd6A4znRQXq9ZPcOyKYw08VGkf4m41mm2Iq7HcSwhZFlWZWfA3cCU+Z5eTVY7RBQjoJ8Qk6LyRjAmlA5xiMVT0QKBgGVDeXjtUD3FLf+LoA5+bhsqZg2ggvUciW/wcrrP6gnYkz3kkP4yzzu/bStsqVTVKlb9FUA48oiplhHNlnv+v4sNyLvRLEQlnppMpurkBFljA5T/S5EVw1nTSSxgt47z+YvB1IejMfHbBLPGK+I91XmzvJ/T7LwZQwTbUxoQ6if5AoGBAMuoErzteT4pAvuUWQTWCqxchR1nVIhbbKq6arVoWZeDf4fe1ydNbuSXjnQQFQuLKy1YELgC7JzjDlOhhKJaIJbxAqebP/YwwuXXU0ZYpPJ9TPhuUHI833Fd+juiIwWt+l29iDk3DO3ZcpFLDUbww6pOcACXIQMXo4ip0dc78SgRAoGAEb7FK7hqFmBk24Pu5vzKE/BYYD1mY17+zmeFocn2vu89jLYvRGYrvuGn9TgD3zeXjNsAqbMW8Td5F3xnMJ3JHhnAQHd1Wh5VROsXfhtT/Uhl4eCGEkKqM+EEBD6Z3UsZbNFRGEl1xThzdwchLt0WNTD9kuoxWkjV3hjPBnkJlvk=-----END PRIVATE KEY-----","issuerCommonName":"FTD OnBox Team Testing at Cisco","issuerOrganizationUnit":"FTD","subjectCommonName":"FTD Testing At Cisco","subjectOrganization":"FTD at Cisco","subjectOrganizationUnit":"FTD","validityStartDate":"Apr 6 14:44:52 2015 GMT","validityEndDate":"Feb 16 14:44:52 2017 GMT","type":"internalcacertificate","version":"6d05cd7f-3d24-55de-85d1-7d5a97f95f58"},"internalCertificates":[{"id":"2b778d3e-fdfe-55f2-88f9-3f29239683bb","name":"Internal CA2","cert":"-----BEGIN CERTIFICATE-----\nMIIDEjCCAnugAwIBAgIJAJ69cfUJsifzMA0GCSqGSIb3DQEBBQUAMIGCMQswCQYD\nVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxDjAMBgNVBAoMBUNpc2NvMQwwCgYDVQQL\nDANBREkxIjAgBgNVBAMMGUFESSBUZWFtIFRlc3RpbmcgYXQgQ2lzY28xITAfBgkq\nhkiG9w0BCQEWEnRjaHJpc3RtQGNpc2NvLmNvbTAeFw0xNTA0MDYxNDQ0NTJaFw0x\nNjA0MDUxNDQ0NTJaMIGVMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxDzAN\nBgNVBAcMBkF1c3RpbjEVMBMGA1UECgwMQURJIGF0IENpc2NvMQwwCgYDVQQLDANB\nREkxHTAbBgNVBAMMFEFESSBUZXN0aW5nIEF0IENpc2NvMSEwHwYJKoZIhvcNAQkB\nFhJ0Y2hyaXN0bUBjaXNjby5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB\nAKk6jiG3XImaQNnVe1zeRbchMVbpBxdDYIRt0Eqvl2HqfAZJDKSw+s080iMC5Dmg\nTvOaZYaf4rc92z/WpMTgiOxmwKLhaw1INzBptxc4JoQPNFG4qUSVIHW9mnoXwluo\naXypJKAgeLukuO5tdUj9Iy4IHabMmJxcQsZ1vJ65cIH5AgMBAAGjezB5MAkGA1Ud\nEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmlj\nYXRlMB0GA1UdDgQWBBROqbPMUm6cUg+E/ficJa8WkdhcwzAfBgNVHSMEGDAWgBRD\nXj/hqU0NPpTv1+Z6O7LQixcgxTANBgkqhkiG9w0BAQUFAAOBgQBaoTmcEb14AIcd\nq6R34phLlDP1JRV54NQ5gTXK858dyRE41CHensHSwXlHUg2JJ/LuUhK7h+ST1Qhy\nkFCHNQHh9ojRK34ydIIltGaGGCIZDEgUqhc7IeZ/PSR5252vQaAwDWDxapA2ZsVo\nr9OY0Q7uuCLvNNiQQzvjlnQZ94Rp4A==\n-----END CERTIFICATE-----\n","privateKey":"-----BEGIN PRIVATE KEY-----MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCqsrdtuAzs/APtjiJefyhxCnheLOFOP8BfvtcdfFNFVj3RP5n30AYGmTT31dTLPeA4dYHgthUImKkxcWIOuJqHlLrEo3fmfEbhy8KehfQ0Pfy+4K/QTB7NU28/K9Hr0Mwz6bUuboby/BvIi1u/ZIzl5KlmJBz/cQMPonD2hte2fwvkqCfhpNl25tMzEpyqCAa4tciUqSXf0Zs63XtcVPBpuGN6vU0QllqxLbzsQ7ShwymBiLnUqX95tWkJCrRIfklEwlbTXyRM5NSjk6EdZeDfX5OHexV4AodbtGZSeQYU7s2vs50khtIWVGr+14dPguWf9ggMCRoX+B9RogfV03IVAgMBAAECggEAfwLTsXQNShiK46uqrx12fgYIYiqKyqps/dEGRw5G94SgIp5sdhP3J9m/q9kTqNa1i80Dgqx5IhhVbFCtYb7CXLex8LahdIJsS35NpZ6OgoDNG0ocB6VcFfNLB3oXjJukFcyD37Sl/Q7RrXrkHZk3radi1Hlyii8Q1AVOgGD9CPBwRaBrjAuJXunJRSnzJ1MuV29PoNSOcQ0o+q26JkZaTcFHt/iVdeBiKFEyfwd6oWTkpRQiUD+Xi/P9XkYud1nou64dvw6XIDpsV7uX07OASHk1fuQjDJLwyO4KlcWBzNb6Z1sE6l1EqHcZKqijcYISElzPGTEVlDkXAT5YxiIjAQKBgQDVYP/8obthBaUBFVkPaZNUzLsjyv9ONOWVHIzw9YVOmC7v2WdrnDgoBkNaV4SdCOYsJW+887nA6zK2208DlRea1fAcZWgItRqvJi9wiqtZAS1BCC+tTliYS3x/wqmFyFRqLK4dIqpbZ52+vEoEMgrDJmzG7k7aXjAm9+JH+MqfBQKBgQDMy0KcdA68h5VlbifLnMbQUJO7Zy081Tdbpgnf02/PaC/HHbYnbn/hWv8TTuoBcEDkh0nl3JRmPKMyF+Aeqj5Xd6A4znRQXq9ZPcOyKYw08VGkf4m41mm2Iq7HcSwhZFlWZWfA3cCU+Z5eTVY7RBQjoJ8Qk6LyRjAmlA5xiMVT0QKBgGVDeXjtUD3FLf+LoA5+bhsqZg2ggvUciW/wcrrP6gnYkz3kkP4yzzu/bStsqVTVKlb9FUA48oiplhHNlnv+v4sNyLvRLEQlnppMpurkBFljA5T/S5EVw1nTSSxgt47z+YvB1IejMfHbBLPGK+I91XmzvJ/T7LwZQwTbUxoQ6if5AoGBAMuoErzteT4pAvuUWQTWCqxchR1nVIhbbKq6arVoWZeDf4fe1ydNbuSXjnQQFQuLKy1YELgC7JzjDlOhhKJaIJbxAqebP/YwwuXXU0ZYpPJ9TPhuUHI833Fd+juiIwWt+l29iDk3DO3ZcpFLDUbww6pOcACXIQMXo4ip0dc78SgRAoGAEb7FK7hqFmBk24Pu5vzKE/BYYD1mY17+zmeFocn2vu89jLYvRGYrvuGn9TgD3zeXjNsAqbMW8Td5F3xnMJ3JHhnAQHd1Wh5VROsXfhtT/Uhl4eCGEkKqM+EEBD6Z3UsZbNFRGEl1xThzdwchLt0WNTD9kuoxWkjV3hjPBnkJlvk=-----END PRIVATE KEY-----","issuerCommonName":"FTD OnBox Team Testing at Cisco","issuerOrganizationUnit":"FTD","subjectCommonName":"FTD Testing At Cisco","subjectOrganization":"FTD at Cisco","subjectOrganizationUnit":"FTD","validityStartDate":"Apr 6 14:44:52 2015 GMT","validityEndDate":"Feb 16 14:44:52 2017 GMT","type":"internalcacertificate","version":"d4f4de1a-52f0-5e77-89c6-72aecb7eba93"}],"defaultAction":{"type":"sslpolicydefaultaction","policyAction":"DO_NOT_DECRYPT","eventLogAction":"LOG_NONE"}},"defaultAction":{"action":"TRUST","eventLogAction":"LOG_BOTH","type":"accessdefaultaction"},"name":"Default Access Policy","accessRuleIds":[],"type":"accesspolicy","version":"hucubopvir"}},"AccessPolicyWrapper":{"allOf":[{"$ref":"#/definitions/AccessPolicy"},{"$ref":"#/definitions/LinksWrapper"}]},"AccessPolicyDeployInfo":{"type":"object","properties":{"version":{"type":"string"},"ruleContainerUuid":{"type":"string"},"deployedOnDevice":{"type":"boolean"},"ruleDeployInfoEntries":{"type":"array","items":{"type":"object","$ref":"#/definitions/AccessControlRuleDeployInfo"}},"id":{"type":"string"},"type":{"type":"string","default":"accesspolicydeployinfo"}},"required":["type"]},"AccessRule":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"ruleId":{"type":"integer"},"sourceZones":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"destinationZones":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"sourceNetworks":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"destinationNetworks":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"sourcePorts":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"destinationPorts":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"ruleAction":{"type":"object","$ref":"#/definitions/AccessControlRuleBase$AcRuleAction"},"eventLogAction":{"type":"object","$ref":"#/definitions/AccessControlRuleBase$EventLogAction"},"users":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"embeddedAppFilter":{"type":"object","$ref":"#/definitions/EmbeddedAppFilter"},"urlFilter":{"type":"object","$ref":"#/definitions/EmbeddedURLFilter"},"intrusionPolicy":{"type":"object","$ref":"#/definitions/ReferenceModel"},"filePolicy":{"type":"object","$ref":"#/definitions/ReferenceModel"},"logFiles":{"type":"boolean"},"syslogServer":{"type":"object","$ref":"#/definitions/ReferenceModel"},"id":{"type":"string"},"type":{"type":"string","default":"accessrule"}},"required":["type"],"example":{"id":"f7443881-d20e-5699-8f66-55481ef54196","version":"9171ae71-46df-514d-a690-9484e8950569","ruleId":1,"name":"err","protocol":"TCP","ruleAction":"TRUST","eventLogAction":"LOG_FLOW_END","syslogServer":{"id":"b7731ecd-011b-5f95-90b4-72b024a040d9","version":"8287a57f-56d1-51e9-83f1-361ad172f158","host":"28.235.174.9","port":5897,"deviceInterface":{"mtu":5818,"enabled":true,"description":"Setta biwofega af ihi ebele inowo inagiobo nu it fe heivu lijivok.","name":"diagnostic","id":"f7509b61-168c-5d86-9a4c-8d3a2bb23e90","hardwareName":"Management0/0","macAddress":"249A.16A4.5DED","monitorInterface":true,"standbyMacAddress":"06D4.757D.FF06","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0c4e:e907:93c3:ba7a:7842:4899:f454:2a33/32","ipAddress":"41e0:3a60:0ca6:5f1c:cdd5:9c57:4918:682f/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d039:d6f4:278a:cdd3:b9e3:2711:460f:1555","ipAddress":"7e31:6d3f:5bbc:0d7f:4df6:58b9:26a6:d462"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"227.88.54.119","standbyIpAddress":"119.107.19.197"}},"version":"e50dac9e-5493-5760-b5e5-294741f3c409","managementInterface":true,"managementOnly":true,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"},"protocol":"UDP","useManagementInterface":false,"type":"syslogserver"},"sourceZones":[{"id":"8cb69a8f-7d8d-5f4e-9a4f-f6e717f833ed","name":"SecurityZone3Name","description":"Udanovja dupolo zurepi ufmu ah lezup ba ga jur duvorzu abevabji zil nuikihi wopuw.","version":"dd83a4d5-be23-51f8-9b73-2ae9e26f7d36","interfaces":[{"mtu":2652,"enabled":false,"description":"Efupaf nas ilureg zetikdav emki fafiv tihug orhid zimurfo naferal va ta ug za ur di zetsa ragizike.","name":"subinterface10name","id":"4307a6d5-0ef1-55d4-adc4-0461c31b7eb5","hardwareName":"SubInterface0/10.11","macAddress":"F617.A8F2.5DEB","monitorInterface":true,"standbyMacAddress":"0E24.391A.BFD9","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"c324:084e:8a04:523f:64ec:2b27:9f07:6a8d/32","ipAddress":"0faf:b8b8:7fbe:0d00:facd:c82d:f721:93dd/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"bc90:477f:99f9:ee80:1faa:1f0c:a2a6:77b7","ipAddress":"2d31:24c2:acd3:16b0:d1df:b4b6:763f:48c0"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"250.15.33.10","standbyIpAddress":"254.220.208.229"}},"version":"0f193aa1-ad09-52dd-98e8-eb32e2e61484","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}},{"id":"340bf250-a4a5-5049-bddf-a6201a9b8e86","name":"SecurityZone7Name","description":"So gitejipo sotvotdab watu la ica fojum dorog odohog mil etuw ta daghavke dig.","version":"273d67ab-abb9-5af1-8574-3e9af6e98aed","interfaces":[{"mtu":2652,"enabled":false,"description":"Wa cep gi lankowtu ce uvujed tad wo vezke vib vezvufgev hun vob velumde.","name":"subinterface11name","id":"ffc74b4d-ad27-5459-9907-186a8c739189","hardwareName":"SubInterface0/11.12","macAddress":"1534.AB09.4146","monitorInterface":true,"standbyMacAddress":"CF72.BDFB.98A1","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"fafb:559d:106d:67ac:52dd:e182:d306:4792/32","ipAddress":"a7bd:69ea:f24f:04ea:40c5:3f80:0416:0f09/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d544:6d26:411c:e460:9911:cb8b:ca9e:3a15","ipAddress":"f96f:858d:9ed1:fc9f:7b47:0fb4:246d:6cb6"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"17.76.225.83","standbyIpAddress":"195.253.157.229"}},"version":"e22e21d2-9d64-51a4-adc2-a775a4572916","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}}],"destinationZones":[{"id":"043ca75c-25c8-5d2f-9912-f174e3756077","name":"SecurityZone8Name","description":"Fo zihroc befjijwe vafel golwekjow hukohdi bo gitjap titsuabe cav fif mufdec unibit mubu idabehob ruthesusa.","version":"9f2207f2-63f0-5423-aa5c-6b7dc7d41cf3","interfaces":[{"mtu":2652,"enabled":true,"description":"Ta ikoure oznog tu hodul bizzo jimiite men cucif bewtujjof amurulev cuh igu fo siw dupziswul upahig roivipi.","name":"subinterface1name","id":"bdb62102-971e-5472-ab3b-22a7d408dc10","hardwareName":"SubInterface0/1.2","macAddress":"A57C.05DF.7FC0","monitorInterface":false,"standbyMacAddress":"4CE2.828C.AAB1","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"86a0:974f:3bf1:cee2:71c8:e295:2c3e:8d76/32","ipAddress":"9cb8:4589:0220:bd63:4d62:42ac:bd26:e1ac/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"7f67:fa11:adca:bd10:8583:757e:7ebb:be87","ipAddress":"4298:ffb2:30f7:84b6:5106:69aa:343c:8362"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"43.30.66.103","standbyIpAddress":"138.99.49.192"}},"version":"e04406e6-ff09-57ac-9b38-fdd8b19cf6fb","managementInterface":true,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}}],"sourceNetworks":[{"id":"0f1e5697-c424-59ac-87dd-bc36e3c08465","name":"Network10","description":"Gowvis opopijab joswirud jezow feud ikibik ruronub oh zoteso ilohhu wif wezagina mi dov riluj luffepcep safes zeksim.","version":"59a184bf-98ff-5f9a-a5c3-67542f91153d","type":"networkobject","subType":"NETWORK","value":"146.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"73ee665b-fbee-563d-92d0-c41d4e5fb7f2","name":"Network2","description":"Wavfu uk unlofu daefi ow fi te zebnah abaco so lodtiw kijeh upzesin kew zo eg.","version":"d5877fad-91a9-5848-95bd-509fc9538ec7","type":"networkobject","subType":"NETWORK","value":"166.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":false}},{"id":"2082a308-8b86-5219-b121-d470ff1b8aa8","name":"Geolocation14","description":"Heivkib tij budvoddij abauzjuk obuvunken fiji tajo puluno kahja vozrejnak hizebivis dowu cujtabti kelij heh mo pifgiri lamfajkuw.","version":"db2ff476-1b01-52e6-8574-95caec83dfa4","type":"geolocation","locations":[{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"92e4bed7-5044-5b4f-8d3f-1239ff903965","name":"France","deprecated":true,"iso3":"FRA","iso2":"FR","code":"250","type":"country"},{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"f15f76ba-d150-5ed1-8d49-329860b8a4c2","name":"Venezuela","deprecated":false,"iso3":"VEN","iso2":"VE","code":"862","type":"country"},{"id":"57110fb6-aee4-50cf-a1ad-e8e3cf723b03","name":"Curacao","deprecated":false,"iso3":"CUW","iso2":"CW","code":"531","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"}]}],"destinationNetworks":[{"id":"0f1e5697-c424-59ac-87dd-bc36e3c08465","name":"Network10","description":"Gowvis opopijab joswirud jezow feud ikibik ruronub oh zoteso ilohhu wif wezagina mi dov riluj luffepcep safes zeksim.","version":"59a184bf-98ff-5f9a-a5c3-67542f91153d","type":"networkobject","subType":"NETWORK","value":"146.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"73ee665b-fbee-563d-92d0-c41d4e5fb7f2","name":"Network2","description":"Wavfu uk unlofu daefi ow fi te zebnah abaco so lodtiw kijeh upzesin kew zo eg.","version":"d5877fad-91a9-5848-95bd-509fc9538ec7","type":"networkobject","subType":"NETWORK","value":"166.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":false}},{"id":"2082a308-8b86-5219-b121-d470ff1b8aa8","name":"Geolocation14","description":"Heivkib tij budvoddij abauzjuk obuvunken fiji tajo puluno kahja vozrejnak hizebivis dowu cujtabti kelij heh mo pifgiri lamfajkuw.","version":"db2ff476-1b01-52e6-8574-95caec83dfa4","type":"geolocation","locations":[{"id":"b0f1ed2e-900c-526e-80d4-07510afeff4d","name":"Asia","deprecated":false,"code":1000,"type":"continent","countries":[{"id":"63a1df40-7be5-5d18-af51-6c505a84929b","name":"Yemen","deprecated":false,"iso3":"YEM","iso2":"YE","code":"887","type":"country"},{"id":"fa3954da-0537-56ca-bcbc-49586fb30867","name":"Vietnam","deprecated":true,"iso3":"VNM","iso2":"VN","code":"704","type":"country"},{"id":"2f75e787-8e9f-5104-93f1-90f873e036ee","name":"Uzbekistan","deprecated":true,"iso3":"UZB","iso2":"UZ","code":"860","type":"country"},{"id":"0a6941d2-4dce-5324-9c2d-7023d05a0e87","name":"Taiwan","deprecated":true,"iso3":"TWN","iso2":"TW","code":"158","type":"country"},{"id":"8b6f9c03-18de-5a2a-8b04-789273a75a14","name":"Turkey","deprecated":false,"iso3":"TUR","iso2":"TR","code":"792","type":"country"},{"id":"79011712-6ace-5c53-9919-60c0aede45e4","name":"Turkmenistan","deprecated":true,"iso3":"TKM","iso2":"TM","code":"795","type":"country"},{"id":"4e9c261d-a5c3-516d-b96b-4a4446c4d006","name":"Tajikistan","deprecated":true,"iso3":"TJK","iso2":"TJ","code":"762","type":"country"},{"id":"e309c3a1-741a-5c5a-91d8-34bd9f707713","name":"Thailand","deprecated":true,"iso3":"THA","iso2":"TH","code":"764","type":"country"},{"id":"5455c99c-857d-59e7-ac30-d1cdf8a544fc","name":"Syria","deprecated":false,"iso3":"SYR","iso2":"SY","code":"760","type":"country"},{"id":"b6240c09-b99b-5702-8b81-ae347554b063","name":"Singapore","deprecated":false,"iso3":"SGP","iso2":"SG","code":"702","type":"country"},{"id":"7e450676-17ba-52e1-9774-a2d8946e7222","name":"Saudi Arabia","deprecated":true,"iso3":"SAU","iso2":"SA","code":"682","type":"country"},{"id":"5edb06cc-771b-56bd-a810-d7ed7ac60f18","name":"Qatar","deprecated":true,"iso3":"QAT","iso2":"QA","code":"634","type":"country"},{"id":"4e105b61-409f-5adb-b994-6bf39b366f80","name":"Palestine","deprecated":false,"iso3":"PSE","iso2":"PS","code":"275","type":"country"},{"id":"bddecea3-ccaa-5945-ab89-cdc3777020a4","name":"Pakistan","deprecated":true,"iso3":"PAK","iso2":"PK","code":"586","type":"country"},{"id":"39b1fa04-86c6-5030-8860-de4c52772bf6","name":"Philippines","deprecated":false,"iso3":"PHL","iso2":"PH","code":"608","type":"country"},{"id":"ca1627e6-84a9-5bbc-bdaa-d2ad6095ee4d","name":"Oman","deprecated":false,"iso3":"OMN","iso2":"OM","code":"512","type":"country"},{"id":"238facd8-e02b-519e-8769-3928cd2f41f0","name":"Nepal","deprecated":true,"iso3":"NPL","iso2":"NP","code":"524","type":"country"},{"id":"42d5a169-55b8-50de-a0dd-6841b0efdedf","name":"Malaysia","deprecated":true,"iso3":"MYS","iso2":"MY","code":"458","type":"country"},{"id":"18846de6-0324-5525-91d7-a4776e65b9b6","name":"Maldives","deprecated":false,"iso3":"MDV","iso2":"MV","code":"462","type":"country"},{"id":"a9e44468-6566-53c4-82fe-51bde575afee","name":"Macao","deprecated":false,"iso3":"MAC","iso2":"MO","code":"446","type":"country"},{"id":"b9dc5343-3cd6-5af7-bedc-a17c680aac1f","name":"Mongolia","deprecated":true,"iso3":"MNG","iso2":"MN","code":"496","type":"country"},{"id":"d157ae45-005b-5726-8cb5-6b2106ac4e14","name":"Myanmar [Burma]","deprecated":false,"iso3":"MMR","iso2":"MM","code":"104","type":"country"},{"id":"71949b92-109d-5eff-b3e0-2eee31f109d7","name":"Sri Lanka","deprecated":false,"iso3":"LKA","iso2":"LK","code":"144","type":"country"},{"id":"1b53432a-4b28-59d3-ab11-158caa6b4978","name":"Lebanon","deprecated":false,"iso3":"LBN","iso2":"LB","code":"422","type":"country"},{"id":"8d6d1007-e852-5cbb-bcb9-86762d6c7ba6","name":"Laos","deprecated":true,"iso3":"LAO","iso2":"LA","code":"418","type":"country"},{"id":"5b67e3c4-f9c1-5ef6-9481-cec39e7c08f2","name":"Kazakhstan","deprecated":true,"iso3":"KAZ","iso2":"KZ","code":"398","type":"country"},{"id":"ce42b833-871a-5c06-a2cf-3d628329ed7f","name":"Kuwait","deprecated":false,"iso3":"KWT","iso2":"KW","code":"414","type":"country"},{"id":"16b7d774-418c-54d8-b296-c4c580f2a8c8","name":"South Korea","deprecated":true,"iso3":"KOR","iso2":"KR","code":"410","type":"country"},{"id":"fa1d3c9f-39a0-5873-92a0-c448c220c43e","name":"North Korea","deprecated":true,"iso3":"PRK","iso2":"KP","code":"408","type":"country"},{"id":"9419c7a5-98ec-59b1-8ff8-732af761497e","name":"Cambodia","deprecated":true,"iso3":"KHM","iso2":"KH","code":"116","type":"country"},{"id":"0dfe65f2-ab03-547b-9477-c623744540c4","name":"Kyrgyzstan","deprecated":true,"iso3":"KGZ","iso2":"KG","code":"417","type":"country"},{"id":"c7cbdbe3-3bd7-507f-9106-b1ac7349aac4","name":"Japan","deprecated":false,"iso3":"JPN","iso2":"JP","code":"392","type":"country"},{"id":"35f7b4c1-b26c-535a-8ebe-24e4ba1ea3dd","name":"Jordan","deprecated":true,"iso3":"JOR","iso2":"JO","code":"400","type":"country"},{"id":"58ec396e-5a59-5d1e-b795-77ad1e4b06b5","name":"Iran","deprecated":true,"iso3":"IRN","iso2":"IR","code":"364","type":"country"},{"id":"1f1390d0-4db0-527b-be7f-23f8343e9002","name":"Iraq","deprecated":false,"iso3":"IRQ","iso2":"IQ","code":"368","type":"country"},{"id":"cbb15e65-d635-53e1-b184-be8ddcaccc67","name":"British Indian Ocean Territory","deprecated":false,"iso3":"IOT","iso2":"IO","code":"086","type":"country"},{"id":"f7a4609c-b790-5f30-a9cb-8114c67189da","name":"India","deprecated":true,"iso3":"IND","iso2":"IN","code":"356","type":"country"},{"id":"e3b0c5a5-7df2-569d-8988-a611243a6874","name":"Israel","deprecated":true,"iso3":"ISR","iso2":"IL","code":"376","type":"country"},{"id":"95d846b0-cc98-5993-a725-369315f962e7","name":"Indonesia","deprecated":true,"iso3":"IDN","iso2":"ID","code":"360","type":"country"},{"id":"5fa0fc06-05e1-507d-b51d-f08411e8c0d0","name":"Hong Kong","deprecated":false,"iso3":"HKG","iso2":"HK","code":"344","type":"country"},{"id":"5c74911f-d8b6-51d1-8595-cb3d65ea34d2","name":"Georgia","deprecated":true,"iso3":"GEO","iso2":"GE","code":"268","type":"country"},{"id":"3f16b5d1-5e61-5fc5-9226-060ff8dba7e1","name":"Christmas Island","deprecated":true,"iso3":"CXR","iso2":"CX","code":"162","type":"country"},{"id":"5358d377-8778-51f1-b8d5-894911926f03","name":"China","deprecated":true,"iso3":"CHN","iso2":"CN","code":"156","type":"country"},{"id":"ba120d07-4c77-5a4a-85a9-514fcc3f1d5d","name":"Cocos [Keeling] Islands","deprecated":false,"iso3":"CCK","iso2":"CC","code":"166","type":"country"},{"id":"a53b66e4-49bb-5ce9-a2f0-c94bbdae984c","name":"Bhutan","deprecated":true,"iso3":"BTN","iso2":"BT","code":"064","type":"country"},{"id":"b9c499af-659d-5ed4-bc72-071a452ae76e","name":"Brunei","deprecated":false,"iso3":"BRN","iso2":"BN","code":"096","type":"country"},{"id":"2f50ebb7-afdb-538a-9c5a-cee807b67094","name":"Bahrain","deprecated":true,"iso3":"BHR","iso2":"BH","code":"048","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"},{"id":"f99a3977-39e4-5bda-912b-b69575ebda73","name":"Azerbaijan","deprecated":true,"iso3":"AZE","iso2":"AZ","code":"031","type":"country"},{"id":"b12ab4d2-17c1-54c7-9819-f9530a72a401","name":"Armenia","deprecated":false,"iso3":"ARM","iso2":"AM","code":"051","type":"country"},{"id":"02fafdd1-9128-5ba2-bc34-2faaf65fafad","name":"Afghanistan","deprecated":true,"iso3":"AFG","iso2":"AF","code":"004","type":"country"},{"id":"a92ff025-6314-5ca0-a5af-92407fc3ad85","name":"United Arab Emirates","deprecated":true,"iso3":"ARE","iso2":"AE","code":"784","type":"country"}],"countryCodes":["887","704","860","158","792","795","762","764","760","702","682","634","275","586","608","512","524","458","462","446","496","104","144","422","418","398","414","410","408","116","417","392","400","364","368","086","356","376","360","344","268","162","156","166","064","096","048","050","031","051","004","784"]},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"92e4bed7-5044-5b4f-8d3f-1239ff903965","name":"France","deprecated":true,"iso3":"FRA","iso2":"FR","code":"250","type":"country"},{"id":"4dd5f39f-8f06-578d-b0e4-db9495101093","name":"French Southern Territories","deprecated":false,"iso3":"ATF","iso2":"TF","code":"260","type":"country"},{"id":"f15f76ba-d150-5ed1-8d49-329860b8a4c2","name":"Venezuela","deprecated":false,"iso3":"VEN","iso2":"VE","code":"862","type":"country"},{"id":"57110fb6-aee4-50cf-a1ad-e8e3cf723b03","name":"Curacao","deprecated":false,"iso3":"CUW","iso2":"CW","code":"531","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"}]}],"sourcePorts":[{"id":"39c5e145-2ed4-5038-ab20-3c4878437d1d","name":"icmpv6port2","description":"Fajla geffe heseipu tez toluhpap ve uhmoba garoeb ozafuzli suhwof aw likofat erige hentejpi jajaza faztiav osece na.","version":"d4492bb3-d9b0-52fc-acc6-81061c83c6b8","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8267,"isSystemDefined":false},{"id":"ff728962-8729-5bce-941c-1730e280dc0b","name":"icmpv6port1","description":"Uh letiof numsu bokewod gosso sowdilid bevliur idseaho vu delale luctid ila givcogev.","version":"9aca9371-12d1-5490-af24-a87e3160146f","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8452,"isSystemDefined":false}],"destinationPorts":[{"id":"5e4d4b4d-706c-5325-b034-896d42bf9087","name":"udp_port_1","description":"Rupkoedo zuv egodid ca buapesug tu mawaduh etaeha pigfa keh it bozute wovi zijuci poscuren ifohhe.","version":"db631abc-32a3-5ca5-8ae5-a3b6f3c8371a","type":"udpportobject","port":8537,"isSystemDefined":true},{"id":"34f7bed0-39b1-5064-a6e7-27b5431b2066","name":"udp_port_2","description":"Eji leklo infagziv wut vujapvug avvutu toduj dulnarse ifdo bipujhas ajo vualo efapomiw ge nepe gomhuh.","version":"5785591f-a79c-5ff4-bc82-b3dd6d70a236","type":"udpportobject","port":8830,"isSystemDefined":false}],"users":[{"id":"963a9548-fb5f-57b2-b1d0-a0510cff6f64","name":"User Group 8","realmName":"hoivicinu","type":"trafficusergroup","realmId":2,"version":"aclowhiwid"},{"id":"5c815701-9753-5b9e-8b24-c5c5511aa1b6","name":"User 23","realmName":"gowitenci","type":"trafficuser","realmId":2,"version":"tufapitem"},{"id":"f7417bdc-8866-5397-8f4b-e1f2d7956bcc","name":"User 31","realmName":"guhecogguk","type":"trafficuser","realmId":0,"version":"asogtiodo"}],"embeddedAppFilter":{"conditions":[{"filter":"tazfeofgut","tags":[{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"e9812b72-2a36-5146-bce0-b09f876df88d","version":"080dca18-c677-5dd1-8f2f-40555beb4fe4","appId":10,"name":"ApplicationTag10","description":"Viswilo ariuzaf pih wa mul vugavrip rijfon aba kac giicse wolifa cowudzuv vev iztafit.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"},{"id":"ea9b4aa3-c8a2-52f9-87ba-b33f1b452a42","version":"e289f52e-a078-5581-a775-4c8435a534f0","appId":3,"name":"ApplicationCategory7","description":"Ci sovo ig ivebcag gif uk eztez ezofi jizrebi lafozu ehje daj noiw vajru modpoteh juizu.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"MEDIUM"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"MEDIUM"}],"type":"applicationfiltercondition"},{"filter":"detfaodvej","tags":[{"id":"9b16dd72-476a-5ac0-8aeb-fbf6e1f45438","version":"1afcadf3-8339-5999-b958-c3d5e5fb1556","appId":11,"name":"ApplicationTag11","description":"Og egi mavlavtog jaiwsat pav gisod cahlicov rasvezbi so mifpip tihumgod zep totuh ighuso eknuwoha.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"MEDIUM"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"CRITICAL"}],"applicationTypes":[{"type":"typecondition","applicationType":"CLIENT"},{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"MEDIUM"},{"type":"productivitycondition","productivity":"VERY_HIGH"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"}],"type":"embeddedappfilter","applicationFilters":[{"id":"71b15970-f3f3-5b1b-b7bb-f0613eba06e2","version":"a1f1ec4f-62c4-56f7-85ab-ffa7d87ea131","name":"ApplicationFilter7","description":"Vul ejube iwu bodjaaki neros atwiha pi tamgek mazce zilitufa volvaz mibgo tubzesuwi bunefon enuhoj.","applications":[{"id":"ce901dd3-4e85-5bf0-a273-2018d76527c8","version":"84a4f0c6-57b3-50f3-bf20-0cf68bbbb806","description":"Gipus bovawge vel ceoziwo nuim ehdifir nowe onoli atsewav irfer semowi ge turos mufo tahukca jaz.","deprecated":true,"appId":5,"productivity":0,"risk":2,"name":"Application2","tagIds":["58edda62-c97b-56e5-9e6c-32926f4d3009"],"tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["1323d445-72c0-5d8b-9f58-c223feb51bac","328094ea-7b95-58e5-a2de-09018514e679"],"categories":[{"id":"1323d445-72c0-5d8b-9f58-c223feb51bac","version":"f85374d2-b1c5-5e65-b746-77dc6a21decb","appId":7,"name":"ApplicationCategory14","description":"Ohoad agoteveto irewomi adizogo lurtoop tizesuca himewwak poftoj cow nunapivif cisge pe hi raam hatdunze.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"328094ea-7b95-58e5-a2de-09018514e679","version":"a9f6d6f5-e2ce-5a1b-8c7f-1a5ba3c375b4","appId":4,"name":"ApplicationCategory1","description":"Pilooru amavudek uhzidkah sieha duhni ikfo celrid az ocolu loplun buj nodlial do ahme henacava so ecevega wemtumacu.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["CLIENT","WEBAPP"],"metadata":{"referenced":false},"type":"application"}],"conditions":[{"filter":"tazfeofgut","tags":[{"id":"aad0af81-b4ad-5a4a-a395-d88fc2abb8c4","version":"f6d8090e-8533-560d-8704-23fadbc827da","appId":4,"name":"ApplicationTag4","description":"Voblowi puhu ogaseaw zu not gom fotik feb ve ekfuzoc rifure zevkup woj mon copivcar dartuaze riowa nu.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"e9812b72-2a36-5146-bce0-b09f876df88d","version":"080dca18-c677-5dd1-8f2f-40555beb4fe4","appId":10,"name":"ApplicationTag10","description":"Viswilo ariuzaf pih wa mul vugavrip rijfon aba kac giicse wolifa cowudzuv vev iztafit.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"5f0662ef-3382-5357-bf35-b9b7361aae44","version":"a139321f-a0e1-5bc5-a623-57986c35147c","appId":5,"name":"ApplicationCategory2","description":"Kor atazidpem jujwo maw wez eke cog cab bibepov mojner azataget cat.","metadata":{"referenced":true},"type":"applicationcategory"},{"id":"ea9b4aa3-c8a2-52f9-87ba-b33f1b452a42","version":"e289f52e-a078-5581-a775-4c8435a534f0","appId":3,"name":"ApplicationCategory7","description":"Ci sovo ig ivebcag gif uk eztez ezofi jizrebi lafozu ehje daj noiw vajru modpoteh juizu.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"VERY_LOW"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"MEDIUM"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"MEDIUM"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":true},"type":"applicationfilter"}],"applications":[{"id":"c51fa076-7516-5b1a-b689-87d5d4dd6656","version":"71b129f0-e504-5ee0-85b0-3d683c7fbc85","description":"Fishak luksa juw magaldi igo kaipojo vifpok jarado fefadkiw keogo mow kojepoha bonewke hobomag vo gi om tam.","deprecated":false,"appId":4,"productivity":1,"risk":3,"name":"Application4","tagIds":["58edda62-c97b-56e5-9e6c-32926f4d3009","63db3391-02c9-5d1b-b971-5a6427f4c9fe"],"tags":[{"id":"58edda62-c97b-56e5-9e6c-32926f4d3009","version":"8b92f2a7-bebd-537c-8bfc-b06bb27b85d0","appId":3,"name":"ApplicationTag3","description":"Nev fuzac ifofunom juzufe cub ecic div za zemak bozitusi ta gazneb lere.","metadata":{"referenced":false},"type":"applicationtag"},{"id":"63db3391-02c9-5d1b-b971-5a6427f4c9fe","version":"95d07b80-ad97-50b0-a64b-b279d1420618","appId":5,"name":"ApplicationTag5","description":"Uwano ujeoska rootmaj kammovu ivitarpoh percuk oto bacema da onsevsej jovocoog ge gafed zakas ijwimuf.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["794d6605-f5d9-5f26-b11d-507eac471889","33552c21-0930-5bb5-8459-9b7608cda68e"],"categories":[{"id":"794d6605-f5d9-5f26-b11d-507eac471889","version":"20176f07-7d98-5dd7-8a17-de688ee66220","appId":1,"name":"ApplicationCategory3","description":"Woc ved ecu hin potalbib la uweerabof mato dewahmo avutji wose pujda tunoduz ucu ho zopusno lo mu.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"33552c21-0930-5bb5-8459-9b7608cda68e","version":"73578557-169e-5431-99f4-4a87fb56d57c","appId":4,"name":"ApplicationCategory9","description":"Tir upwul taf foj igonas mawejus ba ni loj racwu pu nelkal gofifun zemcuz ut.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["CLIENT","WEBAPP"],"metadata":{"referenced":false},"type":"application"}]},"urlFilter":{"urlObjects":[{"id":"88645135-dab6-5408-ad33-728243b663c2","version":"wugurojwo","name":"UrlGroup6","description":"Du vit inawi ravci mogpaf lal fer jefkew ginac nih namhit dop.","objects":[{"id":"d72bd5cf-710c-5048-b0fa-1bda6746520d","version":"onaisujuja","name":"Url3","description":"Nolze no gavrofkep dog di buc ta oko kon pigu fuezo uzara.","url":"http://gagonofi.edu/letiga","type":"urlobject"}],"type":"urlobjectgroup"}],"urlCategories":[{"urlReputation":{"id":"23f0e43b-0957-554b-b0a4-555d8a444cfa","name":"High risk","index":5,"startPercentage":1,"endPercentage":20,"version":"67559ce6-d60d-5a76-9eef-b4d30401c5c8","type":"urlreputation"},"urlCategory":{"id":"798bf64f-6bf2-5cf4-a895-74670e51cfb2","version":"08eadcce-2a79-5212-9907-e3e7b7e8ae0e","name":"UrlCategory-6","deprecated":false,"urlCategoryId":6,"type":"urlcategory"},"type":"urlcategorymatcher"}],"type":"embeddedurlfilter"},"logFiles":false,"type":"accessrule"}},"AccessRuleWrapper":{"allOf":[{"$ref":"#/definitions/AccessRule"},{"$ref":"#/definitions/LinksWrapper"}]},"ActiveDirectoryRealm":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"directoryConfigurations":{"type":"array","items":{"type":"object","$ref":"#/definitions/DirectoryConfiguration"}},"enabled":{"type":"boolean"},"systemDefined":{"type":"boolean"},"realmId":{"type":"integer"},"dirUsername":{"type":"string"},"dirPassword":{"type":"string","default":"*********"},"baseDN":{"type":"string"},"adPrimaryDomain":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"activedirectoryrealm"}},"required":["dirUsername","adPrimaryDomain","dirPassword","baseDN","type"],"example":{"id":"3a675c42-3970-5e66-a949-c7d84860f47e","enabled":true,"name":"SpecialUsersRealmIdentity","type":"activedirectoryrealm","baseDN":"miodupbal","adPrimaryDomain":"xsa.cisco.com","dirUsername":"vewhapigud","dirPassword":"*********","systemDefined":true,"directoryConfigurations":[{"port":7146,"hostname":"166.169.55.184","encryptionProtocol":"STARTTLS","encryptionCert":{"id":"31ce8cf5-0e07-58c1-9617-4de62a7800f1","name":"TrustedCACertificate1","cert":"-----BEGIN CERTIFICATE-----MIIC9zCCAmCgAwIBAgIJAJ69cfUJsifyMA0GCSqGSIb3DQEBBQUAMIGCMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxDjAMBgNVBAoMBUNpc2NvMQwwCgYDVQQLDANBREkxIjAgBgNVBAMMGUFESSBUZWFtIFRlc3RpbmcgYXQgQ2lzY28xITAfBgkqhkiG9w0BCQEWEnRjaHJpc3RtQGNpc2NvLmNvbTAeFw0xNTA0MDYxNDQwMjBaFw0xNjA0MDUxNDQwMjBaMHsxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEPMA0GA1UEBwwGQXVzdGluMQwwCgYDVQQKDANBREkxDDAKBgNVBAsMA0FESTEMMAoGA1UEAwwDQURJMSEwHwYJKoZIhvcNAQkBFhJ0Y2hyaXN0bUBjaXNjby5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKdwrJ9FYCVpnqHITgGGYb7nzlz+IRJc5Bl8FAepbjXpRh+noV04ttLkoIDlGobtqHbCls+Py7HjIaUFb2/T9Cddhf1mHC4jSp9nXVQmERhYoHfpyEVu4ZU7x5qFw+G4f4am3KzI2d6meWqaJZ3/5Z7bI3+zTmVK1SiSh12zarA/AgMBAAGjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBRzoznNy0g/X4VyqF8jJt+p6z44tDAfBgNVHSMEGDAWgBRDXj/hqU0NPpTv1+Z6O7LQixcgxTANBgkqhkiG9w0BAQUFAAOBgQBHm6MADmMOPj7bBCY1lADpcFuSdGjzNgvUyivRDZcMlwFpLlIl+vNJSSMU6i20bq5o+pOMJsSCjOf9NxT3lcWuxtT4Ea226txs5a15TyGRxBV5MJ4/s6gHaDowJSF/TngsURIKcNqFpLTv5FBCqcGR2kdmvBwtl9319seCoZEZYw==-----END CERTIFICATE-----","type":"externalcacertificate","version":"da56323b-9415-5389-b592-946163695c1e","isSystemDefined":false},"type":"directoryconfiguration"}],"version":"ecterdobi","realmId":2}},"ActiveDirectoryRealmWrapper":{"allOf":[{"$ref":"#/definitions/ActiveDirectoryRealm"},{"$ref":"#/definitions/LinksWrapper"}]},"ActiveUserSessions":{"type":"object","properties":{"userName":{"type":"string"},"identitySourceId":{"type":"string"},"issuedAt":{"type":"integer"},"expiresAt":{"type":"integer"},"sessionDuration":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"ActiveUserSessions"}},"required":["type"]},"ActiveUserSessionsWrapper":{"allOf":[{"$ref":"#/definitions/ActiveUserSessions"},{"$ref":"#/definitions/LinksWrapper"}]},"Application":{"type":"object","properties":{"name":{"type":"string"},"appId":{"type":"integer"},"description":{"type":"string"},"tags":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"categories":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"deprecated":{"type":"boolean"},"tagIds":{"type":"array","items":{"type":"integer"}},"categoryIds":{"type":"array","items":{"type":"integer"}},"id":{"type":"string"},"applicationTypes":{"type":"array","items":{"type":"object","$ref":"#/definitions/ApplicationType"}},"productivity":{"type":"integer"},"risk":{"type":"integer"},"type":{"type":"string","default":"application"}},"required":["appId","type"],"example":{"id":"83c8e0e6-3707-5128-b7da-4659f67b76a0","version":"5072ae78-a326-5b92-8176-c0c8132922a8","description":"Bo dese su ja elumuf ane zusjo fiplois ewariju ihjup nunnihep kosaldic kuhfovu.","deprecated":false,"appId":4,"productivity":0,"risk":1,"name":"Application1","tagIds":["62bc5d56-7e60-5a71-a467-2c4f2a035a06"],"tags":[{"id":"62bc5d56-7e60-5a71-a467-2c4f2a035a06","version":"e7e0ebc9-3a9a-5342-91e9-ae0ce54b3444","appId":12,"name":"ApplicationTag12","description":"Bamiwaga bo kek wawinta ovepozgan tibutef je kezaluk zonwoz fovul aw ter nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["ea9b4aa3-c8a2-52f9-87ba-b33f1b452a42","2ad8b880-5783-5919-bda2-46e8316f2d70"],"categories":[{"id":"ea9b4aa3-c8a2-52f9-87ba-b33f1b452a42","version":"e289f52e-a078-5581-a775-4c8435a534f0","appId":3,"name":"ApplicationCategory7","description":"Ci sovo ig ivebcag gif uk eztez ezofi jizrebi lafozu ehje daj noiw vajru modpoteh juizu.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"2ad8b880-5783-5919-bda2-46e8316f2d70","version":"c19f7a96-7634-5d1b-972d-99caa3e34a64","appId":1,"name":"ApplicationCategory12","description":"Ev zalapi hiwuhi peror lupu iv obalem gicobem vi bafuh ponij co hur linsis fukurod dehpupme.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["SERVER","WEBAPP"],"metadata":{"referenced":false},"type":"application"}},"ApplicationWrapper":{"allOf":[{"$ref":"#/definitions/Application"},{"$ref":"#/definitions/LinksWrapper"}]},"ApplicationCategory":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"appId":{"type":"integer"},"description":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"applicationcategory"}},"required":["appId","type"],"example":{"id":"328094ea-7b95-58e5-a2de-09018514e679","version":"a9f6d6f5-e2ce-5a1b-8c7f-1a5ba3c375b4","appId":4,"name":"ApplicationCategory1","description":"Pilooru amavudek uhzidkah sieha duhni ikfo celrid az ocolu loplun buj nodlial do ahme henacava so ecevega wemtumacu.","metadata":{"referenced":true},"type":"applicationcategory"}},"ApplicationCategoryWrapper":{"allOf":[{"$ref":"#/definitions/ApplicationCategory"},{"$ref":"#/definitions/LinksWrapper"}]},"ApplicationFilter":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"applications":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"isSystemDefined":{"type":"boolean"},"id":{"type":"string"},"conditions":{"type":"array","items":{"type":"object","$ref":"#/definitions/ApplicationFilterCondition"}},"type":{"type":"string","default":"applicationfilter"}},"required":["type"],"example":{"id":"4890f08c-7d08-5b84-93cc-7a4baa096ff1","version":"76998009-57e5-5be3-83ee-29ff93086a19","name":"ApplicationFilter2","description":"Uwudu elufur kikvusab gi zafur zerojtuc cefiz oti fonum wit pewivbu leuhi cen uri mibfozta jukmuw nafid.","applications":[{"id":"83c8e0e6-3707-5128-b7da-4659f67b76a0","version":"5072ae78-a326-5b92-8176-c0c8132922a8","description":"Bo dese su ja elumuf ane zusjo fiplois ewariju ihjup nunnihep kosaldic kuhfovu.","deprecated":false,"appId":4,"productivity":0,"risk":1,"name":"Application1","tagIds":["62bc5d56-7e60-5a71-a467-2c4f2a035a06"],"tags":[{"id":"62bc5d56-7e60-5a71-a467-2c4f2a035a06","version":"e7e0ebc9-3a9a-5342-91e9-ae0ce54b3444","appId":12,"name":"ApplicationTag12","description":"Bamiwaga bo kek wawinta ovepozgan tibutef je kezaluk zonwoz fovul aw ter nu.","metadata":{"referenced":false},"type":"applicationtag"}],"categoryIds":["ea9b4aa3-c8a2-52f9-87ba-b33f1b452a42","2ad8b880-5783-5919-bda2-46e8316f2d70"],"categories":[{"id":"ea9b4aa3-c8a2-52f9-87ba-b33f1b452a42","version":"e289f52e-a078-5581-a775-4c8435a534f0","appId":3,"name":"ApplicationCategory7","description":"Ci sovo ig ivebcag gif uk eztez ezofi jizrebi lafozu ehje daj noiw vajru modpoteh juizu.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"2ad8b880-5783-5919-bda2-46e8316f2d70","version":"c19f7a96-7634-5d1b-972d-99caa3e34a64","appId":1,"name":"ApplicationCategory12","description":"Ev zalapi hiwuhi peror lupu iv obalem gicobem vi bafuh ponij co hur linsis fukurod dehpupme.","metadata":{"referenced":true},"type":"applicationcategory"}],"applicationTypes":["SERVER","WEBAPP"],"metadata":{"referenced":false},"type":"application"},{"id":"6361bd7f-01c9-5714-baca-035d66f50a8c","version":"50dcdb47-5d21-537f-b3b0-81713bf31c06","description":"Leku luto lofuwec wuwguhot abmofdo cun vuunuvi lulsoteg kivsas mijmi ru kipumeja sacwuwhe gub magumera.","deprecated":false,"appId":5,"productivity":0,"risk":4,"name":"Application5","tagIds":["0b45de63-5252-5257-acf6-ce494cdb905a"],"tags":[{"id":"0b45de63-5252-5257-acf6-ce494cdb905a","version":"9c3ed423-1b8a-5f1f-aae0-a507cc188490","appId":6,"name":"ApplicationTag6","description":"Varejse ji ogouvu rin nubuten bezozmaj coeg zuralse pa zitomgon lu rigugip.","metadata":{"referenced":true},"type":"applicationtag"}],"categoryIds":["7f62abc6-7f08-5a69-acb6-65def01251d4","fff4b47c-a653-5729-a31a-e6353d420768"],"categories":[{"id":"7f62abc6-7f08-5a69-acb6-65def01251d4","version":"e457683e-a3d5-5f9b-a339-949db4522822","appId":1,"name":"ApplicationCategory15","description":"Uke us eb vem no biwoji hazwaji wepsuvese zugoci fit badtagtih na ke lorvot bulukupo.","metadata":{"referenced":false},"type":"applicationcategory"},{"id":"fff4b47c-a653-5729-a31a-e6353d420768","version":"4254f0ee-0e30-5d6c-aef9-120450723b6a","appId":9,"name":"ApplicationCategory13","description":"Gufatrif rapbe amtac riz naz li jaf recluhu ugjuh edi diuhitoc ivuwbal.","metadata":{"referenced":false},"type":"applicationcategory"}],"applicationTypes":["SERVER","WEBAPP"],"metadata":{"referenced":true},"type":"application"}],"conditions":[{"filter":"jignorebes","tags":[{"id":"e9812b72-2a36-5146-bce0-b09f876df88d","version":"080dca18-c677-5dd1-8f2f-40555beb4fe4","appId":10,"name":"ApplicationTag10","description":"Viswilo ariuzaf pih wa mul vugavrip rijfon aba kac giicse wolifa cowudzuv vev iztafit.","metadata":{"referenced":false},"type":"applicationtag"}],"categories":[{"id":"0928e8e9-25a4-53d0-b118-342a26b44100","version":"cccc44d5-b855-569b-90ad-b26d4e3e0c66","appId":7,"name":"ApplicationCategory8","description":"Mifzonu fokero acdu panvo cuvubde tovli maz cawag kaoj gosoojo falkof hezel sig ca vo wak.","metadata":{"referenced":false},"type":"applicationcategory"}],"risks":[{"type":"riskcondition","risk":"CRITICAL"},{"type":"riskcondition","risk":"LOW"},{"type":"riskcondition","risk":"HIGH"},{"type":"riskcondition","risk":"MEDIUM"}],"applicationTypes":[{"type":"typecondition","applicationType":"WEBAPP"},{"type":"typecondition","applicationType":"SERVER"}],"productivities":[{"type":"productivitycondition","productivity":"HIGH"},{"type":"productivitycondition","productivity":"VERY_LOW"}],"type":"applicationfiltercondition"}],"isSystemDefined":false,"metadata":{"referenced":true},"type":"applicationfilter"}},"ApplicationFilterWrapper":{"allOf":[{"$ref":"#/definitions/ApplicationFilter"},{"$ref":"#/definitions/LinksWrapper"}]},"ApplicationFilterCondition":{"type":"object","properties":{"risks":{"type":"array","items":{"type":"object","$ref":"#/definitions/RiskCondition"}},"productivities":{"type":"array","items":{"type":"object","$ref":"#/definitions/ProductivityCondition"}},"tags":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"categories":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"filter":{"type":"string"},"applicationTypes":{"type":"array","items":{"type":"object","$ref":"#/definitions/TypeCondition"}},"type":{"type":"string","default":"applicationfiltercondition"}},"required":["type"]},"ApplicationTag":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"appId":{"type":"integer"},"description":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"applicationtag"}},"required":["appId","type"],"example":{"id":"f7e90abe-ce71-56da-9f43-dd8685ec1a3a","version":"8b4ad1f1-dab6-5988-a793-c67eb8dbd3ee","appId":1,"name":"ApplicationTag1","description":"Opa zov vek obnam nobbab midzusmow riwehar gufugin mogfuana nairu camu fupim mo hov nizunfej.","metadata":{"referenced":false},"type":"applicationtag"}},"ApplicationTagWrapper":{"allOf":[{"$ref":"#/definitions/ApplicationTag"},{"$ref":"#/definitions/LinksWrapper"}]},"ApplicationType":{"type":"string","enum":["SERVER","CLIENT","WEBAPP"]},"ArchivedBackup":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"user":{"type":"string"},"startDate":{"type":"string"},"fileSize":{"type":"integer"},"archiveName":{"type":"string"},"originalScheduleType":{"type":"object","$ref":"#/definitions/JobExecutionType"},"backupLocation":{"type":"object","$ref":"#/definitions/BackupLocation"},"model":{"type":"string"},"softwareVersion":{"type":"string"},"vdbVersion":{"type":"string"},"serialNumber":{"type":"string"},"modelNumber":{"type":"string"},"modelId":{"type":"string"},"buildVersion":{"type":"string"},"schemaVersion":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"archivedbackup"}},"required":["type"],"example":{"id":"67149052-5232-5a96-9626-172d67ed29d1","archiveName":"NGFW_backup.Archived-Backup-1","name":"Archived-Backup-1","fileSize":51035930,"originalScheduleType":"DAILY","startDate":"2018-05-11T05:14:12.042Z","user":"admin","type":"archivedbackup","version":"uwsakomi","backupLocation":"DEFAULT"}},"ArchivedBackupWrapper":{"allOf":[{"$ref":"#/definitions/ArchivedBackup"},{"$ref":"#/definitions/LinksWrapper"}]},"AuthAction":{"type":"string","enum":["ACTIVE","PASSIVE","NO_AUTH"]},"AuthType":{"type":"string","enum":["HTTP_BASIC","NTLM","HTTP_NEGOTIATE","HTTP_RESPONSE_PAGE"]},"BackupFile":{"type":"object","properties":{"file":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"BackupFile"}},"required":["type"]},"BackupFileWrapper":{"allOf":[{"$ref":"#/definitions/BackupFile"},{"$ref":"#/definitions/LinksWrapper"}]},"BackupImmediate":{"type":"object","properties":{"version":{"type":"string"},"scheduleType":{"type":"object","$ref":"#/definitions/JobExecutionType"},"user":{"type":"string"},"forceOperation":{"type":"boolean"},"jobHistoryUuid":{"type":"string"},"ipAddress":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"backupLocation":{"type":"object","$ref":"#/definitions/BackupLocation"},"jobName":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"backupimmediate"}},"required":["type"]},"BackupImmediateWrapper":{"allOf":[{"$ref":"#/definitions/BackupImmediate"},{"$ref":"#/definitions/LinksWrapper"}]},"BackupScheduled":{"type":"object","properties":{"version":{"type":"string"},"scheduleType":{"type":"object","$ref":"#/definitions/JobExecutionType"},"user":{"type":"string"},"forceOperation":{"type":"boolean"},"jobHistoryUuid":{"type":"string"},"runTimes":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"backupLocation":{"type":"object","$ref":"#/definitions/BackupLocation"},"jobName":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"backupscheduled"}},"required":["type"],"example":{"id":"f529ae80-2f85-5fcc-9070-48513d66a2d7","name":"hiihohubfij","description":"Walik tiubafu ni ro tarida retiw sod co goh hacanner lemoc ceiwu vuddera zefvizsa cejub.","scheduleType":"WEEKLY","runTimes":"41 30 18 * * 4","version":"809bf06d-f594-5488-a5ec-15f7ab41122f","user":"vopelagsud","type":"backupscheduled","backupLocation":"DEFAULT"}},"BackupScheduledWrapper":{"allOf":[{"$ref":"#/definitions/BackupScheduled"},{"$ref":"#/definitions/LinksWrapper"}]},"BreakHAStatus":{"type":"object","properties":{"statusMessage":{"type":"string"},"cliErrorMessage":{"type":"string"},"state":{"type":"object","$ref":"#/definitions/DeploymentStatus$DeploymentState"},"queuedTime":{"type":"integer"},"startTime":{"type":"integer"},"endTime":{"type":"integer"},"statusMessages":{"type":"array","items":{"type":"string"}},"id":{"type":"string"},"name":{"type":"string"},"modifiedObjects":{"type":"object"}}},"BreakHAStatusWrapper":{"allOf":[{"$ref":"#/definitions/BreakHAStatus"},{"$ref":"#/definitions/LinksWrapper"}]},"BridgeGroupInterface":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"hardwareName":{"type":"string"},"monitorInterface":{"type":"boolean"},"ipv4":{"type":"object","$ref":"#/definitions/InterfaceIPv4"},"ipv6":{"type":"object","$ref":"#/definitions/InterfaceIPv6"},"selectedInterfaces":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"bridgeGroupId":{"type":"integer"},"id":{"type":"string"},"type":{"type":"string","default":"bridgegroupinterface"}},"required":["monitorInterface","type"],"example":{"id":"c79d144b-28cf-56fc-80d0-567702b34ec3","version":"dd0874a0-ca8b-56aa-b7bc-104aa51299bf","monitorInterface":false,"ipv4":{"ipType":"DHCP","defaultRouteUsingDHCP":true,"ipAddress":{"type":"haipv4address","netmask":"16","standbyIpAddress":"80.117.141.68","ipAddress":"195.227.238.205"},"dhcp":false,"addressNull":false,"type":"interfaceipv4"},"ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":404,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"c351:02cb:c8a3:1cca:57b1:b484:fd45:8dd9","ipAddress":"47dd:82cb:c993:2f64:aaec:e886:a605:915a/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","ipAddress":""},"dhcpForOtherConfig":false},"description":"Erto imugi ije pek ras pigwic mupurovil di virfan orwo pu sal kopzi simhaas vin.","name":"bgi1","hardwareName":"BridgeGroupInterface1","bridgeGroupId":1,"selectedInterfaces":[{"mtu":5818,"enabled":true,"description":"Setta biwofega af ihi ebele inowo inagiobo nu it fe heivu lijivok.","name":"diagnostic","id":"f7509b61-168c-5d86-9a4c-8d3a2bb23e90","hardwareName":"Management0/0","macAddress":"249A.16A4.5DED","monitorInterface":true,"standbyMacAddress":"06D4.757D.FF06","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0c4e:e907:93c3:ba7a:7842:4899:f454:2a33/32","ipAddress":"41e0:3a60:0ca6:5f1c:cdd5:9c57:4918:682f/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d039:d6f4:278a:cdd3:b9e3:2711:460f:1555","ipAddress":"7e31:6d3f:5bbc:0d7f:4df6:58b9:26a6:d462"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"227.88.54.119","standbyIpAddress":"119.107.19.197"}},"version":"e50dac9e-5493-5760-b5e5-294741f3c409","managementInterface":true,"managementOnly":true,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"},{"mtu":2652,"enabled":false,"description":"Efupaf nas ilureg zetikdav emki fafiv tihug orhid zimurfo naferal va ta ug za ur di zetsa ragizike.","name":"subinterface10name","id":"4307a6d5-0ef1-55d4-adc4-0461c31b7eb5","hardwareName":"SubInterface0/10.11","macAddress":"F617.A8F2.5DEB","monitorInterface":true,"standbyMacAddress":"0E24.391A.BFD9","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"c324:084e:8a04:523f:64ec:2b27:9f07:6a8d/32","ipAddress":"0faf:b8b8:7fbe:0d00:facd:c82d:f721:93dd/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"bc90:477f:99f9:ee80:1faa:1f0c:a2a6:77b7","ipAddress":"2d31:24c2:acd3:16b0:d1df:b4b6:763f:48c0"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"250.15.33.10","standbyIpAddress":"254.220.208.229"}},"version":"0f193aa1-ad09-52dd-98e8-eb32e2e61484","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"bridgegroupinterface"}},"BridgeGroupInterfaceWrapper":{"allOf":[{"$ref":"#/definitions/BridgeGroupInterface"},{"$ref":"#/definitions/LinksWrapper"}]},"BridgeGroupInterfaceIdInfo":{"type":"object","properties":{"version":{"type":"string"},"bridgeGroupIds":{"type":"array","items":{"type":"integer"}},"recycledBridgeGroupIds":{"type":"array","items":{"type":"string"}},"id":{"type":"string"},"type":{"type":"string","default":"bridgegroupinterfaceidinfo"}},"required":["type"]},"CertFileUploadStatus":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"fileName":{"type":"string"},"cert":{"type":"string"},"privateKey":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"certfileuploadstatus"}},"required":["type"]},"CertFileUploadStatusWrapper":{"allOf":[{"$ref":"#/definitions/CertFileUploadStatus"},{"$ref":"#/definitions/LinksWrapper"}]},"CertFileUploadStatus$CertFileUploadType":{},"CliDeploymentError":{"type":"object","properties":{"deploymentStatusUuid":{"type":"string"},"cliErrorMessage":{"type":"string"},"blockType":{"type":"string","enum":["FDM_CLI_DEFAULT","FDM_CLI","SMART_CLI","FLEX_CLI"]},"blockUuid":{"type":"string"},"errorLineId":{"type":"integer"},"negateLine":{"type":"boolean"},"blockStartLineId":{"type":"integer"},"blockEndLineId":{"type":"integer"},"cliLines":{"type":"array","items":{"type":"string"}},"id":{"type":"string"},"type":{"type":"string","default":"CliDeploymentError"}},"required":["type"],"example":{"deploymentStatusUuid":"39978e83-a8ff-11e7-b7ab-f9a7bf4a84a2","cliErrorMessage":"WARNING: DHCPD bindings cleared on interface 'inside', address pool removed\nWARNING: Local user database is empty and there are still 'aaa' commands for 'LOCAL'.\nINFO: Security level for \"diagnostic\" set to 0 by default.\nINFO: Security level for \"outside\" set to 0 by default.\nINFO: Security level for \"inside\" set to 0 by default.\nWARNING: This command will not take effect until interface 'diagnostic' has been assigned an IPv4 address\nWARNING: This command will not take effect until interface 'diagnostic' has been initialized with at least one global IPv6 address\nWARNING: This command will not take effect until interface 'outside' has been assigned an IPv4 address\nWARNING: This command will not take effect until interface 'outside' has been initialized with at least one global IPv6 address\nWARNING: This command will not take effect until interface 'inside' has been initialized with at least one global IPv6 address\n.ERROR: Invalid next hop address.\nConfig Error -- route inside 205.188.248.0 255.255.255.0 234.23.234.23 1","blockType":"FDM_CLI","errorLineId":101,"negateLine":false,"blockStartLineId":23,"blockEndLineId":191,"cliLines":["!!!FdmCliDefaultStart","clear configure all","policy-map global_policy"," class inspection_default"," inspect dns preset_dns_map"," inspect ftp"," inspect h323 h225"," inspect h323 ras"," inspect rsh"," inspect rtsp"," inspect sqlnet"," inspect skinny"," inspect sunrpc"," inspect xdmcp"," inspect sip"," inspect netbios"," inspect tftp"," inspect ip-options"," inspect icmp"," inspect icmp error","logging timestamp","no strong-encryption-disable","!!!FdmCliDefaultEnd","!!!FdmCliStart","interface Management0/0"," nameif diagnostic","interface GigabitEthernet0/0"," nameif outside","interface GigabitEthernet0/1"," nameif inside","interface GigabitEthernet0/4"," no ip address","interface GigabitEthernet0/5"," no ip address","interface GigabitEthernet0/6"," no ip address","interface GigabitEthernet0/7"," no ip address","interface GigabitEthernet0/8"," no ip address","interface Management0/0"," no ip address","interface GigabitEthernet0/1"," ip address 192.168.45.1 255.255.255.0","interface GigabitEthernet0/2"," no ip address","interface GigabitEthernet0/3"," no ip address","interface GigabitEthernet0/0"," dhcp client route distance 1"," ip address dhcp setroute","interface GigabitEthernet0/4"," shutdown"," speed auto"," duplex auto","interface GigabitEthernet0/5"," shutdown"," speed auto"," duplex auto","interface GigabitEthernet0/6"," shutdown"," speed auto"," duplex auto","interface GigabitEthernet0/7"," shutdown"," speed auto"," duplex auto","interface GigabitEthernet0/8"," shutdown"," speed auto"," duplex auto","interface Management0/0"," management-only"," speed auto"," duplex auto","interface GigabitEthernet0/0"," no shutdown"," speed auto"," duplex auto","interface GigabitEthernet0/1"," no shutdown"," speed auto"," duplex auto","interface GigabitEthernet0/2"," shutdown"," speed auto"," duplex auto","interface GigabitEthernet0/3"," shutdown"," speed auto"," duplex auto","ip-client diagnostic","ip-client diagnostic ipv6","dhcpd auto_config outside","dhcpd address 192.168.45.46-192.168.45.254 inside","dhcpd enable inside","dhcp-client client-id interface outside","ip-client outside","ip-client outside ipv6","ip-client inside","ip-client inside ipv6","route inside 205.188.248.0 255.255.255.0 234.23.234.23 1","route inside 234.23.234.23 255.255.255.255 234.23.234.23 1","object network Test"," host 234.23.234.23","object network any-ipv4"," subnet 0.0.0.0 0.0.0.0","object network any-ipv6"," subnet ::/0","object network AIM_SERVERS-64.12.31.136"," host 64.12.31.136","object network AIM_SERVERS-64.12.46.140"," host 64.12.46.140","object network AIM_SERVERS-64.12.186.85"," host 64.12.186.85","object network AIM_SERVERS-205.188.1.132"," host 205.188.1.132","object network AIM_SERVERS-205.188.11.228"," host 205.188.11.228","object network AIM_SERVERS-205.188.11.253"," host 205.188.11.253","object network AIM_SERVERS-205.188.11.254"," host 205.188.11.254","object network AIM_SERVERS-205.188.210.203"," host 205.188.210.203","object network AIM_SERVERS-64.12.24.0-23"," subnet 64.12.24.0 255.255.254.0","object network AIM_SERVERS-64.12.28.0-23"," subnet 64.12.28.0 255.255.254.0","object network AIM_SERVERS-64.12.161.0-24"," subnet 64.12.161.0 255.255.255.0","object network AIM_SERVERS-64.12.163.0-24"," subnet 64.12.163.0 255.255.255.0","object network AIM_SERVERS-64.12.200.0-24"," subnet 64.12.200.0 255.255.255.0","object network AIM_SERVERS-205.188.3.0-24"," subnet 205.188.3.0 255.255.255.0","object network AIM_SERVERS-205.188.5.0-24"," subnet 205.188.5.0 255.255.255.0","object network AIM_SERVERS-205.188.7.0-24"," subnet 205.188.7.0 255.255.255.0","object network AIM_SERVERS-205.188.9.0-24"," subnet 205.188.9.0 255.255.255.0","object network AIM_SERVERS-205.188.153.0-24"," subnet 205.188.153.0 255.255.255.0","object network AIM_SERVERS-205.188.179.0-24"," subnet 205.188.179.0 255.255.255.0","object network AIM_SERVERS-205.188.248.0-24"," subnet 205.188.248.0 255.255.255.0","object-group network AIM_SERVERS"," network-object object AIM_SERVERS-205.188.11.253"," network-object object AIM_SERVERS-205.188.210.203"," network-object object AIM_SERVERS-205.188.248.0-24"," network-object object AIM_SERVERS-205.188.3.0-24"," network-object object AIM_SERVERS-205.188.9.0-24"," network-object object AIM_SERVERS-64.12.186.85"," network-object object AIM_SERVERS-205.188.11.228"," network-object object AIM_SERVERS-64.12.200.0-24"," network-object object AIM_SERVERS-205.188.5.0-24"," network-object object AIM_SERVERS-64.12.163.0-24"," network-object object AIM_SERVERS-64.12.28.0-23"," network-object object AIM_SERVERS-205.188.7.0-24"," network-object object AIM_SERVERS-205.188.179.0-24"," network-object object AIM_SERVERS-205.188.11.254"," network-object object AIM_SERVERS-64.12.24.0-23"," network-object object AIM_SERVERS-205.188.153.0-24"," network-object object AIM_SERVERS-64.12.31.136"," network-object object AIM_SERVERS-205.188.1.132"," network-object object AIM_SERVERS-64.12.46.140"," network-object object AIM_SERVERS-64.12.161.0-24","access-list NGFW_ONBOX_ACL line 1 remark rule-id 1: ACCESS POLICY: NGFW_Access_Policy","access-list NGFW_ONBOX_ACL line 2 remark rule-id 1: L5 RULE: DefaultActionRule","access-list NGFW_ONBOX_ACL line 3 advanced deny ip any any rule-id 1","access-group NGFW_ONBOX_ACL global","crypto ikev1 policy 160"," authentication pre-share"," encryption des"," hash sha"," group 5"," lifetime 86400","crypto ikev2 policy 100"," encryption des"," integrity sha"," group 5"," prf sha"," lifetime seconds 86400","no logging enable","no logging trap","no logging console","sysopt connection tcpmss 0","strong-encryption-disable","!!!FdmCliEnd"],"type":"CliDeploymentError","id":"39978e83-a8ff-11e7-b7ab-f9a7bf4a84a2","links":{"self":"https://10.88.127.213:2915/api/fdm/v2/operational/deploymenterrors/39978e83-a8ff-11e7-b7ab-f9a7bf4a84a2"}}},"CliDeploymentErrorWrapper":{"allOf":[{"$ref":"#/definitions/CliDeploymentError"},{"$ref":"#/definitions/LinksWrapper"}]},"Clipboard":{"type":"object","properties":{"value":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"Clipboard"}},"required":["type"],"example":{"id":"default","value":"---\n# Pending Changes copied to clipboard\n\n- entityId: cd61615a-d9f7-11e7-a718-e9e60ac6939f\n entityType: networkobject\n entityName: network-object-test\n referencesAdded: []\n valuesAdded:\n - fieldName: subType\n newValue: Host\n\n - fieldName: value\n newValue: 1.1.1.1\n\n - fieldName: name\n newValue: network-object-test\n\n - fieldName: description\n newValue: Test description\n\n type: entitycreate\n","type":"clipboard"}},"ClipboardWrapper":{"allOf":[{"$ref":"#/definitions/Clipboard"},{"$ref":"#/definitions/LinksWrapper"}]},"CloudCommunicationSettings":{"type":"object","properties":{"version":{"type":"string"},"telemetryEnabled":{"type":"boolean"},"defenseOrchestratorEnabled":{"type":"boolean"},"id":{"type":"string"},"type":{"type":"string","default":"cloudcommunicationsettings"}},"required":["type"]},"CloudCommunicationSettingsWrapper":{"allOf":[{"$ref":"#/definitions/CloudCommunicationSettings"},{"$ref":"#/definitions/LinksWrapper"}]},"CloudConfig":{"type":"object","properties":{"version":{"type":"string"},"enableAutomaticUpdates":{"type":"boolean"},"queryCloudUnknown":{"type":"boolean"},"urlCacheReloadTTL":{"type":"object","$ref":"#/definitions/URLCacheReloadTTL"},"id":{"type":"string"},"type":{"type":"string","default":"cloudconfig"}},"required":["type"],"example":{"id":"bcec32bb-155e-575c-97ed-2d2c31b46c8d","version":"a676c787-6f49-53fa-b32e-9ffc42123871","type":"cloudconfig","enableAutomaticUpdates":true,"urlCacheReloadTTL":"NEVER","queryCloudUnknown":false}},"CloudConfigWrapper":{"allOf":[{"$ref":"#/definitions/CloudConfig"},{"$ref":"#/definitions/LinksWrapper"}]},"CloudServicesInfo":{"type":"object","properties":{"servicesPortalURL":{"type":"string"},"status":{"type":"string"},"statusDescription":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"CloudServicesInfo"}},"required":["type"]},"CloudServicesInfoWrapper":{"allOf":[{"$ref":"#/definitions/CloudServicesInfo"},{"$ref":"#/definitions/LinksWrapper"}]},"Command":{"type":"object","properties":{"commandInput":{"type":"string"},"commandOutput":{"type":"string"},"timeOut":{"type":"integer"},"id":{"type":"string"},"type":{"type":"string","default":"Command"}},"required":["type","commandInput"]},"CommandWrapper":{"allOf":[{"$ref":"#/definitions/Command"},{"$ref":"#/definitions/LinksWrapper"}]},"CommandAutoComplete":{"type":"object","properties":{"autoCompleteCommands":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"CommandAutoComplete"}},"required":["type"]},"CommandAutoCompleteWrapper":{"allOf":[{"$ref":"#/definitions/CommandAutoComplete"},{"$ref":"#/definitions/LinksWrapper"}]},"ConnectivitySetting":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"tcpMaxSegmentSize":{"type":"integer"},"id":{"type":"string"},"type":{"type":"string","default":"connectivitysetting"}},"required":["tcpMaxSegmentSize","type"],"example":{"id":"b0145da9-d0da-581a-9800-11a649da72cf","version":"38b3eba3-c4e7-5fbf-9eb5-293fd7eddd01","tcpMaxSegmentSize":1380,"type":"connectivitysetting"}},"Continent":{"type":"object","properties":{"name":{"type":"string"},"code":{"type":"integer"},"deprecated":{"type":"boolean"},"countries":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"countryCodes":{"type":"array","items":{"type":"integer"}},"id":{"type":"string"},"type":{"type":"string","default":"continent"}},"required":["code","type"],"example":{"id":"c7eb60a1-be27-5963-87ac-0c756fe76124","name":"Oceania","deprecated":true,"code":1006,"type":"continent","countries":[{"id":"28993a70-0f71-51a6-bd15-75bbbe151d39","name":"Samoa","deprecated":true,"iso3":"WSM","iso2":"WS","code":"882","type":"country"},{"id":"91d14642-b0c8-57a5-b226-e39b80213360","name":"Wallis and Futuna","deprecated":true,"iso3":"WLF","iso2":"WF","code":"876","type":"country"},{"id":"1f8bd503-8b6b-53b7-91e8-b4f01a87f55d","name":"Vanuatu","deprecated":true,"iso3":"VUT","iso2":"VU","code":"548","type":"country"},{"id":"0822041a-9790-514e-84a5-229c82007d22","name":"U.S. Minor Outlying Islands","deprecated":true,"iso3":"UMI","iso2":"UM","code":"581","type":"country"},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"9442da73-6b47-5cab-8a0b-baa977ec390b","name":"Tonga","deprecated":true,"iso3":"TON","iso2":"TO","code":"776","type":"country"},{"id":"37cfb898-ea93-52c7-bb5e-05b5e6ff3710","name":"East Timor","deprecated":false,"iso3":"TLS","iso2":"TL","code":"626","type":"country"},{"id":"d4c50c5a-d2a1-527e-81d7-b76ab3722771","name":"Tokelau","deprecated":false,"iso3":"TKL","iso2":"TK","code":"772","type":"country"},{"id":"2b6643b8-6fcb-5315-b350-5817c1573ea4","name":"Solomon Islands","deprecated":true,"iso3":"SLB","iso2":"SB","code":"090","type":"country"},{"id":"10a85a47-2aa1-5729-aa4d-cb226f57c280","name":"Palau","deprecated":false,"iso3":"PLW","iso2":"PW","code":"585","type":"country"},{"id":"dd1d13f6-78f2-5a0f-b4ca-ca27972be314","name":"Pitcairn Islands","deprecated":true,"iso3":"PCN","iso2":"PN","code":"612","type":"country"},{"id":"122477fe-9b24-50ed-88db-64565b4cc950","name":"Papua New Guinea","deprecated":false,"iso3":"PNG","iso2":"PG","code":"598","type":"country"},{"id":"642a86d2-e785-5f88-83a1-6b9299dc0cdf","name":"French Polynesia","deprecated":false,"iso3":"PYF","iso2":"PF","code":"258","type":"country"},{"id":"f2d903e0-16b9-5f01-a3dc-854970d49544","name":"New Zealand","deprecated":true,"iso3":"NZL","iso2":"NZ","code":"554","type":"country"},{"id":"643a299d-d43d-5be0-b5eb-4b30867675b1","name":"Niue","deprecated":false,"iso3":"NIU","iso2":"NU","code":"570","type":"country"},{"id":"65295b82-c8fc-5b50-9e20-e8a1ea9c3439","name":"Nauru","deprecated":true,"iso3":"NRU","iso2":"NR","code":"520","type":"country"},{"id":"fe7bb7a6-4c20-526b-a28f-59c99ffb6c79","name":"Norfolk Island","deprecated":true,"iso3":"NFK","iso2":"NF","code":"574","type":"country"},{"id":"23f76b7a-27a9-5013-9d04-668471db97fc","name":"New Caledonia","deprecated":false,"iso3":"NCL","iso2":"NC","code":"540","type":"country"},{"id":"6d4a7385-b2b6-578c-b825-f2bae24ad903","name":"Northern Mariana Islands","deprecated":true,"iso3":"MNP","iso2":"MP","code":"580","type":"country"},{"id":"b49ff744-593f-5d86-ac9a-58d2d4e8307e","name":"Marshall Islands","deprecated":true,"iso3":"MHL","iso2":"MH","code":"584","type":"country"},{"id":"ec318859-4ec8-56f2-a06c-f2d23e06516e","name":"Kiribati","deprecated":false,"iso3":"KIR","iso2":"KI","code":"296","type":"country"},{"id":"6fff8b89-01f2-59d9-9a39-bd5a8c525fc9","name":"Guam","deprecated":false,"iso3":"GUM","iso2":"GU","code":"316","type":"country"},{"id":"87ea1078-3291-54f4-85e1-f2d54f97a96d","name":"Micronesia","deprecated":false,"iso3":"FSM","iso2":"FM","code":"583","type":"country"},{"id":"c7a81f83-2cd9-501d-9645-ed4170667b48","name":"Fiji","deprecated":true,"iso3":"FJI","iso2":"FJ","code":"242","type":"country"},{"id":"4343b55a-5fe8-567f-a099-f3d20b53a9cf","name":"Cook Islands","deprecated":true,"iso3":"COK","iso2":"CK","code":"184","type":"country"},{"id":"147f040e-b349-5414-81d3-dae7700c7e81","name":"Australia","deprecated":true,"iso3":"AUS","iso2":"AU","code":"036","type":"country"},{"id":"f3f980b4-9a78-5ff2-b7e7-be91523e3783","name":"American Samoa","deprecated":true,"iso3":"ASM","iso2":"AS","code":"016","type":"country"}],"countryCodes":["882","876","548","581","798","776","626","772","090","585","612","598","258","554","570","520","574","540","580","584","296","316","583","242","184","036","016"]}},"ContinentWrapper":{"allOf":[{"$ref":"#/definitions/Continent"},{"$ref":"#/definitions/LinksWrapper"}]},"Country":{"type":"object","properties":{"name":{"type":"string"},"code":{"type":"integer"},"deprecated":{"type":"boolean"},"iso2":{"type":"string"},"iso3":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"country"}},"required":["code","type"],"example":{"id":"2dd83d58-9368-513e-8bca-464e074764f6","name":"Zimbabwe","deprecated":true,"iso3":"ZWE","iso2":"ZW","code":"716","type":"country"}},"CountryWrapper":{"allOf":[{"$ref":"#/definitions/Country"},{"$ref":"#/definitions/LinksWrapper"}]},"DHCPServer":{"type":"object","properties":{"enableDHCP":{"type":"boolean"},"addressPool":{"type":"string"},"interface":{"type":"object","$ref":"#/definitions/ReferenceModel"},"type":{"type":"string","default":"dhcpserver"}},"required":["enableDHCP","addressPool","interface","type"]},"DHCPServerContainer":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"autoConfig":{"type":"boolean"},"primaryDNS":{"type":"string"},"secondaryDNS":{"type":"string"},"primaryWINS":{"type":"string"},"secondaryWINS":{"type":"string"},"servers":{"type":"array","items":{"type":"object","$ref":"#/definitions/DHCPServer"}},"id":{"type":"string"},"interface":{"type":"object","$ref":"#/definitions/ReferenceModel"},"type":{"type":"string","default":"dhcpservercontainer"}},"required":["autoConfig","type"],"example":{"id":"03d74d98-18e2-5d26-ba97-8d33c95ce067","version":"a63674d4-a9d6-5758-a87e-928328729e9e","autoConfig":false,"servers":[],"primaryWINS":"35.168.133.32","secondaryWINS":"48.108.208.232","primaryDNS":"193.194.169.150","secondaryDNS":"102.255.75.63","type":"dhcpservercontainer"}},"DHCPServerContainerWrapper":{"allOf":[{"$ref":"#/definitions/DHCPServerContainer"},{"$ref":"#/definitions/LinksWrapper"}]},"DatabaseInfo":{"type":"object","properties":{"version":{"type":"string"},"softwareVersion":{"type":"string"},"buildVersion":{"type":"string"},"restoredFromBackup":{"type":"object","$ref":"#/definitions/BackupStateType"},"schemaVersion":{"type":"string"},"configDBVersion":{"type":"string"},"firewallConfigChecksum":{"type":"string"},"isBootstrapSuccessFul":{"type":"boolean"},"id":{"type":"string"},"type":{"type":"string","default":"databaseinfo"}},"required":["buildVersion","schemaVersion","type","softwareVersion"]},"DbCacheEntityBase$DbCacheState":{"type":"string","enum":["DEPLOYING","DEPLOYED","HISTORIC"]},"DefaultIdentityRule":{"type":"object","properties":{"authAction":{"type":"object","$ref":"#/definitions/AuthAction"},"type":{"type":"string","default":"defaultidentityrule"}},"required":["type"],"example":{"authAction":"PASSIVE","type":"defaultidentityrule"}},"DeployedConfigChecksum":{"type":"object","properties":{"version":{"type":"string"},"checksum":{"type":"string"},"lastUpdatedTimestamp":{"type":"integer"},"updatedFrom":{"type":"object","$ref":"#/definitions/DeployedConfigChecksumType"},"id":{"type":"string"},"type":{"type":"string","default":"deployedconfigchecksum"}},"required":["type"]},"DeployedConfigChecksumType":{"type":"string","enum":["DEPLOYED_LOCALLY","SYNCED_FROM_PEER"]},"DeploymentData":{"type":"object","properties":{"numberOfObjectsToDeploy":{"type":"integer"},"deployedConfigChecksum":{"type":"object","$ref":"#/definitions/DeployedConfigChecksum"},"forceDeployment":{"type":"boolean"},"id":{"type":"string"},"type":{"type":"string","default":"DeploymentData"}},"required":["type"],"example":{"id":"default","numberOfObjectsToDeploy":0,"type":"deploymentdata"}},"DeploymentDataWrapper":{"allOf":[{"$ref":"#/definitions/DeploymentData"},{"$ref":"#/definitions/LinksWrapper"}]},"DeploymentInfo":{"type":"object","properties":{"version":{"type":"string"},"lastDeployedConfigChecksum":{"type":"string"},"isEasySetupDeployment":{"type":"boolean"},"forceDeployment":{"type":"boolean"},"requiresCacheRefresh":{"type":"boolean"},"id":{"type":"string"},"type":{"type":"string","default":"deploymentinfo"}},"required":["type"]},"DeploymentSchedule":{"type":"object","properties":{"version":{"type":"string"},"scheduleType":{"type":"object","$ref":"#/definitions/JobExecutionType"},"user":{"type":"string"},"forceOperation":{"type":"boolean"},"jobHistoryUuid":{"type":"string"},"runTimes":{"type":"string"},"name":{"type":"string"},"deploymentId":{"type":"integer"},"deploymentStatusUuid":{"type":"string"},"deploymentType":{"type":"object","$ref":"#/definitions/DeploymentSchedule$DeploymentType"},"resumeDeployment":{"type":"boolean"},"jobName":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"deploymentschedule"}},"required":["type"]},"DeploymentSchedule$DeploymentType":{"type":"string","enum":["NEW","EASY_SETUP_DEPLOYMENT","HA_JOIN_DEPLOYMENT","HA_BREAK_DEPLOYMENT"]},"DeploymentStatus":{"type":"object","properties":{"statusMessage":{"type":"string"},"cliErrorMessage":{"type":"string"},"state":{"type":"object","$ref":"#/definitions/DeploymentStatus$DeploymentState"},"queuedTime":{"type":"integer"},"startTime":{"type":"integer"},"endTime":{"type":"integer"},"statusMessages":{"type":"array","items":{"type":"string"}},"id":{"type":"string"},"name":{"type":"string"},"modifiedObjects":{"type":"object"}}},"DeploymentStatusWrapper":{"allOf":[{"$ref":"#/definitions/DeploymentStatus"},{"$ref":"#/definitions/LinksWrapper"}]},"DeploymentStatus$DeploymentState":{"type":"string","enum":["QUEUED","DEPLOYING","DEPLOYED","DEPLOY_FAILED","DEPLOY_TIMEOUT"]},"Device":{"type":"object","properties":{"version":{"type":"string"},"ipAddress":{"type":"string"},"name":{"type":"string"},"port":{"type":"integer"},"userName":{"type":"string"},"password":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"device"}},"required":["type"]},"DirectoryConfiguration":{"type":"object","properties":{"hostname":{"type":"string"},"port":{"type":"integer"},"encryptionProtocol":{"type":"object","$ref":"#/definitions/EncryptionProtocol"},"encryptionCert":{"type":"object","$ref":"#/definitions/ReferenceModel"},"type":{"type":"string","default":"directoryconfiguration"}},"required":["hostname","port","type"],"example":{"port":7146,"hostname":"166.169.55.184","encryptionProtocol":"STARTTLS","encryptionCert":{"id":"31ce8cf5-0e07-58c1-9617-4de62a7800f1","name":"TrustedCACertificate1","cert":"-----BEGIN CERTIFICATE-----MIIC9zCCAmCgAwIBAgIJAJ69cfUJsifyMA0GCSqGSIb3DQEBBQUAMIGCMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxDjAMBgNVBAoMBUNpc2NvMQwwCgYDVQQLDANBREkxIjAgBgNVBAMMGUFESSBUZWFtIFRlc3RpbmcgYXQgQ2lzY28xITAfBgkqhkiG9w0BCQEWEnRjaHJpc3RtQGNpc2NvLmNvbTAeFw0xNTA0MDYxNDQwMjBaFw0xNjA0MDUxNDQwMjBaMHsxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEPMA0GA1UEBwwGQXVzdGluMQwwCgYDVQQKDANBREkxDDAKBgNVBAsMA0FESTEMMAoGA1UEAwwDQURJMSEwHwYJKoZIhvcNAQkBFhJ0Y2hyaXN0bUBjaXNjby5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKdwrJ9FYCVpnqHITgGGYb7nzlz+IRJc5Bl8FAepbjXpRh+noV04ttLkoIDlGobtqHbCls+Py7HjIaUFb2/T9Cddhf1mHC4jSp9nXVQmERhYoHfpyEVu4ZU7x5qFw+G4f4am3KzI2d6meWqaJZ3/5Z7bI3+zTmVK1SiSh12zarA/AgMBAAGjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBRzoznNy0g/X4VyqF8jJt+p6z44tDAfBgNVHSMEGDAWgBRDXj/hqU0NPpTv1+Z6O7LQixcgxTANBgkqhkiG9w0BAQUFAAOBgQBHm6MADmMOPj7bBCY1lADpcFuSdGjzNgvUyivRDZcMlwFpLlIl+vNJSSMU6i20bq5o+pOMJsSCjOf9NxT3lcWuxtT4Ea226txs5a15TyGRxBV5MJ4/s6gHaDowJSF/TngsURIKcNqFpLTv5FBCqcGR2kdmvBwtl9319seCoZEZYw==-----END CERTIFICATE-----","type":"externalcacertificate","version":"da56323b-9415-5389-b592-946163695c1e","isSystemDefined":false},"type":"directoryconfiguration"}},"DirectoryUserDownloadImmediate":{"type":"object","properties":{"version":{"type":"string"},"scheduleType":{"type":"object","$ref":"#/definitions/JobExecutionType"},"user":{"type":"string"},"forceOperation":{"type":"boolean"},"jobHistoryUuid":{"type":"string"},"ipAddress":{"type":"string"},"jobName":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"directoryuserdownloadimmediate"}},"required":["type"]},"DirectoryUserImportImmediate":{"type":"object","properties":{"version":{"type":"string"},"scheduleType":{"type":"object","$ref":"#/definitions/JobExecutionType"},"user":{"type":"string"},"forceOperation":{"type":"boolean"},"jobHistoryUuid":{"type":"string"},"ipAddress":{"type":"string"},"jobName":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"directoryuserimportimmediate"}},"required":["type"]},"EmbeddedAppFilter":{"type":"object","properties":{"applications":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"applicationFilters":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"conditions":{"type":"array","items":{"type":"object","$ref":"#/definitions/ApplicationFilterCondition"}},"type":{"type":"string","default":"embeddedappfilter"}},"required":["type"]},"EmbeddedAppFilterBase":{"type":"object","properties":{"applications":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"conditions":{"type":"array","items":{"type":"object","$ref":"#/definitions/ApplicationFilterCondition"}},"type":{"type":"string","default":"embeddedappfilterbase"}},"required":["type"]},"EmbeddedURLFilter":{"type":"object","properties":{"urlObjects":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"urlCategories":{"type":"array","items":{"type":"object","$ref":"#/definitions/URLCategoryMatcher"}},"type":{"type":"string","default":"embeddedurlfilter"}},"required":["type"]},"EncryptionProtocol":{"type":"string","enum":["STARTTLS","LDAPS","NONE"]},"EntryAction":{"type":"string","enum":["PERMIT","DENY"]},"ExportConfigFile":{"type":"object","properties":{"file":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"ExportConfigFile"}},"required":["type"]},"ExportConfigJobHistory":{"type":"object","properties":{"version":{"type":"string"},"jobName":{"type":"string"},"jobDescription":{"type":"string"},"user":{"type":"string"},"startDateTime":{"type":"string"},"endDateTime":{"type":"string"},"status":{"type":"object","$ref":"#/definitions/JobHistoryEntity$JobHistoryStatus"},"statusMessage":{"type":"string"},"scheduleUuid":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"exportconfigjobhistory"}},"required":["type"]},"ExportConfigJobHistoryWrapper":{"allOf":[{"$ref":"#/definitions/ExportConfigJobHistory"},{"$ref":"#/definitions/LinksWrapper"}]},"ExternalCACertificate":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"cert":{"type":"string","default":"*********"},"privateKey":{"type":"string","default":"*********"},"passPhrase":{"type":"string"},"issuerCommonName":{"type":"string"},"issuerCountry":{"type":"string"},"issuerLocality":{"type":"string"},"issuerOrganization":{"type":"string"},"issuerOrganizationUnit":{"type":"string"},"issuerState":{"type":"string"},"subjectCommonName":{"type":"string"},"subjectCountry":{"type":"string"},"subjectDistinguishedName":{"type":"string"},"subjectLocality":{"type":"string"},"subjectOrganization":{"type":"string"},"subjectOrganizationUnit":{"type":"string"},"subjectState":{"type":"string"},"validityStartDate":{"type":"string"},"validityEndDate":{"type":"string"},"isSystemDefined":{"type":"boolean"},"id":{"type":"string"},"type":{"type":"string","default":"externalcacertificate"}},"required":["type"],"example":{"cert":"-----BEGIN CERTIFICATE-----MIIC9zCCAmCgAwIBAgIJAJ69cfUJsifyMA0GCSqGSIb3DQEBBQUAMIGCMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxDjAMBgNVBAoMBUNpc2NvMQwwCgYDVQQLDANBREkxIjAgBgNVBAMMGUFESSBUZWFtIFRlc3RpbmcgYXQgQ2lzY28xITAfBgkqhkiG9w0BCQEWEnRjaHJpc3RtQGNpc2NvLmNvbTAeFw0xNTA0MDYxNDQwMjBaFw0xNjA0MDUxNDQwMjBaMHsxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEPMA0GA1UEBwwGQXVzdGluMQwwCgYDVQQKDANBREkxDDAKBgNVBAsMA0FESTEMMAoGA1UEAwwDQURJMSEwHwYJKoZIhvcNAQkBFhJ0Y2hyaXN0bUBjaXNjby5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKdwrJ9FYCVpnqHITgGGYb7nzlz+IRJc5Bl8FAepbjXpRh+noV04ttLkoIDlGobtqHbCls+Py7HjIaUFb2/T9Cddhf1mHC4jSp9nXVQmERhYoHfpyEVu4ZU7x5qFw+G4f4am3KzI2d6meWqaJZ3/5Z7bI3+zTmVK1SiSh12zarA/AgMBAAGjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBRzoznNy0g/X4VyqF8jJt+p6z44tDAfBgNVHSMEGDAWgBRDXj/hqU0NPpTv1+Z6O7LQixcgxTANBgkqhkiG9w0BAQUFAAOBgQBHm6MADmMOPj7bBCY1lADpcFuSdGjzNgvUyivRDZcMlwFpLlIl+vNJSSMU6i20bq5o+pOMJsSCjOf9NxT3lcWuxtT4Ea226txs5a15TyGRxBV5MJ4/s6gHaDowJSF/TngsURIKcNqFpLTv5FBCqcGR2kdmvBwtl9319seCoZEZYw==-----END CERTIFICATE-----","key":"-----BEGIN RSA PUBLIC KEY-----MIGJAoGBAKdwrJ9FYCVpnqHITgGGYb7nzlz+IRJc5Bl8FAepbjXpRh+noV04ttLkoIDlGobtqHbCls+Py7HjIaUFb2/T9Cddhf1mHC4jSp9nXVQmERhYoHfpyEVu4ZU7x5qFw+G4f4am3KzI2d6meWqaJZ3/5Z7bI3+zTmVK1SiSh12zarA/AgMBAAE=-----END RSA PUBLIC KEY-----","subjectDistinguishedName":"Zirpoppo guj luc lo zij zabe gokuhdul zoh gophek du wogin cav wiw lurera vab eb.","subjectCommonName":"Oji unusito mepajdac fomew ken fesasdaz terde be pionufo atarej ana mukad gap kalmemsu po vir bek.","subjectOrganization":"Zegas va keaja vav zosomo jufejagog sep mukpummub sinbeto igegiizu hevwojet ikecod fu ajueb.","subjectCountry":"Wug nug ulizihep ac ro hibmu ufe vo hucenhev wowjig ohacudilu pujuha oggo aveceku gogogmu.","type":"externalcacertificate","issuerLocality":"Jihhihu biv jozki feg awmum jazfek fuijevi urse so le wi bizeni wojva vic cehokla.","subjectState":"Cujafiga seosjej fa pu voh sohacis ohdonot covdes ijnun doru dab kefa sa no.","subjectOrganization_unit":"Naji gon re unsejal malimuj hun gijajalo dugi ibbil nezi hakonauc zeemu em kud fuwimed cemicnop fo.","physicalPathToKeyFile":"Ikcitip caadaj detezeg ti oh sodo vuhvobeha tuf ciene togokta mulub to hojufha.","physicalPathToCertFile":"Re suv taguzco mocto kuvamziz bip emvoduc urcanbo sopavon jihus umefoip repga gicun ikaniwfe di ezimiap dareb silco.","validityStartDate":"2016-02-06T11:09:17Z","issuerCommonName":"Pa beobe niloraba onsuif bepmif aleubo mafkofo huljodo sovcu duj rez kaj mercefad joto.","issuerCountry":"Bin cumum wahluzpa mewocic awvek basiwo weepo hencob hepos dibofo reugvut wihevewi.","name":"External_Certificate","subjectLocality":"So tejpopku telopep kota pah keiffi luz behha aja osuvobawa an renpukzi.","issuerOrganizationUnit":"Lued licepwal lid lausubid nob iwiwo zouge dugjiar noiz lap vewlapej hepkig niju izevostu sasu ne.","issuerOrganization":"Ju op piema sisoh tir liujoza wafgejhu irpa wu sam seit zosekrog wob dur pohak mogdo.","validityEndDate":"2018-06-05T15:10:57Z","issuerState":"Remiz vi orpiede av romgihipu potacijid fiduked jobe pazbooz erouwi ten wampo cankaag dimnalhi febsi."}},"ExternalCACertificateWrapper":{"allOf":[{"$ref":"#/definitions/ExternalCACertificate"},{"$ref":"#/definitions/LinksWrapper"}]},"ExternalCACertificateGroup":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"isSystemDefined":{"type":"boolean"},"id":{"type":"string"},"objects":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"type":{"type":"string","default":"externalcacertificategroup"}},"required":["type"]},"ExternalCertificate":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"cert":{"type":"string","default":"*********"},"privateKey":{"type":"string","default":"*********"},"passPhrase":{"type":"string"},"issuerCommonName":{"type":"string"},"issuerCountry":{"type":"string"},"issuerLocality":{"type":"string"},"issuerOrganization":{"type":"string"},"issuerOrganizationUnit":{"type":"string"},"issuerState":{"type":"string"},"subjectCommonName":{"type":"string"},"subjectCountry":{"type":"string"},"subjectDistinguishedName":{"type":"string"},"subjectLocality":{"type":"string"},"subjectOrganization":{"type":"string"},"subjectOrganizationUnit":{"type":"string"},"subjectState":{"type":"string"},"validityStartDate":{"type":"string"},"validityEndDate":{"type":"string"},"isSystemDefined":{"type":"boolean"},"id":{"type":"string"},"type":{"type":"string","default":"externalcertificate"}},"required":["type"]},"ExternalCertificateWrapper":{"allOf":[{"$ref":"#/definitions/ExternalCertificate"},{"$ref":"#/definitions/LinksWrapper"}]},"FQDNDNSResolution":{"type":"string","enum":["IPV4_ONLY","IPV6_ONLY","IPV4_AND_IPV6"]},"FQDNId":{"type":"object","properties":{"version":{"type":"string"},"currentFqdnId":{"type":"integer"},"id":{"type":"string"},"type":{"type":"string","default":"fqdnid"}},"required":["type"]},"FQDNSupportedPolicyEnum":{"type":"string","enum":["AC_POLICY"]},"FeatureInformation":{"type":"object","properties":{"featureList":{"type":"array","items":{"type":"object","$ref":"#/definitions/FeatureInformation$Feature"}},"id":{"type":"string"},"type":{"type":"string","default":"FeatureInformation"}},"required":["type"],"example":{"id":"default","version":"31e67c45-3193-596f-beb7-e9603e729420","featureList":[{"name":"SSL","enabled":true,"urls":["/api/fdm/v2/policy/sslpolicies","/api/fdm/v2/object/distinguishednames","/api/fdm/v2/object/distinguishednamegroups"]},{"name":"FilePolicy","enabled":true,"urls":["/api/fdm/v2/policy/filepolicies"]},{"name":"CloudServices","enabled":true,"urls":["/api/fdm/v2/devicesettings/default/cloudcommunicationsettings","/api/fdm/v2/actions/default/cloudmanagement","/api/fdm/v2/operational/telemetry"]},{"name":"OpenDNS","enabled":true,"urls":[]}],"type":"FeatureInformation"}},"FeatureInformationWrapper":{"allOf":[{"$ref":"#/definitions/FeatureInformation"},{"$ref":"#/definitions/LinksWrapper"}]},"FeatureInformation$Feature":{"type":"object","properties":{"name":{"type":"string"},"enabled":{"type":"boolean"},"urls":{"type":"array","items":{"type":"string"}}}},"FileEntity":{"type":"object","properties":{"file":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"FileEntity"}},"required":["type"]},"FilePolicy":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"id":{"type":"string"},"policyType":{"type":"object","$ref":"#/definitions/CannedFilePolicy"},"type":{"type":"string","default":"filepolicy"}},"required":["description","type"],"example":{"id":"de5b742d-70db-535d-bb42-6e6ba949ef53","type":"filepolicy","policyType":"BLOCK_MALWARE_ALL","name":"File_Policy_1","description":"Wiakeno ja barfowole aredu wutra loc fe soc cakdo se la agokim gevsirrog cagome.","version":"e0e81a67-2608-53e2-a015-f53dc3a9de10"}},"FilePolicyWrapper":{"allOf":[{"$ref":"#/definitions/FilePolicy"},{"$ref":"#/definitions/LinksWrapper"}]},"FileUploadStatus":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"fileName":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"fileuploadstatus"}},"required":["type"]},"FileUploadStatusWrapper":{"allOf":[{"$ref":"#/definitions/FileUploadStatus"},{"$ref":"#/definitions/LinksWrapper"}]},"GeoLocation":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"locations":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"id":{"type":"string"},"type":{"type":"string","default":"geolocation"}},"required":["type"],"example":{"id":"302b9321-60fd-55ac-8111-7b228ba8a7bc","name":"Geolocation1","description":"Eretalta mov naw dibravwe vimu bek ose wipa ecgule kesep pewaco we taruhra awsen kef poin tu fazu.","version":"b9a8a2e0-c5ff-5705-8d0f-b488b9275e46","type":"geolocation","locations":[{"id":"56ea454f-c3b7-5928-88b1-fc3c7937519a","name":"Africa","deprecated":true,"code":1001,"type":"continent","countries":[{"id":"2dd83d58-9368-513e-8bca-464e074764f6","name":"Zimbabwe","deprecated":true,"iso3":"ZWE","iso2":"ZW","code":"716","type":"country"},{"id":"7cd6bf9c-8b69-57c2-abf6-6eeb0741de15","name":"Zambia","deprecated":true,"iso3":"ZMB","iso2":"ZM","code":"894","type":"country"},{"id":"f2d94483-8127-5b5c-9f56-26897f391615","name":"South Africa","deprecated":false,"iso3":"ZAF","iso2":"ZA","code":"710","type":"country"},{"id":"67312148-f472-5f74-af7e-da0dfe6c5483","name":"Mayotte","deprecated":true,"iso3":"MYT","iso2":"YT","code":"175","type":"country"},{"id":"16d66ae1-8a56-5b81-8a83-6f7123be2e2c","name":"Uganda","deprecated":false,"iso3":"UGA","iso2":"UG","code":"800","type":"country"},{"id":"b1825e78-1df2-5592-a76e-7442de702238","name":"Tanzania","deprecated":false,"iso3":"TZA","iso2":"TZ","code":"834","type":"country"},{"id":"34105ec6-4fd5-5617-8a55-a033b433501b","name":"Tunisia","deprecated":false,"iso3":"TUN","iso2":"TN","code":"788","type":"country"},{"id":"00827e94-7231-522b-a92c-c43381c394b0","name":"Togo","deprecated":true,"iso3":"TGO","iso2":"TG","code":"768","type":"country"},{"id":"5b1f4a78-73fb-5d81-b087-a43e6a56210e","name":"Chad","deprecated":true,"iso3":"TCD","iso2":"TD","code":"148","type":"country"},{"id":"4390d558-ea24-5aab-92ed-7ea167512925","name":"Swaziland","deprecated":false,"iso3":"SWZ","iso2":"SZ","code":"748","type":"country"},{"id":"22e9a10d-c048-5bce-92b3-d35ba32a2380","name":"São Tomé and PrÃncipe","deprecated":false,"iso3":"STP","iso2":"ST","code":"678","type":"country"},{"id":"175e350b-3e7b-5988-92a5-b8592f89a5d0","name":"South Sudan","deprecated":true,"iso3":"SSD","iso2":"SS","code":"728","type":"country"},{"id":"408c17e6-3750-56ba-b74d-14cece756b69","name":"Somalia","deprecated":false,"iso3":"SOM","iso2":"SO","code":"706","type":"country"},{"id":"bed65f83-79ce-514e-a9c2-24bae1906576","name":"Senegal","deprecated":true,"iso3":"SEN","iso2":"SN","code":"686","type":"country"},{"id":"81415c05-a391-5182-8902-0f48ee21358a","name":"Sierra Leone","deprecated":true,"iso3":"SLE","iso2":"SL","code":"694","type":"country"},{"id":"50c46fa0-0451-5e15-9bbc-846a527de114","name":"Saint Helena","deprecated":true,"iso3":"SHN","iso2":"SH","code":"654","type":"country"},{"id":"c2a050bc-b370-5bcd-945c-cd0d88d814ee","name":"Sudan","deprecated":false,"iso3":"SDN","iso2":"SD","code":"729","type":"country"},{"id":"2792902e-5e01-5294-bd39-4a9b86443f69","name":"Seychelles","deprecated":false,"iso3":"SYC","iso2":"SC","code":"690","type":"country"},{"id":"e6e6e19f-26b3-53cc-ae5c-ad6af73ffa23","name":"Rwanda","deprecated":false,"iso3":"RWA","iso2":"RW","code":"646","type":"country"},{"id":"1657adab-03a4-556a-b779-d62bf356497f","name":"Réunion","deprecated":true,"iso3":"REU","iso2":"RE","code":"638","type":"country"},{"id":"db11cb4c-3534-5c9a-bd15-7b41c5b161d6","name":"Nigeria","deprecated":false,"iso3":"NGA","iso2":"NG","code":"566","type":"country"},{"id":"271aded5-deef-50b9-9e02-ec55543da25b","name":"Niger","deprecated":true,"iso3":"NER","iso2":"NE","code":"562","type":"country"},{"id":"a8f12931-d0a3-5ead-b8f7-26c9d8e29684","name":"Namibia","deprecated":false,"iso3":"NAM","iso2":"NA","code":"516","type":"country"},{"id":"f85a38bd-9851-5540-9a47-2bcda221c02f","name":"Mozambique","deprecated":false,"iso3":"MOZ","iso2":"MZ","code":"508","type":"country"},{"id":"26316b70-a4e5-5ee7-9176-d8f88977ac81","name":"Malawi","deprecated":false,"iso3":"MWI","iso2":"MW","code":"454","type":"country"},{"id":"8ac5e628-88fe-5a8f-a8e8-5e9823bed8c9","name":"Mauritius","deprecated":true,"iso3":"MUS","iso2":"MU","code":"480","type":"country"},{"id":"6286246a-cb95-57c8-bf4d-85524e069dc9","name":"Mauritania","deprecated":false,"iso3":"MRT","iso2":"MR","code":"478","type":"country"},{"id":"9eaf4ef5-fcd1-55b8-b344-7b60f9acbb2a","name":"Mali","deprecated":true,"iso3":"MLI","iso2":"ML","code":"466","type":"country"},{"id":"3158c9ea-2e08-5057-923c-a252e9bbceb5","name":"Madagascar","deprecated":true,"iso3":"MDG","iso2":"MG","code":"450","type":"country"},{"id":"b110114a-4903-54d2-8925-cfa66175fc81","name":"Morocco","deprecated":true,"iso3":"MAR","iso2":"MA","code":"504","type":"country"},{"id":"ac567919-9e6f-5712-8ef8-817d2875ae89","name":"Libya","deprecated":false,"iso3":"LBY","iso2":"LY","code":"434","type":"country"},{"id":"b82c039e-20c2-50f0-9176-307e154d19cd","name":"Lesotho","deprecated":true,"iso3":"LSO","iso2":"LS","code":"426","type":"country"},{"id":"936e5855-cede-5036-b530-4a8dc3ded9f1","name":"Liberia","deprecated":true,"iso3":"LBR","iso2":"LR","code":"430","type":"country"},{"id":"781554f5-83af-5829-a0b1-f679ccadcbc8","name":"Comoros","deprecated":true,"iso3":"COM","iso2":"KM","code":"174","type":"country"},{"id":"ef9608a5-3398-5610-9770-361e8f4d5018","name":"Kenya","deprecated":false,"iso3":"KEN","iso2":"KE","code":"404","type":"country"},{"id":"7ff14832-3c58-5e8d-b6fa-7d211d0eddea","name":"Guinea-Bissau","deprecated":true,"iso3":"GNB","iso2":"GW","code":"624","type":"country"},{"id":"24ef0507-02b5-58d8-a403-8087853d0d0e","name":"Equatorial Guinea","deprecated":false,"iso3":"GNQ","iso2":"GQ","code":"226","type":"country"},{"id":"8b2e1fe0-df59-514f-8cad-46e618371f10","name":"Guinea","deprecated":false,"iso3":"GIN","iso2":"GN","code":"324","type":"country"},{"id":"2311d16e-f8c8-5db8-9446-ddc015dee026","name":"Gambia","deprecated":true,"iso3":"GMB","iso2":"GM","code":"270","type":"country"},{"id":"9cbd51af-d825-56f1-b3c3-1412697fe6d8","name":"Ghana","deprecated":true,"iso3":"GHA","iso2":"GH","code":"288","type":"country"},{"id":"1a6265f3-08ce-57c4-9d8d-8807bc7c3f96","name":"Gabon","deprecated":true,"iso3":"GAB","iso2":"GA","code":"266","type":"country"},{"id":"7466e390-4ac7-5c6e-8ae7-cffbf4d26761","name":"Ethiopia","deprecated":false,"iso3":"ETH","iso2":"ET","code":"231","type":"country"},{"id":"1b6630d5-2650-5baf-b9a5-fa59fbbd36be","name":"Eritrea","deprecated":false,"iso3":"ERI","iso2":"ER","code":"232","type":"country"},{"id":"f2413a89-a11d-527c-a748-d64457cd82ba","name":"Western Sahara","deprecated":true,"iso3":"ESH","iso2":"EH","code":"732","type":"country"},{"id":"23a4cd6d-3738-547b-9e3a-82d60efe6864","name":"Egypt","deprecated":true,"iso3":"EGY","iso2":"EG","code":"818","type":"country"},{"id":"bd6f190e-df1a-568c-94cc-8fbb7394522f","name":"Algeria","deprecated":false,"iso3":"DZA","iso2":"DZ","code":"012","type":"country"},{"id":"9c992f6e-72f5-5d6b-8fb9-b23909129b08","name":"Djibouti","deprecated":true,"iso3":"DJI","iso2":"DJ","code":"262","type":"country"},{"id":"63696b95-bded-58f4-8b4e-402397cfcd8a","name":"Cape Verde","deprecated":true,"iso3":"CPV","iso2":"CV","code":"132","type":"country"},{"id":"6d854d95-e91f-53cb-a1f2-1e07d51eb137","name":"Cameroon","deprecated":false,"iso3":"CMR","iso2":"CM","code":"120","type":"country"},{"id":"e8286886-6019-50d6-b0b4-315f7b9f2cef","name":"Ivory Coast","deprecated":false,"iso3":"CIV","iso2":"CI","code":"384","type":"country"},{"id":"97916595-e2d1-5214-87e2-e242bf4ad893","name":"Republic of the Congo","deprecated":false,"iso3":"COG","iso2":"CG","code":"178","type":"country"},{"id":"b1b8664b-d80d-5480-9b9a-a1ac997bd533","name":"Central African Republic","deprecated":false,"iso3":"CAF","iso2":"CF","code":"140","type":"country"},{"id":"8789e5fc-90ef-5dc5-942f-1f0f6bef20e2","name":"Democratic Republic of the Congo","deprecated":false,"iso3":"COD","iso2":"CD","code":"180","type":"country"},{"id":"e8bab11d-42db-5ff0-a68d-81d7fdae7000","name":"Botswana","deprecated":false,"iso3":"BWA","iso2":"BW","code":"072","type":"country"},{"id":"74442316-edea-5c33-9f4e-de1677f848a1","name":"Benin","deprecated":true,"iso3":"BEN","iso2":"BJ","code":"204","type":"country"},{"id":"a666ef14-444e-5605-add7-3a1a1bf028d6","name":"Burundi","deprecated":true,"iso3":"BDI","iso2":"BI","code":"108","type":"country"},{"id":"b4bd346d-94ee-5893-8439-83dcc230d37e","name":"Burkina Faso","deprecated":false,"iso3":"BFA","iso2":"BF","code":"854","type":"country"},{"id":"c6218172-7179-5f37-9302-48a0ac1e3082","name":"Angola","deprecated":true,"iso3":"AGO","iso2":"AO","code":"024","type":"country"}],"countryCodes":["716","894","710","175","800","834","788","768","148","748","678","728","706","686","694","654","729","690","646","638","566","562","516","508","454","480","478","466","450","504","434","426","430","174","404","624","226","324","270","288","266","231","232","732","818","012","262","132","120","384","178","140","180","072","204","108","854","024"]},{"id":"8aa72327-ba67-5dff-b069-035aeb8cfa04","name":"Tuvalu","deprecated":true,"iso3":"TUV","iso2":"TV","code":"798","type":"country"},{"id":"d992dc09-5ab5-5126-a966-51dd89360213","name":"Cyprus","deprecated":false,"iso3":"CYP","iso2":"CY","code":"196","type":"country"},{"id":"f768751b-5126-5dd3-8d28-dc034bde2bb2","name":"Antarctica","deprecated":false,"iso3":"ATA","iso2":"AQ","code":"010","type":"country"},{"id":"465abc15-6361-5901-99d0-014fd0a8fb59","name":"Peru","deprecated":false,"iso3":"PER","iso2":"PE","code":"604","type":"country"},{"id":"8fc88712-b063-55fa-adf9-7d1090098ca4","name":"Bermuda","deprecated":false,"iso3":"BMU","iso2":"BM","code":"060","type":"country"},{"id":"52961d82-c37b-5a32-8ca1-34c8ca38ca0f","name":"Bangladesh","deprecated":true,"iso3":"BGD","iso2":"BD","code":"050","type":"country"}]}},"GeoLocationWrapper":{"allOf":[{"$ref":"#/definitions/GeoLocation"},{"$ref":"#/definitions/LinksWrapper"}]},"GeolocationUpdateImmediate":{"type":"object","properties":{"version":{"type":"string"},"scheduleType":{"type":"object","$ref":"#/definitions/JobExecutionType"},"user":{"type":"string"},"forceOperation":{"type":"boolean"},"jobHistoryUuid":{"type":"string"},"ipAddress":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"jobName":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"geolocationupdateimmediate"}},"required":["type"]},"GeolocationUpdateImmediateWrapper":{"allOf":[{"$ref":"#/definitions/GeolocationUpdateImmediate"},{"$ref":"#/definitions/LinksWrapper"}]},"GeolocationUpdateSchedule":{"type":"object","properties":{"version":{"type":"string"},"scheduleType":{"type":"object","$ref":"#/definitions/JobExecutionType"},"user":{"type":"string"},"forceOperation":{"type":"boolean"},"jobHistoryUuid":{"type":"string"},"runTimes":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"jobName":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"geolocationupdateschedule"}},"required":["type"]},"GeolocationUpdateScheduleWrapper":{"allOf":[{"$ref":"#/definitions/GeolocationUpdateSchedule"},{"$ref":"#/definitions/LinksWrapper"}]},"GeolocationVersion":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"geolocationDbVersion":{"type":"string"},"lastSuccessGeolocationDate":{"type":"string"},"countryCodeMapVersion":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"geolocationversion"}},"required":["type"]},"HAIPv4Address":{"type":"object","properties":{"ipAddress":{"type":"string"},"netmask":{"type":"string"},"standbyIpAddress":{"type":"string"},"type":{"type":"string","default":"haipv4address"}},"required":["type"]},"HAIPv6Address":{"type":"object","properties":{"ipAddress":{"type":"string"},"standbyIpAddress":{"type":"string"},"type":{"type":"string","default":"haipv6address"}},"required":["type"]},"HaBreakCleanupImmediate":{"type":"object","properties":{"version":{"type":"string"},"scheduleType":{"type":"object","$ref":"#/definitions/JobExecutionType"},"user":{"type":"string"},"forceOperation":{"type":"boolean"},"jobHistoryUuid":{"type":"string"},"ipAddress":{"type":"string"},"jobName":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"habreakcleanupimmediate"}},"required":["type"]},"HaConfigSyncImmediate":{"type":"object","properties":{"version":{"type":"string"},"scheduleType":{"type":"object","$ref":"#/definitions/JobExecutionType"},"user":{"type":"string"},"forceOperation":{"type":"boolean"},"jobHistoryUuid":{"type":"string"},"ipAddress":{"type":"string"},"jobName":{"type":"string"},"restore":{"type":"boolean"},"id":{"type":"string"},"type":{"type":"string","default":"haconfigsyncimmediate"}},"required":["type"]},"ICMPv4Codes":{"type":"string","enum":["ANY_IPV4","NET_UNREACHABLE","HOST_UNREACHABLE","PROTOCOL_UNREACHABLE","PORT_UNREACHABLE","FRAGMENTATION_NEEDED","SOURCE_ROUTE_FAILED","DEST_NETWORK_UNKNOWN","DEST_HOST_UNKNOWN","SRC_HOST_ISOLATED","COMMUNICATION_DEST_NET_PROHIBITED","COMMUNICATION_DEST_HOST_PROHIBITED","DEST_NET_UNREACHABLE_FOR_TOS","DEST_HOST_UNREACHABLE_FOR_TOS","COMM_ADMINISTRATIVELY_PROHIBITED","HOST_PRECEDENCE_VIOLATION","PRECEDENCE_CUTOFF","REDIRECT_DATAGRAM_NETWORK","REDIRECT_DATAGRAM_HOST","REDIRECT_DATAGRAM_SERVICE_NETWORK","REDIRECT_DATAGRAM_SERVICE_HOST","ALTERNATE_HOST_ADDR","NORMAL_ROUTER_ADV","DO_NOT_ROUTE_COMMON_TRAFFIC","TTL_EXPIRED_TRANSIT","FRAG_ASSEMBLY","PTR_ERROR","MISSING_REQD_OPTION","BAD_LENGTH","BAD_SPI","AUTH_FAILED","DECOMPRESSION_FAILED","DECRYPTION_FAILED","NEED_AUTHENTICATION","NEED_AUTHORIZATION"]},"ICMPv4PortObject":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"isSystemDefined":{"type":"boolean"},"icmpv4Type":{"type":"object","$ref":"#/definitions/ICMPv4Types"},"icmpv4Code":{"type":"object","$ref":"#/definitions/ICMPv4Codes"},"id":{"type":"string"},"type":{"type":"string","default":"icmpv4portobject"}},"required":["icmpv4Type","type"],"example":{"id":"2a40730e-7878-5969-ba53-1d9278cde125","name":"icmpv4port1","description":"Uva ceti behga hetivasu ajbebu rakepe ame ifa aceuriso kejic fucaoti gigvivvo gishelpob jurevmu ov maclefe.","version":"e62c0f51-027e-5a7f-b725-a96162bb7138","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8508,"isSystemDefined":false}},"ICMPv4PortObjectWrapper":{"allOf":[{"$ref":"#/definitions/ICMPv4PortObject"},{"$ref":"#/definitions/LinksWrapper"}]},"ICMPv4Types":{"type":"string","enum":["ANY","ECHO_REPLY","DESTINATION_UNREACHABLE","SOURCE_QUENCH","REDIRECT_MESSAGE","ALTERNATE_HOST_ADDRESS","ECHO_REQUEST","ROUTER_ADVERTISEMENT","ROUTER_SOLICITATION","TIME_EXCEEDED","PARAMETER_PROBLEM","TIMESTAMP","TIMESTAMP_REPLY","INFO_REQUEST","INFO_REPLY","ADDR_MASK_REQUEST","ADDR_MASK_REPLY","TRACEROUTE","DATAGRAM_CONVERSION_ERROR","MOBILE_HOST_REDIRECT","WHERE_ARE_YOU","HERE_I_AM","MOBILE_REG_REQUEST","MOBILE_REG_REPLY","DOMAIN_NAME_REQUEST","DOMAIN_NAME_REPLY","SKIP_ALGORITHM_DISCOVERY_PROTOCOL","PHOTURIS","EXPERIMENTAL_MOB_PROTOCOLS"]},"ICMPv6Codes":{"type":"string","enum":["ANY_IPV6","NO_ROUTE_DEST","COMMUNICATION_PROHIBITED","BEYOND_SCOPE_SRC_ADDR","ADDRESS_UNREACHABLE","PORT_UNREACHABLE","SOURCE_ADDRESS_FAILED","REJECT_ROUTE","ERROR_SRC_ROUTING_HEADER","HOP_LIMIT_EXCEEDED","FRAGMENT_REASSEMBLY_TIME_EXCEEDED","ERRONEOUS_HEADER_ENCOUNTERED","UNRECOGNIZED_NEXT_HEADER_TYPE_ENCOUNTERED","UNRECOGNIZED_IPv6_OPTION_ENCOUNTERED","ROUTER_RENUMBERING_COMMAND","ROUTER_RENUMBERING_RESULT","SEQUENCE_NUMBER_RESET","DATA_CONTAINS_IPv6","DATA_CONTAINS_NAME","DATA_CONTAINS_IPv4","SUCCESSFUL_REPLY","RESPONDER_REFUSES_ANSWER","QTYPE_UNKNOWN"]},"ICMPv6PortObject":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"isSystemDefined":{"type":"boolean"},"icmpv6Type":{"type":"object","$ref":"#/definitions/ICMPv6Types"},"icmpv6Code":{"type":"object","$ref":"#/definitions/ICMPv6Codes"},"id":{"type":"string"},"type":{"type":"string","default":"icmpv6portobject"}},"required":["icmpv6Type","type"],"example":{"id":"ff728962-8729-5bce-941c-1730e280dc0b","name":"icmpv6port1","description":"Uh letiof numsu bokewod gosso sowdilid bevliur idseaho vu delale luctid ila givcogev.","version":"9aca9371-12d1-5490-af24-a87e3160146f","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8452,"isSystemDefined":false}},"ICMPv6PortObjectWrapper":{"allOf":[{"$ref":"#/definitions/ICMPv6PortObject"},{"$ref":"#/definitions/LinksWrapper"}]},"ICMPv6Types":{"type":"string","enum":["ANY","DESTINATION_UNREACHABLE","PACKET_TOO_BIG","TIME_EXCEEDED","PARAMETER_PROBLEM","ECHO_REQUEST","ECHO_REPLY","MULTICAST_LISTENER_QUERY","MULTICAST_LISTENER_REPORT","MULTICAST_LISTENER_DONE","ROUTER_SOLICITATION","ROUTER_ADVERTISEMENT","NEIGHBOUR_SOLICITATION","NEIGHBOUR_ADVERTISEMENT","REDIRECT_MESSAGE","ROUTER_RENUMBERING","ICMP_NODE_INFO_QUERY","ICMP_NODE_INFO_RESPONSE","INVERSE_NEIGHBOR_DISCOVERY_SOLICITATION","INVERSE_NEIGHBOR_DISCOVERY_ADVERTISEMENT","VER2_MULTICAST_LISTENER_REPORT","HOME_AGENT_ADDR_DISCOVERY_REQ","HOME_AGENT_ADDR_DISCOVERY_REPLY","MOBILE_PREFIX_SOLICITATION","MOBILE_PREFIX_ADVERTISEMENT","CERT_PATH_SOLICITATION","CERT_PATH_ADVERTISEMENT","ICMP_EXP_MOBILITY_PROTOCOLS","MULTICAST_ROUTER_ADVERTISEMENT","MULTICAST_ROUTER_SOLICITATION","MULTICAST_ROUTER_TERMINATION","FMIPv6_MSG","RPL_CTRL_MSG","PRIVATE_EXPERIMENTATION","PRIVATE_EXPERIMENTATION_EXTENDED"]},"IPSRuleClassification":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"priority":{"type":"integer"},"ordinal":{"type":"integer"},"description":{"type":"string"},"revision":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"ipsruleclassification"}},"required":["description","type","revision"]},"IPv4Address":{"type":"object","properties":{"ipAddress":{"type":"string"},"netmask":{"type":"string"},"type":{"type":"string","default":"ipv4address"}},"required":["type"]},"IPv4Type":{"type":"string","enum":["DHCP","STATIC"]},"IPv6Address":{"type":"object","properties":{"ipAddress":{"type":"string"},"type":{"type":"string","default":"ipv6address"}},"required":["type"]},"IPv6Prefix":{"type":"object","properties":{"prefix":{"type":"string"},"type":{"type":"string","default":"ipv6prefix"}},"required":["type"]},"ISEObject":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"iseobject"}},"required":["type"]},"IdentityPolicy":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"activeAuthPort":{"type":"integer"},"defaultIdentityRule":{"type":"object","$ref":"#/definitions/DefaultIdentityRule"},"id":{"type":"string"},"activeAuthCertificate":{"type":"object","$ref":"#/definitions/ReferenceModel"},"type":{"type":"string","default":"identitypolicy"}},"required":["type","activeAuthPort"],"example":{"id":"c6e1cd2e-f402-5578-a72f-8c637f5bf0c4","name":"Identity policy","activeAuthPort":885,"activeAuthCertificate":{"id":"dd3ca9bc-cd75-5799-953b-0a2e5dba2c49","name":"InternalCertificate3","cert":"-----BEGIN CERTIFICATE-----\nMIIDEjCCAnugAwIBAgIJAJ69cfUJsifzMA0GCSqGSIb3DQEBBQUAMIGCMQswCQYD\nVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxDjAMBgNVBAoMBUNpc2NvMQwwCgYDVQQL\nDANBREkxIjAgBgNVBAMMGUFESSBUZWFtIFRlc3RpbmcgYXQgQ2lzY28xITAfBgkq\nhkiG9w0BCQEWEnRjaHJpc3RtQGNpc2NvLmNvbTAeFw0xNTA0MDYxNDQ0NTJaFw0x\nNjA0MDUxNDQ0NTJaMIGVMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxDzAN\nBgNVBAcMBkF1c3RpbjEVMBMGA1UECgwMQURJIGF0IENpc2NvMQwwCgYDVQQLDANB\nREkxHTAbBgNVBAMMFEFESSBUZXN0aW5nIEF0IENpc2NvMSEwHwYJKoZIhvcNAQkB\nFhJ0Y2hyaXN0bUBjaXNjby5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB\nAKk6jiG3XImaQNnVe1zeRbchMVbpBxdDYIRt0Eqvl2HqfAZJDKSw+s080iMC5Dmg\nTvOaZYaf4rc92z/WpMTgiOxmwKLhaw1INzBptxc4JoQPNFG4qUSVIHW9mnoXwluo\naXypJKAgeLukuO5tdUj9Iy4IHabMmJxcQsZ1vJ65cIH5AgMBAAGjezB5MAkGA1Ud\nEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmlj\nYXRlMB0GA1UdDgQWBBROqbPMUm6cUg+E/ficJa8WkdhcwzAfBgNVHSMEGDAWgBRD\nXj/hqU0NPpTv1+Z6O7LQixcgxTANBgkqhkiG9w0BAQUFAAOBgQBaoTmcEb14AIcd\nq6R34phLlDP1JRV54NQ5gTXK858dyRE41CHensHSwXlHUg2JJ/LuUhK7h+ST1Qhy\nkFCHNQHh9ojRK34ydIIltGaGGCIZDEgUqhc7IeZ/PSR5252vQaAwDWDxapA2ZsVo\nr9OY0Q7uuCLvNNiQQzvjlnQZ94Rp4A==\n-----END CERTIFICATE-----\n","privateKey":"-----BEGIN PRIVATE KEY-----MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCqsrdtuAzs/APtjiJefyhxCnheLOFOP8BfvtcdfFNFVj3RP5n30AYGmTT31dTLPeA4dYHgthUImKkxcWIOuJqHlLrEo3fmfEbhy8KehfQ0Pfy+4K/QTB7NU28/K9Hr0Mwz6bUuboby/BvIi1u/ZIzl5KlmJBz/cQMPonD2hte2fwvkqCfhpNl25tMzEpyqCAa4tciUqSXf0Zs63XtcVPBpuGN6vU0QllqxLbzsQ7ShwymBiLnUqX95tWkJCrRIfklEwlbTXyRM5NSjk6EdZeDfX5OHexV4AodbtGZSeQYU7s2vs50khtIWVGr+14dPguWf9ggMCRoX+B9RogfV03IVAgMBAAECggEAfwLTsXQNShiK46uqrx12fgYIYiqKyqps/dEGRw5G94SgIp5sdhP3J9m/q9kTqNa1i80Dgqx5IhhVbFCtYb7CXLex8LahdIJsS35NpZ6OgoDNG0ocB6VcFfNLB3oXjJukFcyD37Sl/Q7RrXrkHZk3radi1Hlyii8Q1AVOgGD9CPBwRaBrjAuJXunJRSnzJ1MuV29PoNSOcQ0o+q26JkZaTcFHt/iVdeBiKFEyfwd6oWTkpRQiUD+Xi/P9XkYud1nou64dvw6XIDpsV7uX07OASHk1fuQjDJLwyO4KlcWBzNb6Z1sE6l1EqHcZKqijcYISElzPGTEVlDkXAT5YxiIjAQKBgQDVYP/8obthBaUBFVkPaZNUzLsjyv9ONOWVHIzw9YVOmC7v2WdrnDgoBkNaV4SdCOYsJW+887nA6zK2208DlRea1fAcZWgItRqvJi9wiqtZAS1BCC+tTliYS3x/wqmFyFRqLK4dIqpbZ52+vEoEMgrDJmzG7k7aXjAm9+JH+MqfBQKBgQDMy0KcdA68h5VlbifLnMbQUJO7Zy081Tdbpgnf02/PaC/HHbYnbn/hWv8TTuoBcEDkh0nl3JRmPKMyF+Aeqj5Xd6A4znRQXq9ZPcOyKYw08VGkf4m41mm2Iq7HcSwhZFlWZWfA3cCU+Z5eTVY7RBQjoJ8Qk6LyRjAmlA5xiMVT0QKBgGVDeXjtUD3FLf+LoA5+bhsqZg2ggvUciW/wcrrP6gnYkz3kkP4yzzu/bStsqVTVKlb9FUA48oiplhHNlnv+v4sNyLvRLEQlnppMpurkBFljA5T/S5EVw1nTSSxgt47z+YvB1IejMfHbBLPGK+I91XmzvJ/T7LwZQwTbUxoQ6if5AoGBAMuoErzteT4pAvuUWQTWCqxchR1nVIhbbKq6arVoWZeDf4fe1ydNbuSXjnQQFQuLKy1YELgC7JzjDlOhhKJaIJbxAqebP/YwwuXXU0ZYpPJ9TPhuUHI833Fd+juiIwWt+l29iDk3DO3ZcpFLDUbww6pOcACXIQMXo4ip0dc78SgRAoGAEb7FK7hqFmBk24Pu5vzKE/BYYD1mY17+zmeFocn2vu89jLYvRGYrvuGn9TgD3zeXjNsAqbMW8Td5F3xnMJ3JHhnAQHd1Wh5VROsXfhtT/Uhl4eCGEkKqM+EEBD6Z3UsZbNFRGEl1xThzdwchLt0WNTD9kuoxWkjV3hjPBnkJlvk=-----END PRIVATE KEY-----","issuerCommonName":"FTD OnBox Team Testing at Cisco","issuerOrganizationUnit":"FTD","subjectCommonName":"FTD Testing At Cisco","subjectOrganization":"FTD at Cisco","subjectOrganizationUnit":"FTD","validityStartDate":"Apr 6 14:44:52 2015 GMT","validityEndDate":"Feb 16 14:44:52 2017 GMT","type":"internalcertificate","version":"e4835856-e762-5621-b141-b742806949d7"},"defaultIdentityRule":{"authAction":"PASSIVE","type":"defaultidentityrule"},"type":"identitypolicy","version":"golfisiwgo"}},"IdentityPolicyWrapper":{"allOf":[{"$ref":"#/definitions/IdentityPolicy"},{"$ref":"#/definitions/LinksWrapper"}]},"IdentityRule":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"ruleId":{"type":"integer"},"sourceZones":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"destinationZones":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"sourceNetworks":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"destinationNetworks":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"sourcePorts":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"destinationPorts":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"realm":{"type":"object","$ref":"#/definitions/ReferenceModel"},"guestAccessFallback":{"type":"boolean"},"authType":{"type":"object","$ref":"#/definitions/AuthType"},"action":{"type":"object","$ref":"#/definitions/AuthAction"},"enabled":{"type":"boolean"},"id":{"type":"string"},"type":{"type":"string","default":"identityrule"}},"required":["type"],"example":{"name":"err","type":"identityrule","enabled":false,"guestAccessFallback":false,"id":"51dedb67-ad67-52bd-b366-6b267486b4c1","version":"vubamkood","realm":{"id":"3a675c42-3970-5e66-a949-c7d84860f47e","enabled":true,"name":"SpecialUsersRealmIdentity","type":"activedirectoryrealm","baseDN":"miodupbal","adPrimaryDomain":"xsa.cisco.com","dirUsername":"vewhapigud","dirPassword":"*********","systemDefined":true,"directoryConfigurations":[{"port":7146,"hostname":"166.169.55.184","encryptionProtocol":"STARTTLS","encryptionCert":{"id":"31ce8cf5-0e07-58c1-9617-4de62a7800f1","name":"TrustedCACertificate1","cert":"-----BEGIN CERTIFICATE-----MIIC9zCCAmCgAwIBAgIJAJ69cfUJsifyMA0GCSqGSIb3DQEBBQUAMIGCMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxDjAMBgNVBAoMBUNpc2NvMQwwCgYDVQQLDANBREkxIjAgBgNVBAMMGUFESSBUZWFtIFRlc3RpbmcgYXQgQ2lzY28xITAfBgkqhkiG9w0BCQEWEnRjaHJpc3RtQGNpc2NvLmNvbTAeFw0xNTA0MDYxNDQwMjBaFw0xNjA0MDUxNDQwMjBaMHsxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEPMA0GA1UEBwwGQXVzdGluMQwwCgYDVQQKDANBREkxDDAKBgNVBAsMA0FESTEMMAoGA1UEAwwDQURJMSEwHwYJKoZIhvcNAQkBFhJ0Y2hyaXN0bUBjaXNjby5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKdwrJ9FYCVpnqHITgGGYb7nzlz+IRJc5Bl8FAepbjXpRh+noV04ttLkoIDlGobtqHbCls+Py7HjIaUFb2/T9Cddhf1mHC4jSp9nXVQmERhYoHfpyEVu4ZU7x5qFw+G4f4am3KzI2d6meWqaJZ3/5Z7bI3+zTmVK1SiSh12zarA/AgMBAAGjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBRzoznNy0g/X4VyqF8jJt+p6z44tDAfBgNVHSMEGDAWgBRDXj/hqU0NPpTv1+Z6O7LQixcgxTANBgkqhkiG9w0BAQUFAAOBgQBHm6MADmMOPj7bBCY1lADpcFuSdGjzNgvUyivRDZcMlwFpLlIl+vNJSSMU6i20bq5o+pOMJsSCjOf9NxT3lcWuxtT4Ea226txs5a15TyGRxBV5MJ4/s6gHaDowJSF/TngsURIKcNqFpLTv5FBCqcGR2kdmvBwtl9319seCoZEZYw==-----END CERTIFICATE-----","type":"externalcacertificate","version":"da56323b-9415-5389-b592-946163695c1e","isSystemDefined":false},"type":"directoryconfiguration"}],"version":"ecterdobi","realmId":2},"action":"NO_AUTH","authType":"HTTP_NEGOTIATE","ruleId":2,"sourceZones":[{"id":"e12d0a2e-afc7-53cb-85e7-38aa135de327","name":"SecurityZone13Name","description":"Do tewuznas ucait mad ziwgef iw unjup guzov dize guzut vibuk anpekpib nerviw ip ijpa koruf.","version":"09dc0dd3-4a94-5cf2-9efb-89a0f352e003","interfaces":[{"mtu":2652,"enabled":true,"description":"Agi pobjotu zukac rive putsi herima mepues ezijo wicimub utjamoj noskavup wupoje ra dujipale.","name":"subinterface2name","id":"353dee59-d2b6-5df6-9b8e-4f444b489176","hardwareName":"SubInterface0/2.3","macAddress":"EDB8.12E9.D2DB","monitorInterface":false,"standbyMacAddress":"5667.5103.F034","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"2647:2aea:3fdf:b4cc:6433:554a:6ab5:c594/32","ipAddress":"04f0:7320:ae63:ce9f:664b:c7e3:8867:daa9/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"3d77:5e5d:78ec:d370:2293:4026:1bbb:aee3","ipAddress":"e6eb:6fef:da47:e1c1:1523:464b:1cab:92a1"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"96.88.118.226","standbyIpAddress":"17.135.120.105"}},"version":"82ce2f08-42bf-5b19-bbbb-0c4ef276caa0","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}},{"id":"7fa724f3-b64c-585b-9176-69aed2b36237","name":"SecurityZone1Name","description":"Do pefa ritapo ovauciku vogomougi utino gudo momna sagocbiw bowce awu muzabwoz zetpec kit fe.","version":"9d1d113e-86e0-5106-9f6c-29cc8e8fc7fb","interfaces":[{"mtu":5818,"enabled":true,"description":"Wonca cotfo biok ugfejbah ro itedere itoh pijazu ocozojgi buk facheuho zo.","id":"ef57753e-8a0c-5454-a3b3-fbc3c570851d","hardwareName":"GigabitEthernet1/3","macAddress":"34B5.AF3E.B9E9","monitorInterface":true,"standbyMacAddress":"4AF5.3F46.87FE","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"da83:da11:93ff:4f56:084e:f1c1:269c:0dd0/32","ipAddress":"831e:6e6b:281e:8b10:94d0:03f1:b4d5:3373/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"6a3f:c0b2:5d20:fdb6:945d:bcd1:a144:7558","ipAddress":"af4f:d5f4:67bb:3263:e183:fc6c:ea34:f2e6"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"204.8.215.52","standbyIpAddress":"108.106.112.194"}},"version":"46c1bc9f-9a0a-5425-8dc2-3a04dd84c3f1","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}},{"id":"ec43d6a8-fe32-5daa-a8bd-766b57a23892","name":"SecurityZone12Name","description":"Etzasus comdupo lu jeitlov zedoj no lidwa ka beni ujenapse lowon dil ami jir.","version":"3091782d-2bd2-57e7-8447-191d486665aa","interfaces":[{"mtu":5818,"enabled":true,"description":"Setta biwofega af ihi ebele inowo inagiobo nu it fe heivu lijivok.","name":"diagnostic","id":"f7509b61-168c-5d86-9a4c-8d3a2bb23e90","hardwareName":"Management0/0","macAddress":"249A.16A4.5DED","monitorInterface":true,"standbyMacAddress":"06D4.757D.FF06","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0c4e:e907:93c3:ba7a:7842:4899:f454:2a33/32","ipAddress":"41e0:3a60:0ca6:5f1c:cdd5:9c57:4918:682f/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d039:d6f4:278a:cdd3:b9e3:2711:460f:1555","ipAddress":"7e31:6d3f:5bbc:0d7f:4df6:58b9:26a6:d462"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"227.88.54.119","standbyIpAddress":"119.107.19.197"}},"version":"e50dac9e-5493-5760-b5e5-294741f3c409","managementInterface":true,"managementOnly":true,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}},{"id":"0453e827-ea9e-5279-b45d-49df10666f7f","name":"SecurityZone14Name","description":"Kojugbel ram kucdowaf dozabace bagi vizlujva ibeali humupici apefin sig wiwdocduw halsoz.","version":"aaaea33f-d703-5f8e-9fb0-8647d4f28f12","interfaces":[{"mtu":2652,"enabled":true,"description":"Dijiz mavajmak suhihi ja piobba vigsasu pulasa heka lus nuapoap gar weuluvaz faf duke sojpov pamdaba juhoflon ugosum.","name":"subinterface4name","id":"80110552-0168-5ca1-9539-159176e34426","hardwareName":"SubInterface0/4.5","macAddress":"1753.227B.5D9A","monitorInterface":false,"standbyMacAddress":"FF7B.C256.4778","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"1bb9:5d4d:1200:c9eb:97ff:589e:edd4:16e4/32","ipAddress":"eaba:377e:f390:0e98:800f:a6a7:5709:6b52/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"5189:1c32:5064:5495:0ecf:92dd:9175:944a","ipAddress":"479b:2e4a:a86f:13c2:425b:1e14:b1a3:ddfd"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"213.34.152.190","standbyIpAddress":"91.47.228.196"}},"version":"8bcf839f-438a-5cd4-99a7-b6f07ab652a0","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Povlulmi maev usma nizguv ve win coocila colo dunde karib wadu ku huhakla kikel gas.","name":"subinterface13name","id":"edd991bd-6b34-5057-9389-003a56e10179","hardwareName":"SubInterface0/13.14","macAddress":"CC55.5B72.5979","monitorInterface":true,"standbyMacAddress":"9F25.7162.695C","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0d43:9009:33b7:805f:2a41:1ed1:0ea0:3cd6/32","ipAddress":"e093:0b7d:4775:c0dc:8433:a3b6:1071:8974/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"bf79:78d0:19ad:cc70:9f5b:5882:e462:ba1d","ipAddress":"5ffa:92d3:6efd:ef6f:c194:ff49:7d28:7d56"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"237.58.152.175","standbyIpAddress":"233.37.45.228"}},"version":"f9997393-39da-5999-bef9-a0aa1c914d96","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"destinationZones":[{"id":"a3e7f3ef-3d09-5365-9a73-229ded43ba48","name":"SecurityZone15Name","description":"Wofa mukko zugal efamosaj ape vurugepa memepi woutod lu ergifde ceini den pegvuni ja.","version":"e721fda0-83ce-51b6-a003-bedfe42bb5db","interfaces":[{"mtu":2652,"enabled":false,"description":"Bo afri kewbiezu atda okpibmim faelaja jip tu ena oc pek mu piwnehsab puspon nuuja ziwelnak ilwu teew.","name":"subinterface9name","id":"a54e4784-eafc-5bc4-bfa1-985dd51ea923","hardwareName":"SubInterface0/9.10","macAddress":"A82E.76DF.F146","monitorInterface":false,"standbyMacAddress":"11D9.182D.C518","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"4f09:724e:c874:a60e:ff7c:0374:170f:cacf/32","ipAddress":"4313:8aa3:d274:f439:ea48:c8c7:c19b:22e2/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"0484:520a:88d4:9a88:6e95:64c9:65b9:f83b","ipAddress":"4ad5:881b:7ff6:552a:b882:7de7:21fc:972d"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"0.192.1.63","standbyIpAddress":"195.235.84.107"}},"version":"877f9f31-9402-5eaa-b18c-9333e068e73e","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}},{"id":"043ca75c-25c8-5d2f-9912-f174e3756077","name":"SecurityZone8Name","description":"Fo zihroc befjijwe vafel golwekjow hukohdi bo gitjap titsuabe cav fif mufdec unibit mubu idabehob ruthesusa.","version":"9f2207f2-63f0-5423-aa5c-6b7dc7d41cf3","interfaces":[{"mtu":2652,"enabled":true,"description":"Ta ikoure oznog tu hodul bizzo jimiite men cucif bewtujjof amurulev cuh igu fo siw dupziswul upahig roivipi.","name":"subinterface1name","id":"bdb62102-971e-5472-ab3b-22a7d408dc10","hardwareName":"SubInterface0/1.2","macAddress":"A57C.05DF.7FC0","monitorInterface":false,"standbyMacAddress":"4CE2.828C.AAB1","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"86a0:974f:3bf1:cee2:71c8:e295:2c3e:8d76/32","ipAddress":"9cb8:4589:0220:bd63:4d62:42ac:bd26:e1ac/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"7f67:fa11:adca:bd10:8583:757e:7ebb:be87","ipAddress":"4298:ffb2:30f7:84b6:5106:69aa:343c:8362"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"43.30.66.103","standbyIpAddress":"138.99.49.192"}},"version":"e04406e6-ff09-57ac-9b38-fdd8b19cf6fb","managementInterface":true,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":false}},{"id":"0453e827-ea9e-5279-b45d-49df10666f7f","name":"SecurityZone14Name","description":"Kojugbel ram kucdowaf dozabace bagi vizlujva ibeali humupici apefin sig wiwdocduw halsoz.","version":"aaaea33f-d703-5f8e-9fb0-8647d4f28f12","interfaces":[{"mtu":2652,"enabled":true,"description":"Dijiz mavajmak suhihi ja piobba vigsasu pulasa heka lus nuapoap gar weuluvaz faf duke sojpov pamdaba juhoflon ugosum.","name":"subinterface4name","id":"80110552-0168-5ca1-9539-159176e34426","hardwareName":"SubInterface0/4.5","macAddress":"1753.227B.5D9A","monitorInterface":false,"standbyMacAddress":"FF7B.C256.4778","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"1bb9:5d4d:1200:c9eb:97ff:589e:edd4:16e4/32","ipAddress":"eaba:377e:f390:0e98:800f:a6a7:5709:6b52/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"5189:1c32:5064:5495:0ecf:92dd:9175:944a","ipAddress":"479b:2e4a:a86f:13c2:425b:1e14:b1a3:ddfd"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"213.34.152.190","standbyIpAddress":"91.47.228.196"}},"version":"8bcf839f-438a-5cd4-99a7-b6f07ab652a0","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Povlulmi maev usma nizguv ve win coocila colo dunde karib wadu ku huhakla kikel gas.","name":"subinterface13name","id":"edd991bd-6b34-5057-9389-003a56e10179","hardwareName":"SubInterface0/13.14","macAddress":"CC55.5B72.5979","monitorInterface":true,"standbyMacAddress":"9F25.7162.695C","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0d43:9009:33b7:805f:2a41:1ed1:0ea0:3cd6/32","ipAddress":"e093:0b7d:4775:c0dc:8433:a3b6:1071:8974/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"bf79:78d0:19ad:cc70:9f5b:5882:e462:ba1d","ipAddress":"5ffa:92d3:6efd:ef6f:c194:ff49:7d28:7d56"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"237.58.152.175","standbyIpAddress":"233.37.45.228"}},"version":"f9997393-39da-5999-bef9-a0aa1c914d96","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}],"destinationNetworks":[{"id":"c1e8dd5a-a13d-5bcd-8db1-d7895b9a9f3a","name":"Network7","description":"Ehe jeep mijwamad kohi ifegujzek tednadcat dewian tuzdum ripi wondoh woh cugi masal.","version":"dc274636-d6d4-590e-b68f-5cc0d313f41b","type":"networkobject","subType":"NETWORK","value":"71.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":false}}],"sourceNetworks":[{"id":"73ee665b-fbee-563d-92d0-c41d4e5fb7f2","name":"Network2","description":"Wavfu uk unlofu daefi ow fi te zebnah abaco so lodtiw kijeh upzesin kew zo eg.","version":"d5877fad-91a9-5848-95bd-509fc9538ec7","type":"networkobject","subType":"NETWORK","value":"166.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":false}},{"id":"929d7320-9aa2-52c7-b853-76aae05eef6b","name":"Network8","description":"Todviad wi vuckivna otkot nevaiz divu caszi fezmirera tumhugej muv bi vedohile.","version":"cf69d58a-8e9c-52c5-af3f-f3d5f88cd456","type":"networkobject","subType":"HOST","value":"6804:d23a:5056:cdbd:dc9f:9d53:1cf7:f368","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"25837b53-40d7-599f-9a1e-0a5391f2662e","name":"Network1","description":"Ser ahpi penul nuszil ojsuvo zavlatha junez afuhi soewuteh ha larhoose lijuto ruhi za murmurgu eznehfa nejag piv.","version":"0761c298-1c3c-5537-971c-17934322192b","type":"networkobject","subType":"HOST","value":"f92d:3cda:6fb3:7e4b:db95:8984:e616:928e","isSystemDefined":true,"metadata":{"referenced":false}}],"sourcePorts":[{"id":"2a40730e-7878-5969-ba53-1d9278cde125","name":"icmpv4port1","description":"Uva ceti behga hetivasu ajbebu rakepe ame ifa aceuriso kejic fucaoti gigvivvo gishelpob jurevmu ov maclefe.","version":"e62c0f51-027e-5a7f-b725-a96162bb7138","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8508,"isSystemDefined":false},{"id":"5e4d4b4d-706c-5325-b034-896d42bf9087","name":"udp_port_1","description":"Rupkoedo zuv egodid ca buapesug tu mawaduh etaeha pigfa keh it bozute wovi zijuci poscuren ifohhe.","version":"db631abc-32a3-5ca5-8ae5-a3b6f3c8371a","type":"udpportobject","port":8537,"isSystemDefined":true}],"destinationPorts":[{"id":"1a4f8032-f665-5045-b0d8-a48b339750d1","name":"tcp_port_2","description":"Ku soguzsi ragibi nupavidag faji kovor ikikov efa ha cozuju inietu daf hif iso.","version":"b6ff8844-fd46-5e03-9ca4-00b7bc8bd936","type":"tcpportobject","port":8189,"isSystemDefined":false},{"id":"39c5e145-2ed4-5038-ab20-3c4878437d1d","name":"icmpv6port2","description":"Fajla geffe heseipu tez toluhpap ve uhmoba garoeb ozafuzli suhwof aw likofat erige hentejpi jajaza faztiav osece na.","version":"d4492bb3-d9b0-52fc-acc6-81061c83c6b8","type":"icmpv6portobject","icmpv6Code":"","icmpv6Type":"ANY","port":8267,"isSystemDefined":false}]}},"IdentityRuleWrapper":{"allOf":[{"$ref":"#/definitions/IdentityRule"},{"$ref":"#/definitions/LinksWrapper"}]},"IdentityServicesEngine":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"ftdCertificate":{"type":"object","$ref":"#/definitions/ReferenceModel"},"pxGridCertificate":{"type":"object","$ref":"#/definitions/ReferenceModel"},"mntCertificate":{"type":"object","$ref":"#/definitions/ReferenceModel"},"iseNetworkFilters":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"enabled":{"type":"boolean"},"primaryIseServer":{"type":"string"},"secondaryIseServer":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"identityservicesengine"}},"required":["pxGridCertificate","mntCertificate","ftdCertificate","type","enabled"],"example":{"id":"1e8e62b7-c785-5e36-a779-23c2266c3981","version":"066e9682-62e3-5b86-8fbf-997a583ae825","type":"identityservicesengine","name":"ISEConfiguration","enabled":false,"description":"Hok uhasep nosi legnujif fe garom tedeucu pavzin sadora widbigfuv hobujisa zeebudor kicicba iki.","primaryIseServer":"237.153.85.12","ftdCertificate":{"id":"e2e70110-d3d1-519b-93a6-16511d6b215a","name":"InternalCertificate12","cert":"-----BEGIN CERTIFICATE-----\nMIIDEjCCAnugAwIBAgIJAJ69cfUJsifzMA0GCSqGSIb3DQEBBQUAMIGCMQswCQYD\nVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxDjAMBgNVBAoMBUNpc2NvMQwwCgYDVQQL\nDANBREkxIjAgBgNVBAMMGUFESSBUZWFtIFRlc3RpbmcgYXQgQ2lzY28xITAfBgkq\nhkiG9w0BCQEWEnRjaHJpc3RtQGNpc2NvLmNvbTAeFw0xNTA0MDYxNDQ0NTJaFw0x\nNjA0MDUxNDQ0NTJaMIGVMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxDzAN\nBgNVBAcMBkF1c3RpbjEVMBMGA1UECgwMQURJIGF0IENpc2NvMQwwCgYDVQQLDANB\nREkxHTAbBgNVBAMMFEFESSBUZXN0aW5nIEF0IENpc2NvMSEwHwYJKoZIhvcNAQkB\nFhJ0Y2hyaXN0bUBjaXNjby5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB\nAKk6jiG3XImaQNnVe1zeRbchMVbpBxdDYIRt0Eqvl2HqfAZJDKSw+s080iMC5Dmg\nTvOaZYaf4rc92z/WpMTgiOxmwKLhaw1INzBptxc4JoQPNFG4qUSVIHW9mnoXwluo\naXypJKAgeLukuO5tdUj9Iy4IHabMmJxcQsZ1vJ65cIH5AgMBAAGjezB5MAkGA1Ud\nEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmlj\nYXRlMB0GA1UdDgQWBBROqbPMUm6cUg+E/ficJa8WkdhcwzAfBgNVHSMEGDAWgBRD\nXj/hqU0NPpTv1+Z6O7LQixcgxTANBgkqhkiG9w0BAQUFAAOBgQBaoTmcEb14AIcd\nq6R34phLlDP1JRV54NQ5gTXK858dyRE41CHensHSwXlHUg2JJ/LuUhK7h+ST1Qhy\nkFCHNQHh9ojRK34ydIIltGaGGCIZDEgUqhc7IeZ/PSR5252vQaAwDWDxapA2ZsVo\nr9OY0Q7uuCLvNNiQQzvjlnQZ94Rp4A==\n-----END CERTIFICATE-----\n","privateKey":"-----BEGIN PRIVATE KEY-----MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCqsrdtuAzs/APtjiJefyhxCnheLOFOP8BfvtcdfFNFVj3RP5n30AYGmTT31dTLPeA4dYHgthUImKkxcWIOuJqHlLrEo3fmfEbhy8KehfQ0Pfy+4K/QTB7NU28/K9Hr0Mwz6bUuboby/BvIi1u/ZIzl5KlmJBz/cQMPonD2hte2fwvkqCfhpNl25tMzEpyqCAa4tciUqSXf0Zs63XtcVPBpuGN6vU0QllqxLbzsQ7ShwymBiLnUqX95tWkJCrRIfklEwlbTXyRM5NSjk6EdZeDfX5OHexV4AodbtGZSeQYU7s2vs50khtIWVGr+14dPguWf9ggMCRoX+B9RogfV03IVAgMBAAECggEAfwLTsXQNShiK46uqrx12fgYIYiqKyqps/dEGRw5G94SgIp5sdhP3J9m/q9kTqNa1i80Dgqx5IhhVbFCtYb7CXLex8LahdIJsS35NpZ6OgoDNG0ocB6VcFfNLB3oXjJukFcyD37Sl/Q7RrXrkHZk3radi1Hlyii8Q1AVOgGD9CPBwRaBrjAuJXunJRSnzJ1MuV29PoNSOcQ0o+q26JkZaTcFHt/iVdeBiKFEyfwd6oWTkpRQiUD+Xi/P9XkYud1nou64dvw6XIDpsV7uX07OASHk1fuQjDJLwyO4KlcWBzNb6Z1sE6l1EqHcZKqijcYISElzPGTEVlDkXAT5YxiIjAQKBgQDVYP/8obthBaUBFVkPaZNUzLsjyv9ONOWVHIzw9YVOmC7v2WdrnDgoBkNaV4SdCOYsJW+887nA6zK2208DlRea1fAcZWgItRqvJi9wiqtZAS1BCC+tTliYS3x/wqmFyFRqLK4dIqpbZ52+vEoEMgrDJmzG7k7aXjAm9+JH+MqfBQKBgQDMy0KcdA68h5VlbifLnMbQUJO7Zy081Tdbpgnf02/PaC/HHbYnbn/hWv8TTuoBcEDkh0nl3JRmPKMyF+Aeqj5Xd6A4znRQXq9ZPcOyKYw08VGkf4m41mm2Iq7HcSwhZFlWZWfA3cCU+Z5eTVY7RBQjoJ8Qk6LyRjAmlA5xiMVT0QKBgGVDeXjtUD3FLf+LoA5+bhsqZg2ggvUciW/wcrrP6gnYkz3kkP4yzzu/bStsqVTVKlb9FUA48oiplhHNlnv+v4sNyLvRLEQlnppMpurkBFljA5T/S5EVw1nTSSxgt47z+YvB1IejMfHbBLPGK+I91XmzvJ/T7LwZQwTbUxoQ6if5AoGBAMuoErzteT4pAvuUWQTWCqxchR1nVIhbbKq6arVoWZeDf4fe1ydNbuSXjnQQFQuLKy1YELgC7JzjDlOhhKJaIJbxAqebP/YwwuXXU0ZYpPJ9TPhuUHI833Fd+juiIwWt+l29iDk3DO3ZcpFLDUbww6pOcACXIQMXo4ip0dc78SgRAoGAEb7FK7hqFmBk24Pu5vzKE/BYYD1mY17+zmeFocn2vu89jLYvRGYrvuGn9TgD3zeXjNsAqbMW8Td5F3xnMJ3JHhnAQHd1Wh5VROsXfhtT/Uhl4eCGEkKqM+EEBD6Z3UsZbNFRGEl1xThzdwchLt0WNTD9kuoxWkjV3hjPBnkJlvk=-----END PRIVATE KEY-----","issuerCommonName":"FTD OnBox Team Testing at Cisco","issuerOrganizationUnit":"FTD","subjectCommonName":"FTD Testing At Cisco","subjectOrganization":"FTD at Cisco","subjectOrganizationUnit":"FTD","validityStartDate":"Apr 6 14:44:52 2015 GMT","validityEndDate":"Feb 16 14:44:52 2017 GMT","type":"internalcertificate","version":"d80d5a90-c32a-524d-abd8-3354240e08eb"},"mntCertificate":{"id":"e286e2a0-8493-5655-98e2-1a142692b321","name":"TrustedCACertificate10","cert":"-----BEGIN CERTIFICATE-----MIIC9zCCAmCgAwIBAgIJAJ69cfUJsifyMA0GCSqGSIb3DQEBBQUAMIGCMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxDjAMBgNVBAoMBUNpc2NvMQwwCgYDVQQLDANBREkxIjAgBgNVBAMMGUFESSBUZWFtIFRlc3RpbmcgYXQgQ2lzY28xITAfBgkqhkiG9w0BCQEWEnRjaHJpc3RtQGNpc2NvLmNvbTAeFw0xNTA0MDYxNDQwMjBaFw0xNjA0MDUxNDQwMjBaMHsxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEPMA0GA1UEBwwGQXVzdGluMQwwCgYDVQQKDANBREkxDDAKBgNVBAsMA0FESTEMMAoGA1UEAwwDQURJMSEwHwYJKoZIhvcNAQkBFhJ0Y2hyaXN0bUBjaXNjby5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKdwrJ9FYCVpnqHITgGGYb7nzlz+IRJc5Bl8FAepbjXpRh+noV04ttLkoIDlGobtqHbCls+Py7HjIaUFb2/T9Cddhf1mHC4jSp9nXVQmERhYoHfpyEVu4ZU7x5qFw+G4f4am3KzI2d6meWqaJZ3/5Z7bI3+zTmVK1SiSh12zarA/AgMBAAGjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBRzoznNy0g/X4VyqF8jJt+p6z44tDAfBgNVHSMEGDAWgBRDXj/hqU0NPpTv1+Z6O7LQixcgxTANBgkqhkiG9w0BAQUFAAOBgQBHm6MADmMOPj7bBCY1lADpcFuSdGjzNgvUyivRDZcMlwFpLlIl+vNJSSMU6i20bq5o+pOMJsSCjOf9NxT3lcWuxtT4Ea226txs5a15TyGRxBV5MJ4/s6gHaDowJSF/TngsURIKcNqFpLTv5FBCqcGR2kdmvBwtl9319seCoZEZYw==-----END CERTIFICATE-----","type":"externalcacertificate","version":"02cc2b9a-66c9-50a9-a0b7-011f20192803","isSystemDefined":false},"pxGridCertificate":{"id":"233694b4-b401-567d-9812-282d03c2410b","name":"TrustedCACertificate13","cert":"-----BEGIN CERTIFICATE-----MIIC9zCCAmCgAwIBAgIJAJ69cfUJsifyMA0GCSqGSIb3DQEBBQUAMIGCMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxDjAMBgNVBAoMBUNpc2NvMQwwCgYDVQQLDANBREkxIjAgBgNVBAMMGUFESSBUZWFtIFRlc3RpbmcgYXQgQ2lzY28xITAfBgkqhkiG9w0BCQEWEnRjaHJpc3RtQGNpc2NvLmNvbTAeFw0xNTA0MDYxNDQwMjBaFw0xNjA0MDUxNDQwMjBaMHsxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEPMA0GA1UEBwwGQXVzdGluMQwwCgYDVQQKDANBREkxDDAKBgNVBAsMA0FESTEMMAoGA1UEAwwDQURJMSEwHwYJKoZIhvcNAQkBFhJ0Y2hyaXN0bUBjaXNjby5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKdwrJ9FYCVpnqHITgGGYb7nzlz+IRJc5Bl8FAepbjXpRh+noV04ttLkoIDlGobtqHbCls+Py7HjIaUFb2/T9Cddhf1mHC4jSp9nXVQmERhYoHfpyEVu4ZU7x5qFw+G4f4am3KzI2d6meWqaJZ3/5Z7bI3+zTmVK1SiSh12zarA/AgMBAAGjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBRzoznNy0g/X4VyqF8jJt+p6z44tDAfBgNVHSMEGDAWgBRDXj/hqU0NPpTv1+Z6O7LQixcgxTANBgkqhkiG9w0BAQUFAAOBgQBHm6MADmMOPj7bBCY1lADpcFuSdGjzNgvUyivRDZcMlwFpLlIl+vNJSSMU6i20bq5o+pOMJsSCjOf9NxT3lcWuxtT4Ea226txs5a15TyGRxBV5MJ4/s6gHaDowJSF/TngsURIKcNqFpLTv5FBCqcGR2kdmvBwtl9319seCoZEZYw==-----END CERTIFICATE-----","type":"externalcacertificate","version":"51bc3df0-df45-50e7-989d-1ea1cf05969e","isSystemDefined":false},"iseNetworkFilters":[{"id":"b483d38e-bce7-5bb7-9769-57ec8151bd4f","name":"Network12","description":"Tikafnaz lujis rirunuf sehi ubfewe kabhili zota funfof zagujnuf mel ejejegto fihjunmu ma funah va.","version":"3132162a-9791-5f26-9146-79add126c19f","type":"networkobject","subType":"NETWORK","value":"23.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"73ee665b-fbee-563d-92d0-c41d4e5fb7f2","name":"Network2","description":"Wavfu uk unlofu daefi ow fi te zebnah abaco so lodtiw kijeh upzesin kew zo eg.","version":"d5877fad-91a9-5848-95bd-509fc9538ec7","type":"networkobject","subType":"NETWORK","value":"166.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":false}},{"id":"0428e735-dfd3-50b7-a366-9c0aec56f1e2","name":"NetworkGroup9","description":"Ri getda vakelfi su eti jub li ipife ihe sep muzpiop neptetje zageh gubdot rev pafciz.","version":"9a163c17-b5eb-591f-9f03-55a5a618c4a5","type":"networkobjectgroup","objects":[{"id":"4f342e19-761a-5d53-a7a6-471d1cf8e254","name":"Network9","description":"Ehibivje dac entikod lofimom dueku ozitakni rilgolpuv zezartim zilkeki bu mu ertum pol vuodle bemah fegbat.","version":"779130e6-7166-5b4e-91f2-d2d92dd952ec","type":"networkobject","subType":"NETWORK","value":"129.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"c1e8dd5a-a13d-5bcd-8db1-d7895b9a9f3a","name":"Network7","description":"Ehe jeep mijwamad kohi ifegujzek tednadcat dewian tuzdum ripi wondoh woh cugi masal.","version":"dc274636-d6d4-590e-b68f-5cc0d313f41b","type":"networkobject","subType":"NETWORK","value":"71.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":false}}],"links":{"self":"http://url/api/fdm/v2/networkobject/12345"},"metadata":{"referenced":true}},{"id":"e3f691d3-ee2f-5686-b7fe-3f8b96d48051","name":"NetworkGroup4","description":"Um cifsuzoze kage wi ovucus cecupev okpek mevde wamkad tompe ce eceujuwe.","version":"3214ecc9-e9df-57f3-88fb-5d0d0de6252b","type":"networkobjectgroup","objects":[{"id":"25837b53-40d7-599f-9a1e-0a5391f2662e","name":"Network1","description":"Ser ahpi penul nuszil ojsuvo zavlatha junez afuhi soewuteh ha larhoose lijuto ruhi za murmurgu eznehfa nejag piv.","version":"0761c298-1c3c-5537-971c-17934322192b","type":"networkobject","subType":"HOST","value":"f92d:3cda:6fb3:7e4b:db95:8984:e616:928e","isSystemDefined":true,"metadata":{"referenced":false}}],"links":{"self":"http://url/api/fdm/v2/networkobject/12345"},"metadata":{"referenced":false}},{"id":"e089eb9c-d831-57ae-abb8-6ceae46aad34","name":"NetworkGroup1","description":"Ne ipsu ned zej ehi gijwoog mis zire niguow iruugo eti siv faji ti vuwu eztam.","version":"25a8937b-b720-52e3-ac63-1e82bd366626","type":"networkobjectgroup","objects":[{"id":"0f1e5697-c424-59ac-87dd-bc36e3c08465","name":"Network10","description":"Gowvis opopijab joswirud jezow feud ikibik ruronub oh zoteso ilohhu wif wezagina mi dov riluj luffepcep safes zeksim.","version":"59a184bf-98ff-5f9a-a5c3-67542f91153d","type":"networkobject","subType":"NETWORK","value":"146.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"929d7320-9aa2-52c7-b853-76aae05eef6b","name":"Network8","description":"Todviad wi vuckivna otkot nevaiz divu caszi fezmirera tumhugej muv bi vedohile.","version":"cf69d58a-8e9c-52c5-af3f-f3d5f88cd456","type":"networkobject","subType":"HOST","value":"6804:d23a:5056:cdbd:dc9f:9d53:1cf7:f368","isSystemDefined":false,"metadata":{"referenced":true}}],"links":{"self":"http://url/api/fdm/v2/networkobject/12345"},"metadata":{"referenced":false}},{"id":"42b7297e-7b3c-518d-9bd4-35339861e6c2","name":"NetworkGroup2","description":"Vironfuk veh veffib wep dozebuf ripov gocep kagujoc zetwoc lertut woco bigir.","version":"67c2c87e-382d-5afa-994b-81bfffb4360c","type":"networkobjectgroup","objects":[{"id":"6f55bc7e-79ee-5271-b299-5eb7db9ece0e","name":"Network14","description":"Naduk tuto zatuli pedufu dowkol gapcetod ehukevnem oszi numudol ubibi pufhubfu ripsitfu.","version":"3ab046cd-f4be-55d8-af7a-7a84bc3f7716","type":"networkobject","subType":"HOST","value":"111.31.129.11","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"4f342e19-761a-5d53-a7a6-471d1cf8e254","name":"Network9","description":"Ehibivje dac entikod lofimom dueku ozitakni rilgolpuv zezartim zilkeki bu mu ertum pol vuodle bemah fegbat.","version":"779130e6-7166-5b4e-91f2-d2d92dd952ec","type":"networkobject","subType":"NETWORK","value":"129.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":true}}],"links":{"self":"http://url/api/fdm/v2/networkobject/12345"},"metadata":{"referenced":true}},{"id":"02664484-5003-525b-ac5b-c87831f4d7c6","name":"NetworkGroup8","description":"Pazez pottetuk heuvbes jizaro ro ufkozda de lakdesbuz hilacu pogu iwadilhaw fasooc ople vofso zo.","version":"65f2079a-c923-598c-a9ef-3377be3d7cf1","type":"networkobjectgroup","objects":[{"id":"de4c912d-0f32-5730-92dd-e6ef7f12a099","name":"Network11","description":"Gisi kalej ih zum midogi gar vezsu reweh od sufmukce siici ki hepvevote ubu feva fabikdol.","version":"dc1b33e1-bb99-5727-85e6-6f30f624ffa2","type":"networkobject","subType":"HOST","value":"42.38.187.218","isSystemDefined":true,"metadata":{"referenced":true}}],"links":{"self":"http://url/api/fdm/v2/networkobject/12345"},"metadata":{"referenced":true}},{"id":"398fb71a-70a8-5ca9-a539-52c3a8dd92f8","name":"NetworkGroup5","description":"Fazahad limutduw foon pacaja usmu ace bidiur nuavu zehbubjaf mana ra ecu nuhsetke voc jakat gozu gezaz love.","version":"87a49ed6-a0fe-586b-bbc7-22dbfe8751fd","type":"networkobjectgroup","objects":[{"id":"884f239a-2976-5e8e-9cb5-5aeb31fc1554","name":"Network15","description":"Rad ladfevhez vucvibbu omeheh hi rulsusva nut diw sikeznag ehazelu witam tocrah irca wavegezi na nidmimle.","version":"7c7865f0-2dcd-5833-a31b-7fe684b3c2ff","type":"networkobject","subType":"HOST","value":"80.87.24.187","isSystemDefined":false,"metadata":{"referenced":false}},{"id":"4e22d897-4214-5a59-adc0-a40ee1363e10","name":"Network5","description":"Kug viuheci tiwihu iberaw rolo januke huwefi jik labam lurepi be nioc ikime.","version":"880073f6-ecc1-5e1e-a50e-625fb47bbcf9","type":"networkobject","subType":"HOST","value":"51ef:0dda:2b5c:2260:6fc7:e9c3:7507:80fe","isSystemDefined":false,"metadata":{"referenced":true}}],"links":{"self":"http://url/api/fdm/v2/networkobject/12345"},"metadata":{"referenced":false}},{"id":"3183e6c5-f5b9-5c16-821f-4063baeaf825","name":"NetworkGroup7","description":"Cushi cotid iw zajizicim hi weaslu memwef vowasabul ciadpag bunowo ahemiofi hegvu tefod wosojelih.","version":"7503ba94-945d-5657-9454-67825ebd89ad","type":"networkobjectgroup","objects":[{"id":"25837b53-40d7-599f-9a1e-0a5391f2662e","name":"Network1","description":"Ser ahpi penul nuszil ojsuvo zavlatha junez afuhi soewuteh ha larhoose lijuto ruhi za murmurgu eznehfa nejag piv.","version":"0761c298-1c3c-5537-971c-17934322192b","type":"networkobject","subType":"HOST","value":"f92d:3cda:6fb3:7e4b:db95:8984:e616:928e","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"4f342e19-761a-5d53-a7a6-471d1cf8e254","name":"Network9","description":"Ehibivje dac entikod lofimom dueku ozitakni rilgolpuv zezartim zilkeki bu mu ertum pol vuodle bemah fegbat.","version":"779130e6-7166-5b4e-91f2-d2d92dd952ec","type":"networkobject","subType":"NETWORK","value":"129.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":true}}],"links":{"self":"http://url/api/fdm/v2/networkobject/12345"},"metadata":{"referenced":false}},{"id":"ddd54776-03f7-5a08-8a6b-a877fdcadfcd","name":"NetworkGroup3","description":"Mivelos ga co jibken bim cu mub atmo peale ukvu tozuti muwuw musotlo hi du pijahlur zog.","version":"ae91a419-f50d-5045-b27f-83fba29e2d17","type":"networkobjectgroup","objects":[{"id":"de4c912d-0f32-5730-92dd-e6ef7f12a099","name":"Network11","description":"Gisi kalej ih zum midogi gar vezsu reweh od sufmukce siici ki hepvevote ubu feva fabikdol.","version":"dc1b33e1-bb99-5727-85e6-6f30f624ffa2","type":"networkobject","subType":"HOST","value":"42.38.187.218","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"25837b53-40d7-599f-9a1e-0a5391f2662e","name":"Network1","description":"Ser ahpi penul nuszil ojsuvo zavlatha junez afuhi soewuteh ha larhoose lijuto ruhi za murmurgu eznehfa nejag piv.","version":"0761c298-1c3c-5537-971c-17934322192b","type":"networkobject","subType":"HOST","value":"f92d:3cda:6fb3:7e4b:db95:8984:e616:928e","isSystemDefined":true,"metadata":{"referenced":false}}],"links":{"self":"http://url/api/fdm/v2/networkobject/12345"},"metadata":{"referenced":false}},{"id":"81e99f9a-e532-5ffe-91f1-89737f0f1f5a","name":"NetworkGroup6","description":"Tatvap no moufuje hu ikobizwa zufukozeh beodumah reka ze mu mewiptuf aste genfoodi gaajdu.","version":"1a381de3-9a0c-58f9-8a89-0ea218312f43","type":"networkobjectgroup","objects":[{"id":"6f55bc7e-79ee-5271-b299-5eb7db9ece0e","name":"Network14","description":"Naduk tuto zatuli pedufu dowkol gapcetod ehukevnem oszi numudol ubibi pufhubfu ripsitfu.","version":"3ab046cd-f4be-55d8-af7a-7a84bc3f7716","type":"networkobject","subType":"HOST","value":"111.31.129.11","isSystemDefined":true,"metadata":{"referenced":true}}],"links":{"self":"http://url/api/fdm/v2/networkobject/12345"},"metadata":{"referenced":false}},{"id":"3e4b9655-4b29-5cc1-910f-6d3b05a020e9","name":"NetworkGroup10","description":"Ruah lu lec dotazes guopira cinabudu osnec acoani ne fuf vuw wa bibazusu bo etjo.","version":"cc348b4d-965d-58a0-97d2-5491b6941d98","type":"networkobjectgroup","objects":[{"id":"c1e8dd5a-a13d-5bcd-8db1-d7895b9a9f3a","name":"Network7","description":"Ehe jeep mijwamad kohi ifegujzek tednadcat dewian tuzdum ripi wondoh woh cugi masal.","version":"dc274636-d6d4-590e-b68f-5cc0d313f41b","type":"networkobject","subType":"NETWORK","value":"71.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":false}}],"links":{"self":"http://url/api/fdm/v2/networkobject/12345"},"metadata":{"referenced":false}}],"links":{"self":"http://url/api/fdm/v2/integration/identityservicesengine/480716e4-6d31-533a-bcc2-fecd53740a09"}}},"IdentityServicesEngineWrapper":{"allOf":[{"$ref":"#/definitions/IdentityServicesEngine"},{"$ref":"#/definitions/LinksWrapper"}]},"IdentitySourceBase":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"identitysourcebase"}},"required":["type"]},"IdentitySourceCapabilities":{"type":"string","enum":["AUTHENTICATION","AUTHORIZATION","ACCOUNTING","DIRECTORY_SERVICES","PASSIVE_IDENTITY"]},"InterfaceDuplexType":{"type":"string","enum":["AUTO","HALF","FULL","IGNORE"]},"InterfaceIPv4":{"type":"object","properties":{"ipType":{"type":"object","$ref":"#/definitions/IPv4Type"},"defaultRouteUsingDHCP":{"type":"boolean"},"dhcpRouteMetric":{"type":"integer"},"ipAddress":{"type":"object","$ref":"#/definitions/HAIPv4Address"},"addressNull":{"type":"boolean"},"dhcp":{"type":"boolean"},"type":{"type":"string","default":"interfaceipv4"}},"required":["type"]},"InterfaceIPv6":{"type":"object","properties":{"enabled":{"type":"boolean"},"autoConfig":{"type":"boolean"},"dhcpForManagedConfig":{"type":"boolean"},"dhcpForOtherConfig":{"type":"boolean"},"enableRA":{"type":"boolean"},"dadAttempts":{"type":"integer"},"linkLocalAddress":{"type":"object","$ref":"#/definitions/IPv6Address"},"ipAddresses":{"type":"array","items":{"type":"object","$ref":"#/definitions/HAIPv6Address"}},"prefixes":{"type":"array","items":{"type":"object","$ref":"#/definitions/IPv6Prefix"}},"type":{"type":"string","default":"interfaceipv6"}},"required":["type"]},"InterfaceInfo":{"type":"object","properties":{"interfaceInfoList":{"type":"array","items":{"type":"object","$ref":"#/definitions/InterfaceInfoEntry"}},"id":{"type":"string"},"type":{"type":"string","default":"InterfaceInfo"}},"required":["type"]},"InterfaceInfoWrapper":{"allOf":[{"$ref":"#/definitions/InterfaceInfo"},{"$ref":"#/definitions/LinksWrapper"}]},"InterfaceInfoEntry":{"type":"object","properties":{"interfaceId":{"type":"string"},"hardwareName":{"type":"string"},"speedCapability":{"type":"array","items":{"type":"object","$ref":"#/definitions/InterfaceSpeedType"}},"duplexCapability":{"type":"array","items":{"type":"object","$ref":"#/definitions/InterfaceDuplexType"}},"interfacePresent":{"type":"boolean"},"id":{"type":"string"},"type":{"type":"string","default":"InterfaceInfoEntry"}},"required":["type"]},"InterfaceModeType":{"type":"string","enum":["PASSIVE","ROUTED"]},"InterfaceSpeedType":{"type":"string","enum":["AUTO","TEN","HUNDRED","THOUSAND","TEN_THOUSAND","NO_NEGOTIATE","IGNORE"]},"InternalCACertificate":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"cert":{"type":"string","default":"*********"},"privateKey":{"type":"string","default":"*********"},"passPhrase":{"type":"string"},"issuerCommonName":{"type":"string"},"issuerCountry":{"type":"string"},"issuerLocality":{"type":"string"},"issuerOrganization":{"type":"string"},"issuerOrganizationUnit":{"type":"string"},"issuerState":{"type":"string"},"subjectCommonName":{"type":"string"},"subjectCountry":{"type":"string"},"subjectDistinguishedName":{"type":"string"},"subjectLocality":{"type":"string"},"subjectOrganization":{"type":"string"},"subjectOrganizationUnit":{"type":"string"},"subjectState":{"type":"string"},"validityStartDate":{"type":"string"},"validityEndDate":{"type":"string"},"isSystemDefined":{"type":"boolean"},"certType":{"type":"object","$ref":"#/definitions/InternalCertificateType"},"id":{"type":"string"},"type":{"type":"string","default":"internalcacertificate"}},"required":["type"],"example":{"id":"4d266d16-14e6-58c4-940a-2246efd34363","name":"Internal CA1","cert":"-----BEGIN CERTIFICATE-----\nMIIDEjCCAnugAwIBAgIJAJ69cfUJsifzMA0GCSqGSIb3DQEBBQUAMIGCMQswCQYD\nVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxDjAMBgNVBAoMBUNpc2NvMQwwCgYDVQQL\nDANBREkxIjAgBgNVBAMMGUFESSBUZWFtIFRlc3RpbmcgYXQgQ2lzY28xITAfBgkq\nhkiG9w0BCQEWEnRjaHJpc3RtQGNpc2NvLmNvbTAeFw0xNTA0MDYxNDQ0NTJaFw0x\nNjA0MDUxNDQ0NTJaMIGVMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxDzAN\nBgNVBAcMBkF1c3RpbjEVMBMGA1UECgwMQURJIGF0IENpc2NvMQwwCgYDVQQLDANB\nREkxHTAbBgNVBAMMFEFESSBUZXN0aW5nIEF0IENpc2NvMSEwHwYJKoZIhvcNAQkB\nFhJ0Y2hyaXN0bUBjaXNjby5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB\nAKk6jiG3XImaQNnVe1zeRbchMVbpBxdDYIRt0Eqvl2HqfAZJDKSw+s080iMC5Dmg\nTvOaZYaf4rc92z/WpMTgiOxmwKLhaw1INzBptxc4JoQPNFG4qUSVIHW9mnoXwluo\naXypJKAgeLukuO5tdUj9Iy4IHabMmJxcQsZ1vJ65cIH5AgMBAAGjezB5MAkGA1Ud\nEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmlj\nYXRlMB0GA1UdDgQWBBROqbPMUm6cUg+E/ficJa8WkdhcwzAfBgNVHSMEGDAWgBRD\nXj/hqU0NPpTv1+Z6O7LQixcgxTANBgkqhkiG9w0BAQUFAAOBgQBaoTmcEb14AIcd\nq6R34phLlDP1JRV54NQ5gTXK858dyRE41CHensHSwXlHUg2JJ/LuUhK7h+ST1Qhy\nkFCHNQHh9ojRK34ydIIltGaGGCIZDEgUqhc7IeZ/PSR5252vQaAwDWDxapA2ZsVo\nr9OY0Q7uuCLvNNiQQzvjlnQZ94Rp4A==\n-----END CERTIFICATE-----\n","privateKey":"-----BEGIN PRIVATE KEY-----MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCqsrdtuAzs/APtjiJefyhxCnheLOFOP8BfvtcdfFNFVj3RP5n30AYGmTT31dTLPeA4dYHgthUImKkxcWIOuJqHlLrEo3fmfEbhy8KehfQ0Pfy+4K/QTB7NU28/K9Hr0Mwz6bUuboby/BvIi1u/ZIzl5KlmJBz/cQMPonD2hte2fwvkqCfhpNl25tMzEpyqCAa4tciUqSXf0Zs63XtcVPBpuGN6vU0QllqxLbzsQ7ShwymBiLnUqX95tWkJCrRIfklEwlbTXyRM5NSjk6EdZeDfX5OHexV4AodbtGZSeQYU7s2vs50khtIWVGr+14dPguWf9ggMCRoX+B9RogfV03IVAgMBAAECggEAfwLTsXQNShiK46uqrx12fgYIYiqKyqps/dEGRw5G94SgIp5sdhP3J9m/q9kTqNa1i80Dgqx5IhhVbFCtYb7CXLex8LahdIJsS35NpZ6OgoDNG0ocB6VcFfNLB3oXjJukFcyD37Sl/Q7RrXrkHZk3radi1Hlyii8Q1AVOgGD9CPBwRaBrjAuJXunJRSnzJ1MuV29PoNSOcQ0o+q26JkZaTcFHt/iVdeBiKFEyfwd6oWTkpRQiUD+Xi/P9XkYud1nou64dvw6XIDpsV7uX07OASHk1fuQjDJLwyO4KlcWBzNb6Z1sE6l1EqHcZKqijcYISElzPGTEVlDkXAT5YxiIjAQKBgQDVYP/8obthBaUBFVkPaZNUzLsjyv9ONOWVHIzw9YVOmC7v2WdrnDgoBkNaV4SdCOYsJW+887nA6zK2208DlRea1fAcZWgItRqvJi9wiqtZAS1BCC+tTliYS3x/wqmFyFRqLK4dIqpbZ52+vEoEMgrDJmzG7k7aXjAm9+JH+MqfBQKBgQDMy0KcdA68h5VlbifLnMbQUJO7Zy081Tdbpgnf02/PaC/HHbYnbn/hWv8TTuoBcEDkh0nl3JRmPKMyF+Aeqj5Xd6A4znRQXq9ZPcOyKYw08VGkf4m41mm2Iq7HcSwhZFlWZWfA3cCU+Z5eTVY7RBQjoJ8Qk6LyRjAmlA5xiMVT0QKBgGVDeXjtUD3FLf+LoA5+bhsqZg2ggvUciW/wcrrP6gnYkz3kkP4yzzu/bStsqVTVKlb9FUA48oiplhHNlnv+v4sNyLvRLEQlnppMpurkBFljA5T/S5EVw1nTSSxgt47z+YvB1IejMfHbBLPGK+I91XmzvJ/T7LwZQwTbUxoQ6if5AoGBAMuoErzteT4pAvuUWQTWCqxchR1nVIhbbKq6arVoWZeDf4fe1ydNbuSXjnQQFQuLKy1YELgC7JzjDlOhhKJaIJbxAqebP/YwwuXXU0ZYpPJ9TPhuUHI833Fd+juiIwWt+l29iDk3DO3ZcpFLDUbww6pOcACXIQMXo4ip0dc78SgRAoGAEb7FK7hqFmBk24Pu5vzKE/BYYD1mY17+zmeFocn2vu89jLYvRGYrvuGn9TgD3zeXjNsAqbMW8Td5F3xnMJ3JHhnAQHd1Wh5VROsXfhtT/Uhl4eCGEkKqM+EEBD6Z3UsZbNFRGEl1xThzdwchLt0WNTD9kuoxWkjV3hjPBnkJlvk=-----END PRIVATE KEY-----","issuerCommonName":"FTD OnBox Team Testing at Cisco","issuerOrganizationUnit":"FTD","subjectCommonName":"FTD Testing At Cisco","subjectOrganization":"FTD at Cisco","subjectOrganizationUnit":"FTD","validityStartDate":"Apr 6 14:44:52 2015 GMT","validityEndDate":"Feb 16 14:44:52 2017 GMT","type":"internalcacertificate","version":"6d05cd7f-3d24-55de-85d1-7d5a97f95f58"}},"InternalCACertificateWrapper":{"allOf":[{"$ref":"#/definitions/InternalCACertificate"},{"$ref":"#/definitions/LinksWrapper"}]},"InternalCertificate":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"cert":{"type":"string","default":"*********"},"privateKey":{"type":"string","default":"*********"},"passPhrase":{"type":"string"},"issuerCommonName":{"type":"string"},"issuerCountry":{"type":"string"},"issuerLocality":{"type":"string"},"issuerOrganization":{"type":"string"},"issuerOrganizationUnit":{"type":"string"},"issuerState":{"type":"string"},"subjectCommonName":{"type":"string"},"subjectCountry":{"type":"string"},"subjectDistinguishedName":{"type":"string"},"subjectLocality":{"type":"string"},"subjectOrganization":{"type":"string"},"subjectOrganizationUnit":{"type":"string"},"subjectState":{"type":"string"},"validityStartDate":{"type":"string"},"validityEndDate":{"type":"string"},"isSystemDefined":{"type":"boolean"},"certType":{"type":"object","$ref":"#/definitions/InternalCertificateType"},"id":{"type":"string"},"type":{"type":"string","default":"internalcertificate"}},"required":["type"],"example":{"cert":"-----BEGIN CERTIFICATE-----MIIC9zCCAmCgAwIBAgIJAJ69cfUJsifyMA0GCSqGSIb3DQEBBQUAMIGCMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxDjAMBgNVBAoMBUNpc2NvMQwwCgYDVQQLDANBREkxIjAgBgNVBAMMGUFESSBUZWFtIFRlc3RpbmcgYXQgQ2lzY28xITAfBgkqhkiG9w0BCQEWEnRjaHJpc3RtQGNpc2NvLmNvbTAeFw0xNTA0MDYxNDQwMjBaFw0xNjA0MDUxNDQwMjBaMHsxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEPMA0GA1UEBwwGQXVzdGluMQwwCgYDVQQKDANBREkxDDAKBgNVBAsMA0FESTEMMAoGA1UEAwwDQURJMSEwHwYJKoZIhvcNAQkBFhJ0Y2hyaXN0bUBjaXNjby5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKdwrJ9FYCVpnqHITgGGYb7nzlz+IRJc5Bl8FAepbjXpRh+noV04ttLkoIDlGobtqHbCls+Py7HjIaUFb2/T9Cddhf1mHC4jSp9nXVQmERhYoHfpyEVu4ZU7x5qFw+G4f4am3KzI2d6meWqaJZ3/5Z7bI3+zTmVK1SiSh12zarA/AgMBAAGjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBRzoznNy0g/X4VyqF8jJt+p6z44tDAfBgNVHSMEGDAWgBRDXj/hqU0NPpTv1+Z6O7LQixcgxTANBgkqhkiG9w0BAQUFAAOBgQBHm6MADmMOPj7bBCY1lADpcFuSdGjzNgvUyivRDZcMlwFpLlIl+vNJSSMU6i20bq5o+pOMJsSCjOf9NxT3lcWuxtT4Ea226txs5a15TyGRxBV5MJ4/s6gHaDowJSF/TngsURIKcNqFpLTv5FBCqcGR2kdmvBwtl9319seCoZEZYw==-----END CERTIFICATE-----","key":"-----BEGIN RSA PUBLIC KEY-----MIGJAoGBAKdwrJ9FYCVpnqHITgGGYb7nzlz+IRJc5Bl8FAepbjXpRh+noV04ttLkoIDlGobtqHbCls+Py7HjIaUFb2/T9Cddhf1mHC4jSp9nXVQmERhYoHfpyEVu4ZU7x5qFw+G4f4am3KzI2d6meWqaJZ3/5Z7bI3+zTmVK1SiSh12zarA/AgMBAAE=-----END RSA PUBLIC KEY-----","subjectDistinguishedName":"Vir ralavkuz bec itzu bakga jog zaculu kal otgimob ufesotju wuhe oh runjoeh laksek ob.","subjectCommonName":"Mogwabse lo jeb ulo fod urepir nefuek laanobu ubokiv hopture ma toadisec juki izecop.","subjectOrganization":"Re ve kesmas rezgi repjod ahapi ruc ej weadu ok cefegki tac zokpufas.","subjectCountry":"Fojnupen vamafuf pob ko lek ca rifcap opdugzo lokeb lo rujamobec cik zip ahu zup esuka oze.","type":"internalcertificate","issuerLocality":"Hapfutep wug rovinov laugidi piwbic wuma zugimis mipce enruvza tiwecuelo guvsan ubozo gafeg ikuri defo nu mifadis vo.","subjectState":"Fah ethuv faathu ihpevop cinuw rer eve iba siho sit hivhujda lazmuoki newufcun edova kir.","subjectOrganization_unit":"Bampo ejli mu jutefoni mu olkani asijokhi anisisef urdan awzi sa fej bun juftupet bupaj.","physicalPathToKeyFile":"Evela zatza zifi udgadsic rotarmol hazipdab uggiha sud sihiz pebefmis lefagos weoja.","physicalPathToCertFile":"Te fasi ruhivog ceefo si vadiwjic neceme nuljakbu guiwa vugpib edu nunuud roz bogin ihijadem avu.","validityStartDate":"2016-02-06T11:09:17Z","issuerCommonName":"Zugpih loc baw nu temorte fut rutju corecvor idder iro rudar pez magiz na lovpegnah gujlo hidboh.","issuerCountry":"Samez colcafsos zeb nap arsera daas rowokupa vuufko uka lurijwuj abhil golegzap levtohid us eliju.","name":"Internal_Certificate","subjectLocality":"Be wu med gofocbul dibihvuh taatnej rurjohuc jovga vodvaw paoma sepe titofwa waejiru rumuz ak avuku fam sagowmus.","issuerOrganizationUnit":"Hucheran obi ka heforo cebviw ruckol ekguftop zosbuwca etofici zoj zel akejotid giesuto sib mav acorav hi ezuma.","issuerOrganization":"Bi up gekew kajaptef hulagcof uca uragi wikoiga zac tasbe eljinaf ipigisda acacili buew.","validityEndDate":"2018-06-05T15:10:57Z","issuerState":"Vegzel citovloz ave goanfu tuwni bugema kermaf iheow ipmelaj ki kuajgi tasut."}},"InternalCertificateWrapper":{"allOf":[{"$ref":"#/definitions/InternalCertificate"},{"$ref":"#/definitions/LinksWrapper"}]},"InternalCertificateType":{"type":"string","enum":["UPLOAD","SELFSIGNED"]},"IntrusionRuleInfo":{"type":"object","properties":{"nodeId":{"type":"integer"},"version":{"type":"string"},"name":{"type":"string"},"revision":{"type":"integer"},"preProcessorDependencies":{"type":"array","items":{"type":"string"}},"id":{"type":"string"},"type":{"type":"string","default":"intrusionruleinfo"}},"required":["type"]},"IntrusionRuleMetaData":{"type":"object","properties":{"defaultState":{"type":"object","$ref":"#/definitions/IntrusionRuleState"},"state":{"type":"object","$ref":"#/definitions/IntrusionRuleState"},"enabledDueToDependency":{"type":"boolean"},"preProcessorDependencies":{"type":"array","items":{"type":"string"}}}},"JobHistoryBackup":{"type":"object","properties":{"version":{"type":"string"},"jobName":{"type":"string"},"jobDescription":{"type":"string"},"user":{"type":"string"},"startDateTime":{"type":"string"},"endDateTime":{"type":"string"},"status":{"type":"object","$ref":"#/definitions/JobHistoryEntity$JobHistoryStatus"},"statusMessage":{"type":"string"},"scheduleUuid":{"type":"string"},"archiveName":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"jobhistorybackup"}},"required":["type"]},"JobHistoryBackupWrapper":{"allOf":[{"$ref":"#/definitions/JobHistoryBackup"},{"$ref":"#/definitions/LinksWrapper"}]},"JobHistoryDeployment":{"type":"object","properties":{"version":{"type":"string"},"jobName":{"type":"string"},"jobDescription":{"type":"string"},"user":{"type":"string"},"startDateTime":{"type":"string"},"endDateTime":{"type":"string"},"status":{"type":"object","$ref":"#/definitions/JobHistoryEntity$JobHistoryStatus"},"statusMessage":{"type":"string"},"scheduleUuid":{"type":"string"},"deploymentStatusUuid":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"jobhistorydeployment"}},"required":["type"]},"JobHistoryDeploymentWrapper":{"allOf":[{"$ref":"#/definitions/JobHistoryDeployment"},{"$ref":"#/definitions/LinksWrapper"}]},"JobHistoryDirectoryUserDownload":{"type":"object","properties":{"version":{"type":"string"},"jobName":{"type":"string"},"jobDescription":{"type":"string"},"user":{"type":"string"},"startDateTime":{"type":"string"},"endDateTime":{"type":"string"},"status":{"type":"object","$ref":"#/definitions/JobHistoryEntity$JobHistoryStatus"},"statusMessage":{"type":"string"},"scheduleUuid":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"jobhistorydirectoryuserdownload"}},"required":["type"]},"JobHistoryDirectoryUserImport":{"type":"object","properties":{"version":{"type":"string"},"jobName":{"type":"string"},"jobDescription":{"type":"string"},"user":{"type":"string"},"startDateTime":{"type":"string"},"endDateTime":{"type":"string"},"status":{"type":"object","$ref":"#/definitions/JobHistoryEntity$JobHistoryStatus"},"statusMessage":{"type":"string"},"scheduleUuid":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"jobhistorydirectoryuserimport"}},"required":["type"]},"JobHistoryEntity":{"type":"object","properties":{"version":{"type":"string"},"jobName":{"type":"string"},"jobDescription":{"type":"string"},"user":{"type":"string"},"startDateTime":{"type":"string"},"endDateTime":{"type":"string"},"status":{"type":"object","$ref":"#/definitions/JobHistoryEntity$JobHistoryStatus"},"statusMessage":{"type":"string"},"scheduleUuid":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"jobhistoryentity"}},"required":["type"]},"JobHistoryEntityWrapper":{"allOf":[{"$ref":"#/definitions/JobHistoryEntity"},{"$ref":"#/definitions/LinksWrapper"}]},"JobHistoryEntity$JobHistoryStatus":{"type":"string","enum":["QUEUED","IN_PROGRESS","FAILED","SUCCESS"]},"JobHistoryGeolocation":{"type":"object","properties":{"version":{"type":"string"},"jobName":{"type":"string"},"jobDescription":{"type":"string"},"user":{"type":"string"},"startDateTime":{"type":"string"},"endDateTime":{"type":"string"},"status":{"type":"object","$ref":"#/definitions/JobHistoryEntity$JobHistoryStatus"},"statusMessage":{"type":"string"},"scheduleUuid":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"jobhistorygeolocation"}},"required":["type"]},"JobHistoryGeolocationWrapper":{"allOf":[{"$ref":"#/definitions/JobHistoryGeolocation"},{"$ref":"#/definitions/LinksWrapper"}]},"JobHistoryHaBreakCleanup":{"type":"object","properties":{"version":{"type":"string"},"jobName":{"type":"string"},"jobDescription":{"type":"string"},"user":{"type":"string"},"startDateTime":{"type":"string"},"endDateTime":{"type":"string"},"status":{"type":"object","$ref":"#/definitions/JobHistoryEntity$JobHistoryStatus"},"statusMessage":{"type":"string"},"scheduleUuid":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"jobhistoryhabreakcleanup"}},"required":["type"]},"JobHistoryHaConfigSync":{"type":"object","properties":{"version":{"type":"string"},"jobName":{"type":"string"},"jobDescription":{"type":"string"},"user":{"type":"string"},"startDateTime":{"type":"string"},"endDateTime":{"type":"string"},"status":{"type":"object","$ref":"#/definitions/JobHistoryEntity$JobHistoryStatus"},"statusMessage":{"type":"string"},"scheduleUuid":{"type":"string"},"dataBaseFileName":{"type":"string"},"sruWorkingTgz":{"type":"string"},"transactionId":{"type":"integer"},"restore":{"type":"boolean"},"id":{"type":"string"},"type":{"type":"string","default":"jobhistoryhaconfigsync"}},"required":["type"]},"JobHistoryHaConfigSyncWrapper":{"allOf":[{"$ref":"#/definitions/JobHistoryHaConfigSync"},{"$ref":"#/definitions/LinksWrapper"}]},"JobHistoryRestore":{"type":"object","properties":{"version":{"type":"string"},"jobName":{"type":"string"},"jobDescription":{"type":"string"},"user":{"type":"string"},"startDateTime":{"type":"string"},"endDateTime":{"type":"string"},"status":{"type":"object","$ref":"#/definitions/JobHistoryEntity$JobHistoryStatus"},"statusMessage":{"type":"string"},"scheduleUuid":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"jobhistoryrestore"}},"required":["type"]},"JobHistorySecurityIntelligenceFeedDownload":{"type":"object","properties":{"version":{"type":"string"},"jobName":{"type":"string"},"jobDescription":{"type":"string"},"user":{"type":"string"},"startDateTime":{"type":"string"},"endDateTime":{"type":"string"},"status":{"type":"object","$ref":"#/definitions/JobHistoryEntity$JobHistoryStatus"},"statusMessage":{"type":"string"},"scheduleUuid":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"jobhistorysecurityintelligencefeeddownload"}},"required":["type"]},"JobHistorySruUpdate":{"type":"object","properties":{"version":{"type":"string"},"jobName":{"type":"string"},"jobDescription":{"type":"string"},"user":{"type":"string"},"startDateTime":{"type":"string"},"endDateTime":{"type":"string"},"status":{"type":"object","$ref":"#/definitions/JobHistoryEntity$JobHistoryStatus"},"statusMessage":{"type":"string"},"scheduleUuid":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"jobhistorysruupdate"}},"required":["type"]},"JobHistorySruUpdateWrapper":{"allOf":[{"$ref":"#/definitions/JobHistorySruUpdate"},{"$ref":"#/definitions/LinksWrapper"}]},"JobHistoryUpgrade":{"type":"object","properties":{"version":{"type":"string"},"jobName":{"type":"string"},"jobDescription":{"type":"string"},"user":{"type":"string"},"startDateTime":{"type":"string"},"endDateTime":{"type":"string"},"status":{"type":"object","$ref":"#/definitions/JobHistoryEntity$JobHistoryStatus"},"statusMessage":{"type":"string"},"scheduleUuid":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"jobhistoryupgrade"}},"required":["type"]},"JobHistoryVDBUpdate":{"type":"object","properties":{"version":{"type":"string"},"jobName":{"type":"string"},"jobDescription":{"type":"string"},"user":{"type":"string"},"startDateTime":{"type":"string"},"endDateTime":{"type":"string"},"status":{"type":"object","$ref":"#/definitions/JobHistoryEntity$JobHistoryStatus"},"statusMessage":{"type":"string"},"scheduleUuid":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"jobhistoryvdbupdate"}},"required":["type"]},"JobHistoryVDBUpdateWrapper":{"allOf":[{"$ref":"#/definitions/JobHistoryVDBUpdate"},{"$ref":"#/definitions/LinksWrapper"}]},"JoinHAStatus":{"type":"object","properties":{"statusMessage":{"type":"string"},"cliErrorMessage":{"type":"string"},"state":{"type":"object","$ref":"#/definitions/DeploymentStatus$DeploymentState"},"queuedTime":{"type":"integer"},"startTime":{"type":"integer"},"endTime":{"type":"integer"},"statusMessages":{"type":"array","items":{"type":"string"}},"id":{"type":"string"},"name":{"type":"string"},"modifiedObjects":{"type":"object"}}},"JoinHAStatusWrapper":{"allOf":[{"$ref":"#/definitions/JoinHAStatus"},{"$ref":"#/definitions/LinksWrapper"}]},"LDAPRealm":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"directoryConfigurations":{"type":"array","items":{"type":"object","$ref":"#/definitions/DirectoryConfiguration"}},"enabled":{"type":"boolean"},"systemDefined":{"type":"boolean"},"realmId":{"type":"integer"},"dirUsername":{"type":"string"},"dirPassword":{"type":"string","default":"*********"},"baseDN":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"ldaprealm"}},"required":["dirUsername","dirPassword","baseDN","type"]},"LinkState":{"type":"string","enum":["UP","DOWN"]},"LocalIdentitySource":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"localidentitysource"}},"required":["type"],"example":{"id":"LOCAL","name":"Local Identity Source","description":"Baza mojkufo tuvo giok tohtebji pug umbes iri esi puwud diffoce lehejfe alihutca mevahrin wan gutidi os.","type":"localidentitysource","version":"5e543119-4699-5c97-badf-234294fb67ff"}},"LocalIdentitySourceWrapper":{"allOf":[{"$ref":"#/definitions/LocalIdentitySource"},{"$ref":"#/definitions/LinksWrapper"}]},"ManagementIP":{"type":"object","properties":{"version":{"type":"string"},"ipv4Mode":{"type":"object","$ref":"#/definitions/ManagementIP$ipMode"},"ipv4Address":{"type":"string"},"ipv4NetMask":{"type":"string"},"ipv4Gateway":{"type":"string"},"ipv6Mode":{"type":"object","$ref":"#/definitions/ManagementIP$ipMode"},"ipv6Address":{"type":"string"},"ipv6Prefix":{"type":"integer"},"ipv6Gateway":{"type":"string"},"dhcpServerEnabled":{"type":"boolean"},"dhcpServerAddressPool":{"type":"string"},"linkState":{"type":"object","$ref":"#/definitions/LinkState"},"routeInternally":{"type":"boolean"},"id":{"type":"string"},"type":{"type":"string","default":"managementip"}},"required":["routeInternally","type"],"example":{"id":"caeadb90-7cba-5016-acc2-db1546214118","version":"1b9a604b-3c42-521d-bb18-a7d78b16d24d","ipv4NetMask":"128.0.0.0","ipv4Address":"192.223.23.207","ipv4Gateway":"195.197.123.100","ipv6Prefix":105,"ipv6Address":"79d4:1272:b3ca:b9e9:727c:5978:a9b1:6fa9","ipv6Gateway":"6d18:6c19:c500:2b15:aadb:02c0:870a:f6d3","dhcpServerAddressPool":"192.101.1.1-192.101.1.55","dhcpServerEnabled":true,"ipv4Mode":"DHCP","ipv6Mode":"STATIC","linkState":"UP","type":"managementip","routeInternally":true}},"ManagementIPWrapper":{"allOf":[{"$ref":"#/definitions/ManagementIP"},{"$ref":"#/definitions/LinksWrapper"}]},"ManagementIP$ipMode":{"type":"string","enum":["STATIC","DHCP"]},"ManualNatRule":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"sourceInterface":{"type":"object","$ref":"#/definitions/ReferenceModel"},"destinationInterface":{"type":"object","$ref":"#/definitions/ReferenceModel"},"natType":{"type":"object","$ref":"#/definitions/NatRuleBase$NatType"},"patOptions":{"type":"object","$ref":"#/definitions/PatOptions"},"netToNet":{"type":"boolean"},"noProxyArp":{"type":"boolean"},"dns":{"type":"boolean"},"interfaceIPv6":{"type":"boolean"},"routeLookup":{"type":"boolean"},"enabled":{"type":"boolean"},"interfaceInOriginalDestination":{"type":"boolean"},"interfaceInTranslatedSource":{"type":"boolean"},"originalSource":{"type":"object","$ref":"#/definitions/ReferenceModel"},"originalDestination":{"type":"object","$ref":"#/definitions/ReferenceModel"},"originalSourcePort":{"type":"object","$ref":"#/definitions/ReferenceModel"},"originalDestinationPort":{"type":"object","$ref":"#/definitions/ReferenceModel"},"translatedSource":{"type":"object","$ref":"#/definitions/ReferenceModel"},"translatedDestination":{"type":"object","$ref":"#/definitions/ReferenceModel"},"translatedSourcePort":{"type":"object","$ref":"#/definitions/ReferenceModel"},"translatedDestinationPort":{"type":"object","$ref":"#/definitions/ReferenceModel"},"unidirectional":{"type":"boolean"},"id":{"type":"string"},"type":{"type":"string","default":"manualnatrule"}},"required":["natType","type"]},"ManualNatRuleWrapper":{"allOf":[{"$ref":"#/definitions/ManualNatRule"},{"$ref":"#/definitions/LinksWrapper"}]},"ManualNatRuleContainer":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"afterAuto":{"type":"boolean"},"id":{"type":"string"},"type":{"type":"string","default":"manualnatrulecontainer"}},"required":["type"],"example":{"version":"3234eeae-358f-557a-b37d-c69ba387da13","id":"a47cb8f5-fe55-11e4-8e99-containerN20","type":"manualnatrulecontainer","links":{"self":"http://localhost:4200/api/fdm/v2/policy/manualnatpolicies/a47cb8f5-fe55-11e4-8e99-containerN20"},"name":"ManualNatRuleContainer0","afterAuto":false,"metadata":{}}},"ManualNatRuleContainerWrapper":{"allOf":[{"$ref":"#/definitions/ManualNatRuleContainer"},{"$ref":"#/definitions/LinksWrapper"}]},"ManualNatRuleContainerDeployInfo":{"type":"object","properties":{"version":{"type":"string"},"deployedNodeUuids":{"type":"array","items":{"type":"string"}},"containerUuid":{"type":"string"},"deployed":{"type":"boolean"},"id":{"type":"string"},"type":{"type":"string","default":"manualnatrulecontainerdeployinfo"}},"required":["type"]},"ModelClassDependency":{"type":"object","properties":{"version":{"type":"string"},"sortedModelClassNames":{"type":"array","items":{"type":"string"}},"id":{"type":"string"},"type":{"type":"string","default":"modelclassdependency"}},"required":["type"]},"NTP":{"type":"object","properties":{"version":{"type":"string"},"enabled":{"type":"boolean"},"description":{"type":"string"},"ntpServers":{"type":"array","items":{"type":"string"}},"id":{"type":"string"},"type":{"type":"string","default":"ntp"}},"required":["ntpServers","type"],"example":{"id":"954f490f-7e76-11e5-bfa4-bbacca2d71bc","version":"eb3993d9-897b-11e5-83e1-b30b4587e6d5","enabled":false,"ntpServers":["0.sourcefire.pool.ntp.org","1.sourcefire.pool.ntp.org","2.sourcefire.pool.ntp.org"],"type":"ntp","links":{"self":"http://localhost:4200/api/fdm/v2/ntp/954f490f-7e76-11e5-bfa4-bbacca2d71bc"},"metadata":{}}},"NTPWrapper":{"allOf":[{"$ref":"#/definitions/NTP"},{"$ref":"#/definitions/LinksWrapper"}]},"NTPStatus":{"type":"object","properties":{"status":{"type":"integer"},"id":{"type":"string"},"type":{"type":"string","default":"NTPStatus"}},"required":["type"]},"NTPStatusWrapper":{"allOf":[{"$ref":"#/definitions/NTPStatus"},{"$ref":"#/definitions/LinksWrapper"}]},"NatRuleBase$NatType":{"type":"string","enum":["STATIC","DYNAMIC"]},"NestedEntity":{"type":"object","properties":{"type":{"type":"string","default":"nestedentity"}},"required":["type"]},"NetworkObject":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"subType":{"type":"object","$ref":"#/definitions/NetworkObjectType"},"value":{"type":"string"},"isSystemDefined":{"type":"boolean"},"dnsResolution":{"type":"object","$ref":"#/definitions/FQDNDNSResolution"},"id":{"type":"string"},"type":{"type":"string","default":"networkobject"}},"required":["subType","type","value"],"example":{"id":"73ee665b-fbee-563d-92d0-c41d4e5fb7f2","name":"Network2","description":"Wavfu uk unlofu daefi ow fi te zebnah abaco so lodtiw kijeh upzesin kew zo eg.","version":"d5877fad-91a9-5848-95bd-509fc9538ec7","type":"networkobject","subType":"NETWORK","value":"166.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":false}}},"NetworkObjectWrapper":{"allOf":[{"$ref":"#/definitions/NetworkObject"},{"$ref":"#/definitions/LinksWrapper"}]},"NetworkObjectGroup":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"isSystemDefined":{"type":"boolean"},"id":{"type":"string"},"objects":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"type":{"type":"string","default":"networkobjectgroup"}},"required":["type"],"example":{"id":"42b7297e-7b3c-518d-9bd4-35339861e6c2","name":"NetworkGroup2","description":"Vironfuk veh veffib wep dozebuf ripov gocep kagujoc zetwoc lertut woco bigir.","version":"67c2c87e-382d-5afa-994b-81bfffb4360c","type":"networkobjectgroup","objects":[{"id":"6f55bc7e-79ee-5271-b299-5eb7db9ece0e","name":"Network14","description":"Naduk tuto zatuli pedufu dowkol gapcetod ehukevnem oszi numudol ubibi pufhubfu ripsitfu.","version":"3ab046cd-f4be-55d8-af7a-7a84bc3f7716","type":"networkobject","subType":"HOST","value":"111.31.129.11","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"4f342e19-761a-5d53-a7a6-471d1cf8e254","name":"Network9","description":"Ehibivje dac entikod lofimom dueku ozitakni rilgolpuv zezartim zilkeki bu mu ertum pol vuodle bemah fegbat.","version":"779130e6-7166-5b4e-91f2-d2d92dd952ec","type":"networkobject","subType":"NETWORK","value":"129.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":true}}],"links":{"self":"http://url/api/fdm/v2/networkobject/12345"},"metadata":{"referenced":true}}},"NetworkObjectGroupWrapper":{"allOf":[{"$ref":"#/definitions/NetworkObjectGroup"},{"$ref":"#/definitions/LinksWrapper"}]},"NetworkObjectType":{"type":"string","enum":["HOST","NETWORK","IPRANGE","FQDN"]},"ObjectNatRule":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"sourceInterface":{"type":"object","$ref":"#/definitions/ReferenceModel"},"destinationInterface":{"type":"object","$ref":"#/definitions/ReferenceModel"},"natType":{"type":"object","$ref":"#/definitions/NatRuleBase$NatType"},"patOptions":{"type":"object","$ref":"#/definitions/PatOptions"},"netToNet":{"type":"boolean"},"noProxyArp":{"type":"boolean"},"dns":{"type":"boolean"},"interfaceIPv6":{"type":"boolean"},"routeLookup":{"type":"boolean"},"enabled":{"type":"boolean"},"originalNetwork":{"type":"object","$ref":"#/definitions/ReferenceModel"},"translatedNetwork":{"type":"object","$ref":"#/definitions/ReferenceModel"},"originalPort":{"type":"object","$ref":"#/definitions/ReferenceModel"},"translatedPort":{"type":"object","$ref":"#/definitions/ReferenceModel"},"interfaceInTranslatedNetwork":{"type":"boolean"},"id":{"type":"string"},"type":{"type":"string","default":"objectnatrule"}},"required":["natType","type"],"example":{"id":"e2639aac-b7ec-503e-8560-e5564d2cd472","sourceInterface":{"mtu":5818,"enabled":true,"description":"Setta biwofega af ihi ebele inowo inagiobo nu it fe heivu lijivok.","name":"diagnostic","id":"f7509b61-168c-5d86-9a4c-8d3a2bb23e90","hardwareName":"Management0/0","macAddress":"249A.16A4.5DED","monitorInterface":true,"standbyMacAddress":"06D4.757D.FF06","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0c4e:e907:93c3:ba7a:7842:4899:f454:2a33/32","ipAddress":"41e0:3a60:0ca6:5f1c:cdd5:9c57:4918:682f/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d039:d6f4:278a:cdd3:b9e3:2711:460f:1555","ipAddress":"7e31:6d3f:5bbc:0d7f:4df6:58b9:26a6:d462"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"227.88.54.119","standbyIpAddress":"119.107.19.197"}},"version":"e50dac9e-5493-5760-b5e5-294741f3c409","managementInterface":true,"managementOnly":true,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"},"destinationInterface":{"mtu":5818,"enabled":true,"description":"Dib wohomfa it firasugu joev ge nu dab caejuja ba no owezru rijbofnuv da ren.","name":"outside","id":"056580af-b7b5-5ea4-9434-84acde7b7b2b","hardwareName":"GigabitEthernet1/2","macAddress":"B807.AD9D.0E4C","monitorInterface":false,"standbyMacAddress":"8F66.A03C.5C85","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"398d:4979:fd8c:5c79:130d:af73:39ac:575b/32","ipAddress":"0e08:b1ea:5a22:75ba:8e01:eaed:3442:684c/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"264c:f9d4:85a8:fdee:b56d:4b03:96d7:6285","ipAddress":"d0f4:3235:0882:22a2:f8c8:c2db:683c:9639"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"178.90.249.165","standbyIpAddress":"41.101.191.177"}},"version":"53c69bde-efdf-5307-96bb-1d0c92bec9a5","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"PASSIVE","type":"physicalinterface"},"enabled":true,"version":"Winolil fe ojo newsi dutuvap kovalun ev rolecu dapi icku bepu nufabaco cojmojfu dowva ita nijolta.","description":"Ceb lejuke ruf jejewwog evo uji gevweoj foc zubaf vi itozihrer pebiguh helivo gibupuj porcetut.","natType":"STATIC","noProxyArp":true,"dns":true,"routeLookup":true,"netToNet":false,"interfaceIPv6":true,"type":"objectnatrule","name":"ObjectNatRule1","originalPort":{"id":"b19e16f9-5846-596a-9757-161e7154e68c","name":"tcp_port_1","description":"Ruwus webwepfa fo copoko aligimaj riz zeti bivsu jah ve virip kesnenwer fi wede magbuf ojku sadruh ji.","version":"a90e8fa8-216a-59a4-bce1-da2f92acd1ad","type":"tcpportobject","port":8721,"isSystemDefined":true},"originalNetwork":{"id":"a820f102-7786-5e65-8b4e-66022cb061cd","name":"Network4","description":"Cutfuf ni ka viz vave cajto wouvirak rogzizde puk zogvintus jisaslit hos guvbujloc giivuzob fafanod.","version":"37093e3e-c4bb-5188-b023-e0f6a4d12463","type":"networkobject","subType":"HOST","value":"3eab:67af:0576:1163:4699:9d76:4a97:ca53","isSystemDefined":true,"metadata":{"referenced":true}},"translatedNetwork":{"id":"91eec2e0-40a0-5a21-8e47-895180936601","name":"Network3","description":"Sipato cebda bujno ajnona kata sacigi kirkoc adicazin wewomu hiferkuz wekog ja domkag ovnejegu bihod.","version":"4bd8c9f6-0f14-5c4f-9946-58217f033d54","type":"networkobject","subType":"NETWORK","value":"233.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":false}},"translatedPort":{"id":"b19e16f9-5846-596a-9757-161e7154e68c","name":"tcp_port_1","description":"Ruwus webwepfa fo copoko aligimaj riz zeti bivsu jah ve virip kesnenwer fi wede magbuf ojku sadruh ji.","version":"a90e8fa8-216a-59a4-bce1-da2f92acd1ad","type":"tcpportobject","port":8721,"isSystemDefined":true},"interfaceInTranslatedNetwork":false}},"ObjectNatRuleWrapper":{"allOf":[{"$ref":"#/definitions/ObjectNatRule"},{"$ref":"#/definitions/LinksWrapper"}]},"ObjectNatRuleContainer":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"objectnatrulecontainer"}},"required":["type"]},"ObjectNatRuleContainerWrapper":{"allOf":[{"$ref":"#/definitions/ObjectNatRuleContainer"},{"$ref":"#/definitions/LinksWrapper"}]},"ObjectRevisionDbCache":{"type":"object","properties":{"version":{"type":"string"},"timestamp":{"type":"integer"},"state":{"type":"object","$ref":"#/definitions/DbCacheEntityBase$DbCacheState"},"revisionMapEntries":{"type":"array","items":{"type":"string"}},"id":{"type":"string"},"type":{"type":"string","default":"objectrevisiondbcache"}},"required":["type"]},"ObjectUuidMapDbCache":{"type":"object","properties":{"version":{"type":"string"},"timestamp":{"type":"integer"},"state":{"type":"object","$ref":"#/definitions/DbCacheEntityBase$DbCacheState"},"uuidToNameMapEntries":{"type":"array","items":{"type":"string"}},"id":{"type":"string"},"type":{"type":"string","default":"objectuuidmapdbcache"}},"required":["type"]},"PatOptions":{"type":"object","properties":{"patPoolAddress":{"type":"object","$ref":"#/definitions/ReferenceModel"},"interfacePat":{"type":"boolean"},"roundRobin":{"type":"boolean"},"flat":{"type":"boolean"},"extended":{"type":"boolean"},"includeReserve":{"type":"boolean"},"type":{"type":"string","default":"patoptions"}},"required":["type"]},"Permission":{"type":"object","properties":{"permissionType":{"type":"object","$ref":"#/definitions/PermissionType"},"permittedResource":{"type":"object","$ref":"#/definitions/ReferenceModel"},"type":{"type":"string","default":"permission"}},"required":["type"]},"PermissionType":{"type":"string","enum":["READ","WRITE","NONE"]},"PhysicalInterface":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"hardwareName":{"type":"string"},"monitorInterface":{"type":"boolean"},"ipv4":{"type":"object","$ref":"#/definitions/InterfaceIPv4"},"ipv6":{"type":"object","$ref":"#/definitions/InterfaceIPv6"},"managementOnly":{"type":"boolean"},"linkState":{"type":"object","$ref":"#/definitions/LinkState"},"mtu":{"type":"integer"},"enabled":{"type":"boolean"},"macAddress":{"type":"string"},"standbyMacAddress":{"type":"string"},"speedType":{"type":"object","$ref":"#/definitions/InterfaceSpeedType"},"duplexType":{"type":"object","$ref":"#/definitions/InterfaceDuplexType"},"mode":{"type":"object","$ref":"#/definitions/InterfaceModeType"},"managementInterface":{"type":"boolean"},"tenGigabitInterface":{"type":"boolean"},"gigabitInterface":{"type":"boolean"},"id":{"type":"string"},"type":{"type":"string","default":"physicalinterface"}},"required":["mode","monitorInterface","type","enabled","mtu"],"example":{"mtu":5818,"enabled":true,"description":"Setta biwofega af ihi ebele inowo inagiobo nu it fe heivu lijivok.","name":"diagnostic","id":"f7509b61-168c-5d86-9a4c-8d3a2bb23e90","hardwareName":"Management0/0","macAddress":"249A.16A4.5DED","monitorInterface":true,"standbyMacAddress":"06D4.757D.FF06","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0c4e:e907:93c3:ba7a:7842:4899:f454:2a33/32","ipAddress":"41e0:3a60:0ca6:5f1c:cdd5:9c57:4918:682f/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d039:d6f4:278a:cdd3:b9e3:2711:460f:1555","ipAddress":"7e31:6d3f:5bbc:0d7f:4df6:58b9:26a6:d462"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"227.88.54.119","standbyIpAddress":"119.107.19.197"}},"version":"e50dac9e-5493-5760-b5e5-294741f3c409","managementInterface":true,"managementOnly":true,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"}},"PhysicalInterfaceWrapper":{"allOf":[{"$ref":"#/definitions/PhysicalInterface"},{"$ref":"#/definitions/LinksWrapper"}]},"PolicyRuleIdInfo":{"type":"object","properties":{"version":{"type":"string"},"accessRuleIds":{"type":"array","items":{"type":"integer"}},"recycledAccessRuleIds":{"type":"array","items":{"type":"string"}},"tunnelRuleIds":{"type":"array","items":{"type":"integer"}},"recycledTunnelRuleIds":{"type":"array","items":{"type":"string"}},"recycledSSLRuleIds":{"type":"array","items":{"type":"string"}},"sslRuleIds":{"type":"array","items":{"type":"integer"}},"id":{"type":"string"},"type":{"type":"string","default":"policyruleidinfo"}},"required":["type"]},"PolicyRuleIdMapDbCache":{"type":"object","properties":{"version":{"type":"string"},"timestamp":{"type":"integer"},"state":{"type":"object","$ref":"#/definitions/DbCacheEntityBase$DbCacheState"},"accessRuleIdToRuleUuidMapEntries":{"type":"array","items":{"type":"string"}},"tunnelRuleIdToRuleUuidMapEntries":{"type":"array","items":{"type":"string"}},"sslRuleIdToRuleUuidMapEntries":{"type":"array","items":{"type":"string"}},"id":{"type":"string"},"type":{"type":"string","default":"policyruleidmapdbcache"}},"required":["type"]},"PolicyTypeEnum":{"type":"string","enum":["AC_POLICY","FLEX_POLICY","IDENTITY_RULE_POLICY","SECURITY_INTELLIGENCE","MANAGEMENT_ACCESS"]},"PortObjectGroup":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"isSystemDefined":{"type":"boolean"},"id":{"type":"string"},"objects":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"type":{"type":"string","default":"portobjectgroup"}},"required":["type"],"example":{"id":"5a6e476a-df65-5641-92eb-abd433af9877","name":"Port_Object_Group_1","description":"Zufuwrak bov jiw fac zav rofkeweja wetra ce ipa ronareobo vog ucupa zi eguru mimegiw roneam.","version":"f0b69817-f639-5361-880a-b36d48e5576c","type":"portobjectgroup","objects":[{"id":"2a40730e-7878-5969-ba53-1d9278cde125","name":"icmpv4port1","description":"Uva ceti behga hetivasu ajbebu rakepe ame ifa aceuriso kejic fucaoti gigvivvo gishelpob jurevmu ov maclefe.","version":"e62c0f51-027e-5a7f-b725-a96162bb7138","type":"icmpv4portobject","icmpv4Code":"","icmpv4Type":"ANY","port":8508,"isSystemDefined":false}],"links":{"self":"http://url/api/fdm/v2/networkobject/12345"},"metadata":{"referenced":false}}},"PortObjectGroupWrapper":{"allOf":[{"$ref":"#/definitions/PortObjectGroup"},{"$ref":"#/definitions/LinksWrapper"}]},"PostUpgradeFlags":{"type":"object","properties":{"version":{"type":"string"},"showPostUpgradeDialog":{"type":"boolean"},"featureList":{"type":"array","items":{"type":"string"}},"id":{"type":"string"},"type":{"type":"string","default":"postupgradeflags"}},"required":["type"]},"PostUpgradeFlagsWrapper":{"allOf":[{"$ref":"#/definitions/PostUpgradeFlags"},{"$ref":"#/definitions/LinksWrapper"}]},"ProductivityCondition":{"type":"object","properties":{"productivity":{"type":"object","$ref":"#/definitions/ProductivityRank"},"type":{"type":"string","default":"productivitycondition"}},"required":["type"]},"ProductivityRank":{"type":"string","enum":["UNKNOWN","VERY_LOW","LOW","MEDIUM","HIGH","VERY_HIGH"]},"ProtocolObject":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"isSystemDefined":{"type":"boolean"},"protocol":{"type":"object","$ref":"#/definitions/ProtocolType"},"id":{"type":"string"},"type":{"type":"string","default":"protocolobject"}},"required":["protocol","type"],"example":{"id":"17820b1b-0caf-509e-9227-0640913583ba","name":"protocol_1","description":"Jeg de du uk kidturbad omagihev gobdi moshesmop hurkov an buibu lucre gukva.","version":"c3b4f831-da55-547b-8c2f-c2fce675a234","type":"protocolobject","protocol":"PUP","port":8275,"isSystemDefined":false}},"ProtocolObjectWrapper":{"allOf":[{"$ref":"#/definitions/ProtocolObject"},{"$ref":"#/definitions/LinksWrapper"}]},"ProtocolType":{"type":"string","enum":["IGMP","GGP","ST2","TCP","CBT","EGP","IGP","BBNRCCMON","NVP2","PUP","ARGUS","EMCON","XNET","CHAOS","UDP","MUX","DCNMEAS","HMP","PRM","XNSIDP","TRUNK1","TRUNK2","LEAF1","LEAF2","RDP","IRTP","ISOTP4","NETBLT","MFENSP","MERITINP","SEP","THREEPC","IDPR","XTP","DDP","IDPRCMTP","TPPLUSPLUS","IL","SDRP","IDRP","RSVP","GRE","MHRP","BNA","ESP","AH","INLSP","SWIPE","NARP","MOBILE","TLSP","SKIP","IPv6NONXT","CFTP","SATEXPAK","KRYPTOLAN","RVD","IPPC","SATMON","VISA","IPCV","CPNX","CPHB","WSN","PVP","BRSATMON","SUNND","WBMON","WBEXPAK","ISOIP","VMTP","SECUREVMTP","VINES","TTP","NSFNETIGP","DGP","TCF","EIGRP","OSPFIGP","SPRITERPC","LARP","MTP","AX25","IPIP","MICP","SCCSP","ETHERIP","ENCAP","GMTP","IFMP","PNNI","PIM","ARIS","SCPS","QNX","AN","IPCOMP","SNP","COMPAQPEER","IPXINIP","VRRP","PGM","L2TP","DDX","IATP","ST","SRP","UTI","SMP","SM","PTP","ISIS","FIRE","CRTP","CRUDP","SSCOPMCE","IPLT","SPS","PIPE","SCTP","FC","DIVERT"]},"RBACResource":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"urls":{"type":"array","items":{"type":"string"}},"dependentResources":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"id":{"type":"string"},"type":{"type":"string","default":"rbacresource"}},"required":["type"]},"RBACResourceGroup":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"resources":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"id":{"type":"string"},"type":{"type":"string","default":"rbacresourcegroup"}},"required":["type"]},"RadiusIdentitySource":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"host":{"type":"string"},"timeout":{"type":"integer"},"serverAuthenticationPort":{"type":"integer"},"serverSecretKey":{"type":"string","default":"*********"},"capabilities":{"type":"array","items":{"type":"object","$ref":"#/definitions/IdentitySourceCapabilities"}},"id":{"type":"string"},"type":{"type":"string","default":"radiusidentitysource"}},"required":["name","host","type"],"example":{"id":"98de28ef-9898-55c4-b6ce-bcee24ee6d57","version":"280b0f79-9611-5086-b9b8-f51ddcef906a","name":"RadiusIdentitySource1","description":"Saranmun tevvoiga debozbo kuz beregu irepoge novemad uviohze nanlev jepezweg coaf ehlumvun.","host":"109.170.119.220","timeout":192,"serverAuthenticationPort":15336,"serverSecretKey":"","capabilities":["AUTHENTICATION","PASSIVE_IDENTITY"],"type":"radiusidentitysource"}},"RadiusIdentitySourceWrapper":{"allOf":[{"$ref":"#/definitions/RadiusIdentitySource"},{"$ref":"#/definitions/LinksWrapper"}]},"RadiusIdentitySourceGroup":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"maxFailedAttempts":{"type":"integer"},"deadTime":{"type":"integer"},"description":{"type":"string"},"radiusIdentitySources":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"activeDirectoryRealm":{"type":"object","$ref":"#/definitions/ReferenceModel"},"id":{"type":"string"},"type":{"type":"string","default":"radiusidentitysourcegroup"}},"required":["name","type"],"example":{"id":"859c02d1-c81d-5a67-b332-1e2a2f0e8451","version":"12911213-cca2-5c4f-8b9e-0fe795f10748","name":"RadiusIdentitySourceGroup1","description":"Dibwiat buiv wif gihac keki usigi zojta odim me hawaf reoponal ihudajiz cetdedol wanejudi oc sejcunful.","radiusIdentitySources":[{"id":"6337c699-3dcf-5160-8222-135f13129125","version":"811fa9af-23a7-5074-88c4-dcae37336fcc","name":"RadiusIdentitySource5","description":"Logabaho ruppiful iva losifah dah guhejku hitotnos linolhut umgutul dud mu otzosu vigit tevodofi moksoezu livufauk.","host":"97.98.218.73","timeout":74,"serverAuthenticationPort":42065,"serverSecretKey":"","capabilities":["ACCOUNTING","AUTHENTICATION","AUTHORIZATION","DIRECTORY_SERVICES","PASSIVE_IDENTITY"],"type":"radiusidentitysource"},{"id":"d8d577cf-3526-56ab-8322-7a7cff8cbd2a","version":"0683d1ff-ff25-5aca-806a-ee6dcbf97678","name":"RadiusIdentitySource12","description":"Bizufte ol riv purvefok unune wa jo ugsisot vahlegsev wokulfoj magiv gehipo kep weonuze lirjid ecriv mo.","host":"154.4.38.85","timeout":212,"serverAuthenticationPort":51259,"serverSecretKey":"","capabilities":["ACCOUNTING","AUTHENTICATION","AUTHORIZATION","DIRECTORY_SERVICES","PASSIVE_IDENTITY"],"type":"radiusidentitysource"},{"id":"62384483-eaad-599c-9d45-9a745736c3c9","version":"33953404-c1f2-5aa7-b05b-b1e1292cb712","name":"RadiusIdentitySource3","description":"Gettoztes hitco jopo wupoot mefjalnem atobico udeha nadhosa tunomeb ukithep ribna upolikgu vudrihhu ivilo dewdil be tor.","host":"127.190.113.61","timeout":25,"serverAuthenticationPort":1498,"serverSecretKey":"","capabilities":["ACCOUNTING","AUTHENTICATION","AUTHORIZATION","DIRECTORY_SERVICES","PASSIVE_IDENTITY"],"type":"radiusidentitysource"}],"deadTime":1199,"maxFailedAttempts":3,"type":"radiusidentitysourcegroup"}},"RadiusIdentitySourceGroupWrapper":{"allOf":[{"$ref":"#/definitions/RadiusIdentitySourceGroup"},{"$ref":"#/definitions/LinksWrapper"}]},"ResourcePermission":{"type":"object","properties":{"resourceName":{"type":"string"},"resourceUrls":{"type":"array","items":{"type":"string"}},"resourceType":{"type":"string"},"permissionType":{"type":"object","$ref":"#/definitions/PermissionType"}}},"RestoreImmediate":{"type":"object","properties":{"version":{"type":"string"},"scheduleType":{"type":"object","$ref":"#/definitions/JobExecutionType"},"user":{"type":"string"},"forceOperation":{"type":"boolean"},"jobHistoryUuid":{"type":"string"},"ipAddress":{"type":"string"},"archiveName":{"type":"string"},"preserveArchive":{"type":"boolean"},"jobName":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"restoreimmediate"}},"required":["archiveName","type"]},"RestoreImmediateWrapper":{"allOf":[{"$ref":"#/definitions/RestoreImmediate"},{"$ref":"#/definitions/LinksWrapper"}]},"RiskCondition":{"type":"object","properties":{"risk":{"type":"object","$ref":"#/definitions/RiskRank"},"type":{"type":"string","default":"riskcondition"}},"required":["type"]},"RiskRank":{"type":"string","enum":["UNKNOWN","VERY_LOW","LOW","MEDIUM","HIGH","CRITICAL"]},"RolePermission":{"type":"object","properties":{"role":{"type":"string"},"rolePermissionSet":{"type":"array","items":{"type":"object","$ref":"#/definitions/ResourcePermission"}},"id":{"type":"string"},"type":{"type":"string","default":"RolePermission"}},"required":["type"],"example":{"id":"ROLE_READ_ONLY","rolePermissionSet":[{"resourceName":"accesspolicies","resourceUrls":["/policy/accesspolicies/{objId}","/policy/accesspolicies"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"accesspolicies>accessrules","resourceUrls":["/policy/accesspolicies/{parentId}/accessrules","/policy/accesspolicies/{parentId}/accessrules/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"activeusersessions","resourceUrls":["/action/activeusersessions","/action/activeusersessions/{objId}"],"resourceType":"RBACResource","permissionType":"NONE"},{"resourceName":"anyconnectclientprofiles","resourceUrls":["/object/anyconnectclientprofiles","/object/anyconnectclientprofiles/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"anyconnectgrouppolicies","resourceUrls":["/devices/default/anyconnectgrouppolicies/{objId}","/devices/default/anyconnectgrouppolicies"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"anyconnectpackagefiles","resourceUrls":["/devices/default/anyconnectpackagefiles/{objId}","/devices/default/anyconnectpackagefiles"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"anyconnectpackages","resourceUrls":["/devices/default/anyconnectpackages/{objId}","/devices/default/anyconnectpackages"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"anyconnectprofiles","resourceUrls":["/devices/default/anyconnectprofiles/{objId}","/devices/default/anyconnectprofiles"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"anyconnectvpnconnections","resourceUrls":["/devices/default/anyconnectvpnconnections","/devices/default/anyconnectvpnconnections/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"applicationcategories","resourceUrls":["/object/applicationcategories"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"applicationfilters","resourceUrls":["/object/applicationfilters","/object/applicationfilters/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"applications","resourceUrls":["/object/applications"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"applicationtags","resourceUrls":["/object/applicationtags"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"archivedbackups","resourceUrls":["/managedentity/archivedbackups/{objId}","/managedentity/archivedbackups"],"resourceType":"RBACResource","permissionType":"NONE"},{"resourceName":"aspathlists","resourceUrls":["/object/aspathlists","/object/aspathlists/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"auditevents","resourceUrls":["/operational/auditevents","/operational/auditevents/{objId}"],"resourceType":"RBACResource","permissionType":"NONE"},{"resourceName":"auditevents>changes","resourceUrls":["/operational/auditevents/{parentId}/changes"],"resourceType":"RBACResource","permissionType":"NONE"},{"resourceName":"backup","resourceUrls":["/action/backup","/action/backup/{objId}"],"resourceType":"RBACResource","permissionType":"NONE"},{"resourceName":"bridgegroupinterfaces","resourceUrls":["/devices/default/bridgegroupinterfaces","/devices/default/bridgegroupinterfaces/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"clitemplatecategories","resourceUrls":["/operational/clitemplatecategories/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"clitemplates","resourceUrls":["/operational/clitemplates","/operational/clitemplates/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"cloudmanagement","resourceUrls":["/action/cloudmanagement/{objId}","/action/cloudmanagement"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"cloudservicesinfo","resourceUrls":["/operational/cloudservicesinfo/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"command","resourceUrls":["/action/command"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"commandautocomplete","resourceUrls":["/operational/commandautocomplete/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"connecttest","resourceUrls":["/action/connecttest/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"continents","resourceUrls":["/object/continents/{objId}","/object/continents"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"countries","resourceUrls":["/object/countries/{objId}","/object/countries"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"datadnssettings","resourceUrls":["/devices/default/datadnssettings/{objId}","/devices/default/datadnssettings"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"deploy","resourceUrls":["/operational/deploy","/operational/deploy/{objId}"],"resourceType":"RBACResource","permissionType":"NONE"},{"resourceName":"deploymentdata","resourceUrls":["/operational/deploymentdata/{objId}"],"resourceType":"RBACResource","permissionType":"NONE"},{"resourceName":"deploymenterrors","resourceUrls":["/operational/deploymenterrors/{objId}"],"resourceType":"RBACResource","permissionType":"NONE"},{"resourceName":"devicesettings>aaasettings","resourceUrls":["/devicesettings/default/aaasettings/{objId}","/devicesettings/default/aaasettings"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"devicesettings>cloudcommunicationsettings","resourceUrls":["/devicesettings/default/cloudcommunicationsettings/{objId}","/devicesettings/default/cloudcommunicationsettings"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"devicesettings>cloudconfig","resourceUrls":["/devicesettings/default/cloudconfig","/devicesettings/default/cloudconfig/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"devicesettings>devicehostnames","resourceUrls":["/devicesettings/default/devicehostnames/{objId}","/devicesettings/default/devicehostnames"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"devicesettings>dhcpservercontainers","resourceUrls":["/devicesettings/default/dhcpservercontainers","/devicesettings/default/dhcpservercontainers/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"devicesettings>httpaccesslists","resourceUrls":["/devicesettings/default/httpaccesslists","/devicesettings/default/httpaccesslists/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"devicesettings>logsettings","resourceUrls":["/devicesettings/default/logsettings","/devicesettings/default/logsettings/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"devicesettings>managementaccess","resourceUrls":["/devicesettings/default/managementaccess","/devicesettings/default/managementaccess/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"devicesettings>managementips","resourceUrls":["/devicesettings/default/managementips","/devicesettings/default/managementips/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"devicesettings>ntp","resourceUrls":["/devicesettings/default/ntp/{objId}","/devicesettings/default/ntp"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"devicesettings>sshaccesslists","resourceUrls":["/devicesettings/default/sshaccesslists/{objId}","/devicesettings/default/sshaccesslists"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"diskusage","resourceUrls":["/operational/diskusage/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"dnsservergroups","resourceUrls":["/object/dnsservergroups/{objId}","/object/dnsservergroups"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"downloadbackup","resourceUrls":["/action/downloadbackup/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"downloadconfig","resourceUrls":["/action/downloadconfig/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"downloaddiskfile","resourceUrls":["/action/downloaddiskfile/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"downloadinternalcacertificate","resourceUrls":["/action/downloadinternalcacertificate/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"downloadtroubleshoot","resourceUrls":["/action/downloadtroubleshoot/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"easysetup>easysetupstatus","resourceUrls":["/easysetup/easysetupstatus","/easysetup/easysetupstatus/{objId}"],"resourceType":"RBACResource","permissionType":"NONE"},{"resourceName":"easysetup>outsidenetwork","resourceUrls":["/easysetup/outsidenetwork/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"easysetup>passwordstatus","resourceUrls":["/easysetup/passwordstatus","/easysetup/passwordstatus/{objId}"],"resourceType":"RBACResource","permissionType":"NONE"},{"resourceName":"easysetup>timesettings","resourceUrls":["/easysetup/timesettings/{objId}"],"resourceType":"RBACResource","permissionType":"NONE"},{"resourceName":"errorpage","resourceUrls":["/errorpage/{errorCode}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"eula","resourceUrls":["/devices/default/eula/{objId}","/devices/default/eula"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"expandedcommunitylists","resourceUrls":["/object/expandedcommunitylists","/object/expandedcommunitylists/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"exportconfig","resourceUrls":["/action/exportconfig"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"extendedaccesslists","resourceUrls":["/object/extendedaccesslists","/object/extendedaccesslists/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"externalcacertificates","resourceUrls":["/object/externalcacertificates/{objId}","/object/externalcacertificates"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"externalcertificates","resourceUrls":["/object/externalcertificates/{objId}","/object/externalcertificates"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"featureinfo","resourceUrls":["/operational/featureinfo/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"filepolicies","resourceUrls":["/policy/filepolicies","/policy/filepolicies/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"flexconfigobjects","resourceUrls":["/object/flexconfigobjects","/object/flexconfigobjects/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"flexconfigpolicies","resourceUrls":["/object/flexconfigpolicies/{objId}","/object/flexconfigpolicies"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"geolocations","resourceUrls":["/object/geolocations","/object/geolocations/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"geolocationupdateschedules","resourceUrls":["/managedentity/geolocationupdateschedules","/managedentity/geolocationupdateschedules/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"ha>break","resourceUrls":["/devices/default/action/ha/break/{objId}","/devices/default/action/ha/break"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"ha>configurations","resourceUrls":["/devices/default/ha/configurations/{objId}","/devices/default/ha/configurations"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"ha>failover","resourceUrls":["/devices/default/action/ha/failover"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"ha>failoverconfigurations","resourceUrls":["/devices/default/ha/failoverconfigurations","/devices/default/ha/failoverconfigurations/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"ha>join","resourceUrls":["/devices/default/action/ha/join/{objId}","/devices/default/action/ha/join"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"ha>reset","resourceUrls":["/devices/default/action/ha/reset"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"ha>resume","resourceUrls":["/devices/default/action/ha/resume"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"ha>status","resourceUrls":["/devices/default/operational/ha/status/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"ha>suspend","resourceUrls":["/devices/default/action/ha/suspend"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"icmpv4ports","resourceUrls":["/object/icmpv4ports/{objId}","/object/icmpv4ports"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"icmpv6ports","resourceUrls":["/object/icmpv6ports","/object/icmpv6ports/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"identitypolicies","resourceUrls":["/policy/identitypolicies/{objId}","/policy/identitypolicies"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"identitypolicies>identityrules","resourceUrls":["/policy/identitypolicies/{parentId}/identityrules","/policy/identitypolicies/{parentId}/identityrules/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"ikev1policies","resourceUrls":["/object/ikev1policies","/object/ikev1policies/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"ikev1proposals","resourceUrls":["/object/ikev1proposals","/object/ikev1proposals/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"ikev2policies","resourceUrls":["/object/ikev2policies","/object/ikev2policies/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"ikev2proposals","resourceUrls":["/object/ikev2proposals","/object/ikev2proposals/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"integration>identityservicesengine","resourceUrls":["/integration/identityservicesengine","/integration/identityservicesengine/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"interfaceinfo","resourceUrls":["/operational/interfaceinfo/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"interfaces","resourceUrls":["/devices/default/interfaces","/devices/default/interfaces/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"interfaces>subinterfaces","resourceUrls":["/devices/default/interfaces/{parentId}/subinterfaces/{objId}","/devices/default/interfaces/{parentId}/subinterfaces"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"internalcacertificates","resourceUrls":["/object/internalcacertificates/{objId}","/object/internalcacertificates"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"internalcertificates","resourceUrls":["/object/internalcertificates","/object/internalcertificates/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"intrusionpolicies","resourceUrls":["/policy/intrusionpolicies","/policy/intrusionpolicies/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"intrusionpolicies>intrusionrules","resourceUrls":["/policy/intrusionpolicies/{parentId}/intrusionrules","/policy/intrusionpolicies/{parentId}/intrusionrules/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"intrusionpolicies>ruleupdates","resourceUrls":["/policy/intrusionpolicies/{objId}/ruleupdates"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"intrusionsettings","resourceUrls":["/object/intrusionsettings","/object/intrusionsettings/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"ipv4prefixlists","resourceUrls":["/object/ipv4prefixlists","/object/ipv4prefixlists/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"ipv6prefixlists","resourceUrls":["/object/ipv6prefixlists/{objId}","/object/ipv6prefixlists"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"jobs","resourceUrls":["/jobs/{objId}","/jobs"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"jobs>backups","resourceUrls":["/jobs/backups","/jobs/backups/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"jobs>cloudmanagementupdates","resourceUrls":["/jobs/cloudmanagementupdates/{objId}","/jobs/cloudmanagementupdates"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"jobs>deployments","resourceUrls":["/jobs/deployments","/jobs/deployments/{objId}"],"resourceType":"RBACResource","permissionType":"NONE"},{"resourceName":"jobs>exportconfigjob","resourceUrls":["/jobs/exportconfigjob"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"jobs>geolocationupdates","resourceUrls":["/jobs/geolocationupdates","/jobs/geolocationupdates/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"jobs>haconfigsync","resourceUrls":["/jobs/haconfigsync/{objId}","/jobs/haconfigsync"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"jobs>licenseregistrations","resourceUrls":["/jobs/licenseregistrations","/jobs/licenseregistrations/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"jobs>sruupdates","resourceUrls":["/jobs/sruupdates","/jobs/sruupdates/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"jobs>troubleshootjob","resourceUrls":["/managedentity/jobs/troubleshootjob"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"jobs>vdbupdates","resourceUrls":["/jobs/vdbupdates/{objId}","/jobs/vdbupdates"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"license>smartagentconnections","resourceUrls":["/license/smartagentconnections","/license/smartagentconnections/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"license>smartagentstatuses","resourceUrls":["/license/smartagentstatuses/{objId}","/license/smartagentstatuses"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"license>smartagentsyncrequests","resourceUrls":["/license/smartagentsyncrequests","/license/smartagentsyncrequests/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"license>smartlicenses","resourceUrls":["/license/smartlicenses","/license/smartlicenses/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"localidentitysources","resourceUrls":["/object/localidentitysources/{objId}","/object/localidentitysources"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"managemententity>postupgradeflags","resourceUrls":["/managemententity/postupgradeflags/{objId}","/managemententity/postupgradeflags"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"manualnatpolicies","resourceUrls":["/policy/manualnatpolicies/{objId}","/policy/manualnatpolicies"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"manualnatpolicies>manualnatrules","resourceUrls":["/policy/manualnatpolicies/{parentId}/manualnatrules/{objId}","/policy/manualnatpolicies/{parentId}/manualnatrules"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"mgmtdnssettings","resourceUrls":["/devices/default/mgmtdnssettings/{objId}","/devices/default/mgmtdnssettings"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"monitor>trendingreports","resourceUrls":["/monitor/trendingreports/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"networkfeedcategories","resourceUrls":["/object/networkfeedcategories","/object/networkfeedcategories/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"networkgroups","resourceUrls":["/object/networkgroups","/object/networkgroups/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"networkinterfaces","resourceUrls":["/devices/default/networkinterfaces/{objId}","/devices/default/networkinterfaces"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"networks","resourceUrls":["/object/networks","/object/networks/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"ntpstatus","resourceUrls":["/operational/ntpstatus/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"objectnatpolicies","resourceUrls":["/policy/objectnatpolicies/{objId}","/policy/objectnatpolicies"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"objectnatpolicies>objectnatrules","resourceUrls":["/policy/objectnatpolicies/{parentId}/objectnatrules","/policy/objectnatpolicies/{parentId}/objectnatrules/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"pendingchanges","resourceUrls":["/operational/pendingchanges"],"resourceType":"RBACResource","permissionType":"NONE"},{"resourceName":"pendingchanges>clipboard","resourceUrls":["/operational/pendingchanges/clipboard/{objId}"],"resourceType":"RBACResource","permissionType":"NONE"},{"resourceName":"pendingchanges>download","resourceUrls":["/action/pendingchanges/download/{objId}"],"resourceType":"RBACResource","permissionType":"NONE"},{"resourceName":"policylists","resourceUrls":["/object/policylists/{objId}","/object/policylists"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"portgroups","resourceUrls":["/object/portgroups","/object/portgroups/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"protocols","resourceUrls":["/object/protocols","/object/protocols/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"radiusidentitysourcegroups","resourceUrls":["/object/radiusidentitysourcegroups/{objId}","/object/radiusidentitysourcegroups"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"radiusidentitysources","resourceUrls":["/object/radiusidentitysources/{objId}","/object/radiusidentitysources"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"realms","resourceUrls":["/object/realms/{objId}","/object/realms"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"realms>trafficusergroups","resourceUrls":["/object/realms/{parentId}/trafficusergroups/{objId}","/object/realms/{parentId}/trafficusergroups"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"realms>trafficusers","resourceUrls":["/object/realms/{parentId}/trafficusers","/object/realms/{parentId}/trafficusers/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"restore","resourceUrls":["/action/restore/{objId}","/action/restore"],"resourceType":"RBACResource","permissionType":"NONE"},{"resourceName":"rolepermissions","resourceUrls":["/operational/rolepermissions","/operational/rolepermissions/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"routemaps","resourceUrls":["/object/routemaps","/object/routemaps/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"routing","resourceUrls":["/devices/default/routing","/devices/default/routing/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"routing>staticrouteentries","resourceUrls":["/devices/default/routing/{parentId}/staticrouteentries/{objId}","/devices/default/routing/{parentId}/staticrouteentries"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"routing>virtualrouters>bgp","resourceUrls":["/devices/default/routing/virtualrouters/default/bgp","/devices/default/routing/virtualrouters/default/bgp/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"routing>virtualrouters>ospf","resourceUrls":["/devices/default/routing/virtualrouters/default/ospf/{objId}","/devices/default/routing/virtualrouters/default/ospf"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"routing>virtualrouters>ospfinterfacesettings","resourceUrls":["/devices/default/routing/virtualrouters/default/ospfinterfacesettings/{objId}","/devices/default/routing/virtualrouters/default/ospfinterfacesettings"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"s2sconnectionprofiles","resourceUrls":["/devices/default/s2sconnectionprofiles/{objId}","/devices/default/s2sconnectionprofiles"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"scheduledbackup","resourceUrls":["/action/scheduledbackup/{objId}","/action/scheduledbackup"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"secrets","resourceUrls":["/object/secrets/{objId}","/object/secrets"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"securityintelligencefeedsupdateschedules","resourceUrls":["/managedentity/securityintelligencefeedsupdateschedules/{objId}","/managedentity/securityintelligencefeedsupdateschedules"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"securityintelligencenetworkpolicies","resourceUrls":["/policy/securityintelligencenetworkpolicies","/policy/securityintelligencenetworkpolicies/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"securityintelligencepolicies","resourceUrls":["/policy/securityintelligencepolicies/{objId}","/policy/securityintelligencepolicies"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"securityintelligenceupdatefeeds","resourceUrls":["/action/securityintelligenceupdatefeeds","/action/securityintelligenceupdatefeeds/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"securityintelligenceurlpolicies","resourceUrls":["/policy/securityintelligenceurlpolicies/{objId}","/policy/securityintelligenceurlpolicies"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"securityzones","resourceUrls":["/object/securityzones","/object/securityzones/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"smartclis","resourceUrls":["/object/smartclis","/object/smartclis/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"specialrealms","resourceUrls":["/object/specialrealms/{objId}","/object/specialrealms"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"specialrealms>trafficusers","resourceUrls":["/object/specialrealms/{parentId}/trafficusers/{objId}","/object/specialrealms/{parentId}/trafficusers"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"sruupdateschedules","resourceUrls":["/managedentity/sruupdateschedules","/managedentity/sruupdateschedules/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"sslpolicies","resourceUrls":["/policy/sslpolicies","/policy/sslpolicies/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"sslpolicies>sslrules","resourceUrls":["/policy/sslpolicies/{parentId}/sslrules/{objId}","/policy/sslpolicies/{parentId}/sslrules"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"standardaccesslists","resourceUrls":["/object/standardaccesslists","/object/standardaccesslists/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"standardcommunitylists","resourceUrls":["/object/standardcommunitylists/{objId}","/object/standardcommunitylists"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"syslogalerts","resourceUrls":["/object/syslogalerts","/object/syslogalerts/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"systemfeedobjects","resourceUrls":["/object/systemfeedobjects/{objId}","/object/systemfeedobjects"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"systeminfo","resourceUrls":["/operational/systeminfo/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"tcpports","resourceUrls":["/object/tcpports","/object/tcpports/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"telemetry","resourceUrls":["/operational/telemetry/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"testidentityservicesengineconnectivity","resourceUrls":["/action/testidentityservicesengineconnectivity"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"testidentitysource","resourceUrls":["/action/testidentitysource"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"testrealm","resourceUrls":["/action/testrealm"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"timezones","resourceUrls":["/operational/timezones/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"trafficinterruptionreasons","resourceUrls":["/operational/trafficinterruptionreasons/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"troubleshoot","resourceUrls":["/action/troubleshoot","/action/troubleshoot/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"udpports","resourceUrls":["/object/udpports/{objId}","/object/udpports"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"update","resourceUrls":["/managedentity/update/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"updategeolocation","resourceUrls":["/action/updategeolocation/{objId}","/action/updategeolocation"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"updatesru","resourceUrls":["/action/updatesru/{objId}","/action/updatesru"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"updatevdb","resourceUrls":["/action/updatevdb","/action/updatevdb/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"upgrade","resourceUrls":["/action/upgrade"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"upgradefiles","resourceUrls":["/managedentity/upgradefiles/{objId}","/managedentity/upgradefiles"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"uploadbackup","resourceUrls":["/action/uploadbackup"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"uploadcert","resourceUrls":["/action/uploadcert"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"uploaddiskfile","resourceUrls":["/action/uploaddiskfile"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"uploadupgrade","resourceUrls":["/action/uploadupgrade"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"urlcategories","resourceUrls":["/object/urlcategories"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"urlfeedcategories","resourceUrls":["/object/urlfeedcategories/{objId}","/object/urlfeedcategories"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"urlgroups","resourceUrls":["/object/urlgroups/{objId}","/object/urlgroups"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"urlreputation","resourceUrls":["/object/urlreputation"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"urls","resourceUrls":["/object/urls","/object/urls/{objId}"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"users","resourceUrls":["/object/users/{objId}","/object/users"],"resourceType":"RBACResource","permissionType":"READ"},{"resourceName":"vdbupdateschedules","resourceUrls":["/managedentity/vdbupdateschedules/{objId}","/managedentity/vdbupdateschedules"],"resourceType":"RBACResource","permissionType":"READ"}],"type":"rolepermission","role":"ROLE_READ_ONLY","links":{"self":"https://ast0080-pod:24143/api/fdm/v2/operational/rolepermissions/ROLE_READ_ONLY"}}},"RolePermissionWrapper":{"allOf":[{"$ref":"#/definitions/RolePermission"},{"$ref":"#/definitions/LinksWrapper"}]},"SRUImmediateJobType":{"type":"string","enum":["SRU_UPDATE","SRU_OOB_UPDATE"]},"SRUUpdateImmediate":{"type":"object","properties":{"version":{"type":"string"},"scheduleType":{"type":"object","$ref":"#/definitions/JobExecutionType"},"user":{"type":"string"},"forceOperation":{"type":"boolean"},"jobHistoryUuid":{"type":"string"},"ipAddress":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"sruImmediateJobType":{"type":"object","$ref":"#/definitions/SRUImmediateJobType"},"forceUpdate":{"type":"boolean"},"deployAfterUpdate":{"type":"boolean"},"jobName":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"sruupdateimmediate"}},"required":["type"]},"SRUUpdateImmediateWrapper":{"allOf":[{"$ref":"#/definitions/SRUUpdateImmediate"},{"$ref":"#/definitions/LinksWrapper"}]},"SRUUpdateSchedule":{"type":"object","properties":{"version":{"type":"string"},"scheduleType":{"type":"object","$ref":"#/definitions/JobExecutionType"},"user":{"type":"string"},"forceOperation":{"type":"boolean"},"jobHistoryUuid":{"type":"string"},"runTimes":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"deployAfterUpdate":{"type":"boolean"},"jobName":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"sruupdateschedule"}},"required":["type"],"example":{"id":"a04cfb9d-d292-54c0-aba0-7e19627a8e92","version":"6691b2e4-5ecc-591e-873a-4890488af596","hostname":"Ufe izifopo pevha be hud lej cedgaffol lipi ced ozif kitaso jomtogi hutip veb wimeros wi.","deployAfterUpdate":true,"type":"sruupdateschedule","runTimes":"0 04 03 * * ?","scheduleType":"DAILY"}},"SRUUpdateScheduleWrapper":{"allOf":[{"$ref":"#/definitions/SRUUpdateSchedule"},{"$ref":"#/definitions/LinksWrapper"}]},"SRUVersion":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"sruVersion":{"type":"string"},"lastSuccessSRUDate":{"type":"string"},"soMd5Checksum":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"sruversion"}},"required":["type"]},"ScheduleExportConfig":{"type":"object","properties":{"version":{"type":"string"},"scheduleType":{"type":"object","$ref":"#/definitions/JobExecutionType"},"user":{"type":"string"},"forceOperation":{"type":"boolean"},"jobHistoryUuid":{"type":"string"},"ipAddress":{"type":"string"},"masked":{"type":"boolean"},"jobName":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"scheduleexportconfig"}},"required":["type"]},"ScheduleExportConfigWrapper":{"allOf":[{"$ref":"#/definitions/ScheduleExportConfig"},{"$ref":"#/definitions/LinksWrapper"}]},"ScheduleTroubleshoot":{"type":"object","properties":{"version":{"type":"string"},"scheduleType":{"type":"object","$ref":"#/definitions/JobExecutionType"},"user":{"type":"string"},"forceOperation":{"type":"boolean"},"jobHistoryUuid":{"type":"string"},"ipAddress":{"type":"string"},"jobName":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"scheduletroubleshoot"}},"required":["type"]},"ScheduleTroubleshootWrapper":{"allOf":[{"$ref":"#/definitions/ScheduleTroubleshoot"},{"$ref":"#/definitions/LinksWrapper"}]},"SearchCondition":{"type":"object","properties":{"search":{"type":"string"},"type":{"type":"string","default":"searchcondition"}},"required":["type"]},"SecurityIntelligenceFeedsInfo":{"type":"object","properties":{"version":{"type":"string"},"lastFeedsUpdateDate":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"securityintelligencefeedsinfo"}},"required":["type"]},"SecurityIntelligenceUpdateFeedsImmediate":{"type":"object","properties":{"version":{"type":"string"},"scheduleType":{"type":"object","$ref":"#/definitions/JobExecutionType"},"user":{"type":"string"},"forceOperation":{"type":"boolean"},"jobHistoryUuid":{"type":"string"},"ipAddress":{"type":"string"},"jobName":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"securityintelligenceupdatefeedsimmediate"}},"required":["type"]},"SecurityIntelligenceUpdateFeedsImmediateWrapper":{"allOf":[{"$ref":"#/definitions/SecurityIntelligenceUpdateFeedsImmediate"},{"$ref":"#/definitions/LinksWrapper"}]},"SecurityIntelligenceUpdateFeedsSchedule":{"type":"object","properties":{"version":{"type":"string"},"scheduleType":{"type":"object","$ref":"#/definitions/JobExecutionType"},"user":{"type":"string"},"forceOperation":{"type":"boolean"},"jobHistoryUuid":{"type":"string"},"runTimes":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"jobName":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"securityintelligenceupdatefeedsschedule"}},"required":["type"],"example":{"id":"701dd5c6-24a5-58cf-804c-54e7dcc81cd9","version":"348ce707-58a0-565a-8a64-4cff9705579e","hostname":"Hukas joovunes kejwighu nihem wo gugego misappa dop imofimnu keiziwu idagid icjavvu.","type":"securityintelligenceupdatefeedsschedule","scheduleType":"HOURLY"}},"SecurityIntelligenceUpdateFeedsScheduleWrapper":{"allOf":[{"$ref":"#/definitions/SecurityIntelligenceUpdateFeedsSchedule"},{"$ref":"#/definitions/LinksWrapper"}]},"SecurityZone":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"interfaces":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"mode":{"type":"object","$ref":"#/definitions/InterfaceModeType"},"id":{"type":"string"},"type":{"type":"string","default":"securityzone"}},"required":["mode","type"],"example":{"id":"7fa724f3-b64c-585b-9176-69aed2b36237","name":"SecurityZone1Name","description":"Do pefa ritapo ovauciku vogomougi utino gudo momna sagocbiw bowce awu muzabwoz zetpec kit fe.","version":"9d1d113e-86e0-5106-9f6c-29cc8e8fc7fb","interfaces":[{"mtu":5818,"enabled":true,"description":"Wonca cotfo biok ugfejbah ro itedere itoh pijazu ocozojgi buk facheuho zo.","id":"ef57753e-8a0c-5454-a3b3-fbc3c570851d","hardwareName":"GigabitEthernet1/3","macAddress":"34B5.AF3E.B9E9","monitorInterface":true,"standbyMacAddress":"4AF5.3F46.87FE","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"da83:da11:93ff:4f56:084e:f1c1:269c:0dd0/32","ipAddress":"831e:6e6b:281e:8b10:94d0:03f1:b4d5:3373/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"6a3f:c0b2:5d20:fdb6:945d:bcd1:a144:7558","ipAddress":"af4f:d5f4:67bb:3263:e183:fc6c:ea34:f2e6"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"204.8.215.52","standbyIpAddress":"108.106.112.194"}},"version":"46c1bc9f-9a0a-5425-8dc2-3a04dd84c3f1","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]}],"type":"securityzone","mode":"ROUTED","metadata":{"referenced":true}}},"SecurityZoneWrapper":{"allOf":[{"$ref":"#/definitions/SecurityZone"},{"$ref":"#/definitions/LinksWrapper"}]},"SerialNumber":{"type":"object","properties":{"serial":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"SerialNumber"}},"required":["type"]},"SerializationKey":{"type":"object","properties":{"version":{"type":"string"},"key":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"serializationkey"}},"required":["type","key"]},"SnortVersion":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"snortVersion":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"snortversion"}},"required":["type"]},"SpecialRealm":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"directoryConfigurations":{"type":"array","items":{"type":"object","$ref":"#/definitions/DirectoryConfiguration"}},"enabled":{"type":"boolean"},"systemDefined":{"type":"boolean"},"realmId":{"type":"integer"},"id":{"type":"string"},"type":{"type":"string","default":"specialrealm"}},"required":["type"],"example":{"id":"default","enabled":true,"name":"Special Realm 1","type":"specialrealm","systemDefined":true,"directoryConfigurations":[{"port":7146,"hostname":"166.169.55.184","encryptionProtocol":"STARTTLS","encryptionCert":{"id":"31ce8cf5-0e07-58c1-9617-4de62a7800f1","name":"TrustedCACertificate1","cert":"-----BEGIN CERTIFICATE-----MIIC9zCCAmCgAwIBAgIJAJ69cfUJsifyMA0GCSqGSIb3DQEBBQUAMIGCMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxDjAMBgNVBAoMBUNpc2NvMQwwCgYDVQQLDANBREkxIjAgBgNVBAMMGUFESSBUZWFtIFRlc3RpbmcgYXQgQ2lzY28xITAfBgkqhkiG9w0BCQEWEnRjaHJpc3RtQGNpc2NvLmNvbTAeFw0xNTA0MDYxNDQwMjBaFw0xNjA0MDUxNDQwMjBaMHsxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEPMA0GA1UEBwwGQXVzdGluMQwwCgYDVQQKDANBREkxDDAKBgNVBAsMA0FESTEMMAoGA1UEAwwDQURJMSEwHwYJKoZIhvcNAQkBFhJ0Y2hyaXN0bUBjaXNjby5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKdwrJ9FYCVpnqHITgGGYb7nzlz+IRJc5Bl8FAepbjXpRh+noV04ttLkoIDlGobtqHbCls+Py7HjIaUFb2/T9Cddhf1mHC4jSp9nXVQmERhYoHfpyEVu4ZU7x5qFw+G4f4am3KzI2d6meWqaJZ3/5Z7bI3+zTmVK1SiSh12zarA/AgMBAAGjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBRzoznNy0g/X4VyqF8jJt+p6z44tDAfBgNVHSMEGDAWgBRDXj/hqU0NPpTv1+Z6O7LQixcgxTANBgkqhkiG9w0BAQUFAAOBgQBHm6MADmMOPj7bBCY1lADpcFuSdGjzNgvUyivRDZcMlwFpLlIl+vNJSSMU6i20bq5o+pOMJsSCjOf9NxT3lcWuxtT4Ea226txs5a15TyGRxBV5MJ4/s6gHaDowJSF/TngsURIKcNqFpLTv5FBCqcGR2kdmvBwtl9319seCoZEZYw==-----END CERTIFICATE-----","type":"externalcacertificate","version":"da56323b-9415-5389-b592-946163695c1e","isSystemDefined":false},"type":"directoryconfiguration"}],"realmId":0,"version":"ropetleon"}},"SpecialRealmWrapper":{"allOf":[{"$ref":"#/definitions/SpecialRealm"},{"$ref":"#/definitions/LinksWrapper"}]},"StaticRouteEntry":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"iface":{"type":"object","$ref":"#/definitions/ReferenceModel"},"networks":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"gateway":{"type":"object","$ref":"#/definitions/ReferenceModel"},"metricValue":{"type":"integer"},"ipType":{"type":"object","$ref":"#/definitions/StaticRouteEntry$IPType"},"id":{"type":"string"},"type":{"type":"string","default":"staticrouteentry"}},"required":["iface","networks","type","gateway","ipType"],"example":{"id":"ce016249-c034-5b1d-810f-2e45a3a01b27","version":"7ae22ee2-9da4-5d69-b955-1521e43a19ed","metricValue":44,"networks":[{"id":"b483d38e-bce7-5bb7-9769-57ec8151bd4f","name":"Network12","description":"Tikafnaz lujis rirunuf sehi ubfewe kabhili zota funfof zagujnuf mel ejejegto fihjunmu ma funah va.","version":"3132162a-9791-5f26-9146-79add126c19f","type":"networkobject","subType":"NETWORK","value":"23.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"c1e8dd5a-a13d-5bcd-8db1-d7895b9a9f3a","name":"Network7","description":"Ehe jeep mijwamad kohi ifegujzek tednadcat dewian tuzdum ripi wondoh woh cugi masal.","version":"dc274636-d6d4-590e-b68f-5cc0d313f41b","type":"networkobject","subType":"NETWORK","value":"71.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":false}},{"id":"0f1e5697-c424-59ac-87dd-bc36e3c08465","name":"Network10","description":"Gowvis opopijab joswirud jezow feud ikibik ruronub oh zoteso ilohhu wif wezagina mi dov riluj luffepcep safes zeksim.","version":"59a184bf-98ff-5f9a-a5c3-67542f91153d","type":"networkobject","subType":"NETWORK","value":"146.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":true}}],"gateway":{"id":"884f239a-2976-5e8e-9cb5-5aeb31fc1554","name":"Network15","description":"Rad ladfevhez vucvibbu omeheh hi rulsusva nut diw sikeznag ehazelu witam tocrah irca wavegezi na nidmimle.","version":"7c7865f0-2dcd-5833-a31b-7fe684b3c2ff","type":"networkobject","subType":"HOST","value":"80.87.24.187","isSystemDefined":false,"metadata":{"referenced":false}},"iface":{"mtu":5818,"enabled":true,"description":"Dib wohomfa it firasugu joev ge nu dab caejuja ba no owezru rijbofnuv da ren.","name":"outside","id":"056580af-b7b5-5ea4-9434-84acde7b7b2b","hardwareName":"GigabitEthernet1/2","macAddress":"B807.AD9D.0E4C","monitorInterface":false,"standbyMacAddress":"8F66.A03C.5C85","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"398d:4979:fd8c:5c79:130d:af73:39ac:575b/32","ipAddress":"0e08:b1ea:5a22:75ba:8e01:eaed:3442:684c/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"264c:f9d4:85a8:fdee:b56d:4b03:96d7:6285","ipAddress":"d0f4:3235:0882:22a2:f8c8:c2db:683c:9639"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"178.90.249.165","standbyIpAddress":"41.101.191.177"}},"version":"53c69bde-efdf-5307-96bb-1d0c92bec9a5","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"PASSIVE","type":"physicalinterface"},"ipType":"IPv6","type":"staticrouteentry"}},"StaticRouteEntryWrapper":{"allOf":[{"$ref":"#/definitions/StaticRouteEntry"},{"$ref":"#/definitions/LinksWrapper"}]},"StaticRouteEntry$IPType":{"type":"string","enum":["IPv4","IPv6"]},"StaticRouteEntryContainer":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"staticrouteentrycontainer"}},"required":["type"]},"StaticRouteEntryContainerWrapper":{"allOf":[{"$ref":"#/definitions/StaticRouteEntryContainer"},{"$ref":"#/definitions/LinksWrapper"}]},"SubInterface":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"hardwareName":{"type":"string"},"monitorInterface":{"type":"boolean"},"ipv4":{"type":"object","$ref":"#/definitions/InterfaceIPv4"},"ipv6":{"type":"object","$ref":"#/definitions/InterfaceIPv6"},"managementOnly":{"type":"boolean"},"linkState":{"type":"object","$ref":"#/definitions/LinkState"},"mtu":{"type":"integer"},"enabled":{"type":"boolean"},"macAddress":{"type":"string"},"standbyMacAddress":{"type":"string"},"managementInterface":{"type":"boolean"},"tenGigabitInterface":{"type":"boolean"},"gigabitInterface":{"type":"boolean"},"id":{"type":"string"},"subIntfId":{"type":"integer"},"vlanId":{"type":"integer"},"type":{"type":"string","default":"subinterface"}},"required":["subIntfId","monitorInterface","type","enabled","mtu"],"example":{"mtu":2652,"enabled":true,"description":"Ta ikoure oznog tu hodul bizzo jimiite men cucif bewtujjof amurulev cuh igu fo siw dupziswul upahig roivipi.","name":"subinterface1name","id":"bdb62102-971e-5472-ab3b-22a7d408dc10","hardwareName":"SubInterface0/1.2","macAddress":"A57C.05DF.7FC0","monitorInterface":false,"standbyMacAddress":"4CE2.828C.AAB1","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"86a0:974f:3bf1:cee2:71c8:e295:2c3e:8d76/32","ipAddress":"9cb8:4589:0220:bd63:4d62:42ac:bd26:e1ac/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"7f67:fa11:adca:bd10:8583:757e:7ebb:be87","ipAddress":"4298:ffb2:30f7:84b6:5106:69aa:343c:8362"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"43.30.66.103","standbyIpAddress":"138.99.49.192"}},"version":"e04406e6-ff09-57ac-9b38-fdd8b19cf6fb","managementInterface":true,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}},"SubInterfaceWrapper":{"allOf":[{"$ref":"#/definitions/SubInterface"},{"$ref":"#/definitions/LinksWrapper"}]},"SystemInformation":{"type":"object","properties":{"ipv4":{"type":"string"},"ipv6":{"type":"string"},"softwareVersion":{"type":"string"},"vdbVersion":{"type":"object","$ref":"#/definitions/VDBVersion"},"sruVersion":{"type":"object","$ref":"#/definitions/SRUVersion"},"snortVersion":{"type":"object","$ref":"#/definitions/SnortVersion"},"databaseInfo":{"type":"object","$ref":"#/definitions/DatabaseInfo"},"platformModel":{"type":"string"},"currentTime":{"type":"integer"},"serialNumber":{"type":"string"},"geolocationVersion":{"type":"object","$ref":"#/definitions/GeolocationVersion"},"securityIntelligenceFeedsInfo":{"type":"object","$ref":"#/definitions/SecurityIntelligenceFeedsInfo"},"modelId":{"type":"string"},"modelNumber":{"type":"string"},"applianceUuid":{"type":"string"},"managementInterfaceName":{"type":"string"},"systemUptime":{"type":"integer"},"id":{"type":"string"},"type":{"type":"string","default":"SystemInformation"}},"required":["type"]},"SystemInformationWrapper":{"allOf":[{"$ref":"#/definitions/SystemInformation"},{"$ref":"#/definitions/LinksWrapper"}]},"TCPPortObject":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"isSystemDefined":{"type":"boolean"},"port":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"tcpportobject"}},"required":["port","type"],"example":{"id":"1a4f8032-f665-5045-b0d8-a48b339750d1","name":"tcp_port_2","description":"Ku soguzsi ragibi nupavidag faji kovor ikikov efa ha cozuju inietu daf hif iso.","version":"b6ff8844-fd46-5e03-9ca4-00b7bc8bd936","type":"tcpportobject","port":8189,"isSystemDefined":false}},"TCPPortObjectWrapper":{"allOf":[{"$ref":"#/definitions/TCPPortObject"},{"$ref":"#/definitions/LinksWrapper"}]},"TagType":{"type":"string","enum":["tag","category"]},"Telemetry":{"type":"object","properties":{"telemetryData":{"type":"object"},"id":{"type":"string"},"type":{"type":"string","default":"Telemetry"}},"required":["type"]},"TelemetryWrapper":{"allOf":[{"$ref":"#/definitions/Telemetry"},{"$ref":"#/definitions/LinksWrapper"}]},"TelemetryJobHistory":{"type":"object","properties":{"version":{"type":"string"},"jobName":{"type":"string"},"jobDescription":{"type":"string"},"user":{"type":"string"},"startDateTime":{"type":"string"},"endDateTime":{"type":"string"},"status":{"type":"object","$ref":"#/definitions/JobHistoryEntity$JobHistoryStatus"},"statusMessage":{"type":"string"},"scheduleUuid":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"telemetryjobhistory"}},"required":["type"]},"TelemetrySchedule":{"type":"object","properties":{"version":{"type":"string"},"scheduleType":{"type":"object","$ref":"#/definitions/JobExecutionType"},"user":{"type":"string"},"forceOperation":{"type":"boolean"},"jobHistoryUuid":{"type":"string"},"runTimes":{"type":"string"},"jobName":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"telemetryschedule"}},"required":["type"]},"TestDirectory":{"type":"object","properties":{"realmUUID":{"type":"string"},"hostname":{"type":"string"},"directoryUsername":{"type":"string"},"directoryPassword":{"type":"string"},"port":{"type":"integer"},"protocol":{"type":"object","$ref":"#/definitions/EncryptionProtocol"},"sslCertUUID":{"type":"string"},"sslCertString":{"type":"string"},"baseDN":{"type":"string"},"statusCode":{"type":"string"},"statusMessage":{"type":"string"},"linaStatusMessage":{"type":"string"},"linaStatusCode":{"type":"integer"},"id":{"type":"string"},"type":{"type":"string","default":"TestDirectory"}},"required":["directoryPassword","hostname","port","directoryUsername","baseDN","type"]},"TestDirectoryWrapper":{"allOf":[{"$ref":"#/definitions/TestDirectory"},{"$ref":"#/definitions/LinksWrapper"}]},"TestIdentityServicesEngineConnectivity":{"type":"object","properties":{"ftdCertificateUUID":{"type":"string"},"pxGridCertificateUUID":{"type":"string"},"mntCertificateUUID":{"type":"string"},"statusCode":{"type":"string"},"statusMessage":{"type":"string"},"iseLogMessage":{"type":"string"},"secondaryStatusCode":{"type":"string"},"secondaryStatusMessage":{"type":"string"},"primaryIseServer":{"type":"string"},"secondaryIseServer":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"TestIdentityServicesEngineConnectivity"}},"required":["pxGridCertificateUUID","ftdCertificateUUID","mntCertificateUUID","type"]},"TestIdentityServicesEngineConnectivityWrapper":{"allOf":[{"$ref":"#/definitions/TestIdentityServicesEngineConnectivity"},{"$ref":"#/definitions/LinksWrapper"}]},"TestIdentitySource":{"type":"object","properties":{"identitySource":{"type":"object","$ref":"#/definitions/IdentitySourceBase"},"username":{"type":"string"},"password":{"type":"string","default":"*********"},"statusCode":{"type":"integer"},"statusMessage":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"TestIdentitySource"}},"required":["identitySource","password","type","username"],"example":{"statusCode":200,"identitySource":[{"id":"cf19a63b-a01a-5349-926c-222d411d08dc","version":"e7bbd852-121f-5426-8455-2daf6a00648f","name":"RadiusIdentitySource10","description":"Bucledas fegca as wupmucet rofi oproeca cahuru meide fi jegisege omnikgok dimturpub wivtin bah si.","host":"204.94.100.46","timeout":59,"serverAuthenticationPort":22241,"serverSecretKey":"","capabilities":["ACCOUNTING"],"type":"radiusidentitysource"},{"id":"d8d577cf-3526-56ab-8322-7a7cff8cbd2a","version":"0683d1ff-ff25-5aca-806a-ee6dcbf97678","name":"RadiusIdentitySource12","description":"Bizufte ol riv purvefok unune wa jo ugsisot vahlegsev wokulfoj magiv gehipo kep weonuze lirjid ecriv mo.","host":"154.4.38.85","timeout":212,"serverAuthenticationPort":51259,"serverSecretKey":"","capabilities":["ACCOUNTING","AUTHENTICATION","AUTHORIZATION","DIRECTORY_SERVICES","PASSIVE_IDENTITY"],"type":"radiusidentitysource"}],"username":"test","password":"****","statusMessage":"The connection test succeeded","id":"0c733070-4faf-5c45-8fc4-e8bca1644041","type":"testidentitysource"}},"TestIdentitySourceWrapper":{"allOf":[{"$ref":"#/definitions/TestIdentitySource"},{"$ref":"#/definitions/LinksWrapper"}]},"Time":{"type":"object","properties":{"value":{"type":"integer"},"timeUnit":{"type":"string","enum":["NANOSECONDS","MICROSECONDS","MILLISECONDS","SECONDS","MINUTES","HOURS","DAYS"]},"type":{"type":"string","default":"time"}},"required":["type"]},"TimeZones":{"type":"object","properties":{"timeZones":{"type":"array","items":{"type":"string"}},"id":{"type":"string"},"type":{"type":"string","default":"TimeZones"}},"required":["type"]},"TimeZonesWrapper":{"allOf":[{"$ref":"#/definitions/TimeZones"},{"$ref":"#/definitions/LinksWrapper"}]},"TrafficUser":{"type":"object","properties":{"version":{"type":"string"},"realmId":{"type":"integer"},"realmName":{"type":"string"},"type":{"type":"string","default":"trafficuser"},"id":{"type":"string"},"name":{"type":"string"}},"required":["realmId","realmName","id","type"],"example":{"id":"f7417bdc-8866-5397-8f4b-e1f2d7956bcc","name":"User 31","realmName":"guhecogguk","type":"trafficuser","realmId":0,"version":"asogtiodo"}},"TrafficUserWrapper":{"allOf":[{"$ref":"#/definitions/TrafficUser"},{"$ref":"#/definitions/LinksWrapper"}]},"TrafficUserGroup":{"type":"object","properties":{"version":{"type":"string"},"realmId":{"type":"integer"},"realmName":{"type":"string"},"type":{"type":"string","default":"trafficusergroup"},"id":{"type":"string"},"name":{"type":"string"}},"required":["realmId","realmName","id","type"],"example":{"id":"82e234e2-f6fe-5d98-bbc0-0d6c7e26482d","name":"User Group 1","realmName":"batziloij","type":"trafficusergroup","realmId":2,"version":"golzegnile"}},"TrafficUserGroupWrapper":{"allOf":[{"$ref":"#/definitions/TrafficUserGroup"},{"$ref":"#/definitions/LinksWrapper"}]},"TroubleshootFile":{"type":"object","properties":{"file":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"TroubleshootFile"}},"required":["type"]},"TroubleshootFileWrapper":{"allOf":[{"$ref":"#/definitions/TroubleshootFile"},{"$ref":"#/definitions/LinksWrapper"}]},"TroubleshootJobHistory":{"type":"object","properties":{"version":{"type":"string"},"jobName":{"type":"string"},"jobDescription":{"type":"string"},"user":{"type":"string"},"startDateTime":{"type":"string"},"endDateTime":{"type":"string"},"status":{"type":"object","$ref":"#/definitions/JobHistoryEntity$JobHistoryStatus"},"statusMessage":{"type":"string"},"scheduleUuid":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"troubleshootjobhistory"}},"required":["type"]},"TroubleshootJobHistoryWrapper":{"allOf":[{"$ref":"#/definitions/TroubleshootJobHistory"},{"$ref":"#/definitions/LinksWrapper"}]},"TunnelPolicy":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"tunnelpolicy"}},"required":["type"]},"TunnelPolicyDeployInfo":{"type":"object","properties":{"version":{"type":"string"},"ruleContainerUuid":{"type":"string"},"deployedOnDevice":{"type":"boolean"},"ruleDeployInfoEntries":{"type":"array","items":{"type":"object","$ref":"#/definitions/AccessControlRuleDeployInfo"}},"id":{"type":"string"},"type":{"type":"string","default":"tunnelpolicydeployinfo"}},"required":["type"]},"TunnelRule":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"ruleId":{"type":"integer"},"sourceZones":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"destinationZones":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"sourceNetworks":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"destinationNetworks":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"sourcePorts":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"destinationPorts":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"ruleAction":{"type":"object","$ref":"#/definitions/AccessControlRuleBase$AcRuleAction"},"eventLogAction":{"type":"object","$ref":"#/definitions/AccessControlRuleBase$EventLogAction"},"bidirectional":{"type":"boolean"},"id":{"type":"string"},"type":{"type":"string","default":"tunnelrule"}},"required":["type"]},"TunnelZone":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"tunnelzone"}},"required":["type"]},"TypeCondition":{"type":"object","properties":{"applicationType":{"type":"object","$ref":"#/definitions/ApplicationType"},"type":{"type":"string","default":"typecondition"}},"required":["type"]},"UDPPortObject":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"isSystemDefined":{"type":"boolean"},"port":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"udpportobject"}},"required":["port","type"],"example":{"id":"34f7bed0-39b1-5064-a6e7-27b5431b2066","name":"udp_port_2","description":"Eji leklo infagziv wut vujapvug avvutu toduj dulnarse ifdo bipujhas ajo vualo efapomiw ge nepe gomhuh.","version":"5785591f-a79c-5ff4-bc82-b3dd6d70a236","type":"udpportobject","port":8830,"isSystemDefined":false}},"UDPPortObjectWrapper":{"allOf":[{"$ref":"#/definitions/UDPPortObject"},{"$ref":"#/definitions/LinksWrapper"}]},"URLCacheReloadTTL":{"type":"string","enum":["NEVER","TWO_HRS","FOUR_HRS","EIGHT_HRS","TWELVE_HRS","TWENTY_FOUR_HRS","FOURTY_EIGHT_HRS","ONE_WEEK"]},"URLCategory":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"urlCategoryId":{"type":"integer"},"deprecated":{"type":"boolean"},"id":{"type":"string"},"type":{"type":"string","default":"urlcategory"}},"required":["urlCategoryId","type"],"example":{"id":"5c03856a-3c13-5838-b397-19e4eb343d1d","version":"4399e700-e8df-5a73-a565-c19049383762","name":"Health and Medicine","deprecated":false,"urlCategoryId":1,"type":"urlcategory"}},"URLCategoryWrapper":{"allOf":[{"$ref":"#/definitions/URLCategory"},{"$ref":"#/definitions/LinksWrapper"}]},"URLCategoryMatcher":{"type":"object","properties":{"urlCategory":{"type":"object","$ref":"#/definitions/ReferenceModel"},"urlReputation":{"type":"object","$ref":"#/definitions/ReferenceModel"},"type":{"type":"string","default":"urlcategorymatcher"}},"required":["type"],"example":{"urlReputation":{"id":"00d12166-18a1-568d-8878-cbe92b44602c","name":"Risk unknown","index":0,"startPercentage":0,"endPercentage":0,"version":"b5c74a5a-ad53-5a53-91d1-505f3d64d5d5","type":"urlreputation"},"urlCategory":{"id":"5c03856a-3c13-5838-b397-19e4eb343d1d","version":"4399e700-e8df-5a73-a565-c19049383762","name":"Health and Medicine","deprecated":false,"urlCategoryId":1,"type":"urlcategory"},"type":"urlcategorymatcher"}},"URLObject":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"url":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"urlobject"}},"required":["type","url"],"example":{"id":"8c8ec923-9d7c-59f2-8d13-7db0e9d0fc55","version":"inkitfovat","name":"Url1","description":"Cukji verwe wafit hada sirivza uso awba mezjaje gi bavtiim satudu cevonlem nugocok ibnaar zasado.","url":"http://geta.org/ozmeg","type":"urlobject"}},"URLObjectWrapper":{"allOf":[{"$ref":"#/definitions/URLObject"},{"$ref":"#/definitions/LinksWrapper"}]},"URLObjectGroup":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"id":{"type":"string"},"objects":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"type":{"type":"string","default":"urlobjectgroup"}},"required":["type"],"example":{"id":"ce7eba4c-0b9a-5a3f-bb88-6ce71398fbc8","version":"epozikeccow","name":"UrlGroup1","description":"Kajili nockugda van cikepuh toavah kebpi muwnumo tezotu pelapdec sif fepgo hul sacwav na.","objects":[{"id":"d31c2d0e-3ad0-5053-9a7b-a0ef29eff5f9","version":"ajolouhog","name":"Url8","description":"Kirgirac rireto vu nimu kek bo dosoze tillen wisud kerecfar evibur wen cehpa weg ju doneh.","url":"http://de.co.uk/neni","type":"urlobject"},{"id":"d72bd5cf-710c-5048-b0fa-1bda6746520d","version":"onaisujuja","name":"Url3","description":"Nolze no gavrofkep dog di buc ta oko kon pigu fuezo uzara.","url":"http://gagonofi.edu/letiga","type":"urlobject"}],"type":"urlobjectgroup"}},"URLObjectGroupWrapper":{"allOf":[{"$ref":"#/definitions/URLObjectGroup"},{"$ref":"#/definitions/LinksWrapper"}]},"URLReputation":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"index":{"type":"integer"},"startPercentage":{"type":"integer"},"endPercentage":{"type":"integer"},"id":{"type":"string"},"type":{"type":"string","default":"urlreputation"}},"required":["index","endPercentage","type","startPercentage"],"example":{"id":"00d12166-18a1-568d-8878-cbe92b44602c","name":"Risk unknown","index":0,"startPercentage":0,"endPercentage":0,"version":"b5c74a5a-ad53-5a53-91d1-505f3d64d5d5","type":"urlreputation"}},"URLReputationWrapper":{"allOf":[{"$ref":"#/definitions/URLReputation"},{"$ref":"#/definitions/LinksWrapper"}]},"UpgradeFile":{"type":"object","properties":{"version":{"type":"string"},"user":{"type":"string"},"uploadDate":{"type":"string"},"fileSize":{"type":"integer"},"upgradeFileName":{"type":"string"},"updateVersion":{"type":"string"},"upgradeFrom":{"type":"string"},"rebootRequired":{"type":"boolean"},"id":{"type":"string"},"upgradeType":{"type":"string"},"type":{"type":"string","default":"upgradefile"}},"required":["type"]},"UpgradeFileWrapper":{"allOf":[{"$ref":"#/definitions/UpgradeFile"},{"$ref":"#/definitions/LinksWrapper"}]},"UploadBackupStatus":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"uploadbackupstatus"}},"required":["type"]},"User":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"password":{"type":"string","default":"*********"},"newPassword":{"type":"string","default":"*********"},"userPreferences":{"type":"object","$ref":"#/definitions/UserPreferences"},"userRole":{"type":"string"},"identitySourceId":{"type":"string"},"userServiceTypes":{"type":"array","items":{"type":"object","$ref":"#/definitions/UserServiceType"}},"id":{"type":"string"},"type":{"type":"string","default":"user"}},"required":["identitySourceId","userServiceTypes","type"],"example":{"id":"default-user-id","version":"d30e1b78-7df4-5efd-aa8d-4a796fed3440","name":"admin","userServiceTypes":["MGMT"],"userRole":"ROLE_ADMIN","identitySourceId":"LOCAL","userPreferences":{"colorTheme":"NORMAL_CISCO_IDENTITY","preferredTimeZone":"(-10:00) Pacific/Honolulu","type":"userpreferences"},"type":"user"}},"UserWrapper":{"allOf":[{"$ref":"#/definitions/User"},{"$ref":"#/definitions/LinksWrapper"}]},"UserBase":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"userbase"}},"required":["type"]},"UserPreferences":{"type":"object","properties":{"preferredTimeZone":{"type":"string"},"colorTheme":{"type":"object","$ref":"#/definitions/UserPreferences$ColorTheme"},"type":{"type":"string","default":"userpreferences"}},"required":["colorTheme","type"]},"UserPreferences$ColorTheme":{"type":"string","enum":["NORMAL_CISCO_IDENTITY","NORMAL_ORANGE","NORMAL_BLUE","HIGH_CONTRAST_MODE","FILTERED_COLORS"]},"UserRole":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"permissions":{"type":"array","items":{"type":"object","$ref":"#/definitions/Permission"}},"id":{"type":"string"},"type":{"type":"string","default":"userrole"}},"required":["type"]},"UserServiceType":{"type":"string","enum":["RA_VPN","MGMT"]},"VDBUpdateImmediate":{"type":"object","properties":{"version":{"type":"string"},"scheduleType":{"type":"object","$ref":"#/definitions/JobExecutionType"},"user":{"type":"string"},"forceOperation":{"type":"boolean"},"jobHistoryUuid":{"type":"string"},"ipAddress":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"deployAfterUpdate":{"type":"boolean"},"jobName":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"vdbupdateimmediate"}},"required":["type"]},"VDBUpdateImmediateWrapper":{"allOf":[{"$ref":"#/definitions/VDBUpdateImmediate"},{"$ref":"#/definitions/LinksWrapper"}]},"VDBUpdateSchedule":{"type":"object","properties":{"version":{"type":"string"},"scheduleType":{"type":"object","$ref":"#/definitions/JobExecutionType"},"user":{"type":"string"},"forceOperation":{"type":"boolean"},"jobHistoryUuid":{"type":"string"},"runTimes":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"deployAfterUpdate":{"type":"boolean"},"jobName":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"vdbupdateschedule"}},"required":["type"],"example":{"id":"182a824b-a1fa-548a-805b-72c8e4191baf","version":"442fb86d-6b22-5575-aa23-0401713c4b2b","hostname":"Sizbes dodvabo sumlaiv acudele niw duwcaik nifvilja fodono giblujku ticib bicziaf sejupi jugufze suc opwupde jepju.","deployAfterUpdate":true,"type":"vdbupdateschedule","runTimes":"0 04 03 * * ?","scheduleType":"DAILY"}},"VDBUpdateScheduleWrapper":{"allOf":[{"$ref":"#/definitions/VDBUpdateSchedule"},{"$ref":"#/definitions/LinksWrapper"}]},"VDBVersion":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"lastSuccessVDBDate":{"type":"string"},"vdbCurrentVersion":{"type":"string"},"vdbCurrentBuild":{"type":"string"},"vdbReleaseDate":{"type":"string"},"appIDRevision":{"type":"string"},"navlRevision":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"vdbversion"}},"required":["type"]},"VlanTag":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"value":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"vlantag"}},"required":["type"]},"VlanTagGroup":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"vlanTags":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"id":{"type":"string"},"type":{"type":"string","default":"vlantaggroup"}},"required":["type"]},"WebAnalyticsSetting":{"type":"object","properties":{"version":{"type":"string"},"disabled":{"type":"boolean"},"id":{"type":"string"},"type":{"type":"string","default":"webanalyticssetting"}},"required":["type"],"example":{"id":"f306c79a-98aa-5f18-bfd0-fd37bd76031a","version":"a22269fd-651b-5d04-89de-a72ec792c9ea","disabled":true,"type":"webanalyticssetting"}},"WebAnalyticsSettingWrapper":{"allOf":[{"$ref":"#/definitions/WebAnalyticsSetting"},{"$ref":"#/definitions/LinksWrapper"}]},"AccessEntryBase":{"type":"object","properties":{"action":{"type":"object","$ref":"#/definitions/EntryAction"},"type":{"type":"string","default":"accessentrybase"}},"required":["action","type"]},"ExtendedAccessEntry":{"type":"object","properties":{"action":{"type":"object","$ref":"#/definitions/EntryAction"},"sourceNetworks":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"destinationNetworks":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"sourcePorts":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"destinationPorts":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"logging":{"type":"object","$ref":"#/definitions/LoggingOption"},"logLevel":{"type":"object","$ref":"#/definitions/LogLevel"},"logInterval":{"type":"integer"},"type":{"type":"string","default":"extendedaccessentry"}},"required":["logging","action","type"]},"ExtendedAccessList":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"entries":{"type":"array","items":{"type":"object","$ref":"#/definitions/ExtendedAccessEntry"}},"id":{"type":"string"},"type":{"type":"string","default":"extendedaccesslist"}},"required":["entries","type"],"example":{"id":"0aa9ce96-ad85-593e-9b9d-2b19067e41d7","version":"9c70faf3-3711-5b55-a9ea-e018da07db33","name":"CLI Object 21","description":"Tu vahinomud nam avaefo do nudduer rac kasali je ettuplem hi cu jo selwuzwek ra topuda bad ehruv.","type":"extendedaccesslist"}},"ExtendedAccessListWrapper":{"allOf":[{"$ref":"#/definitions/ExtendedAccessList"},{"$ref":"#/definitions/LinksWrapper"}]},"LogLevel":{"type":"string","enum":["ALERT","CRITICAL","DEBUGGING","EMERGENCY","ERROR","INFORMATIONAL","NOTIFICATION","WARNING"]},"LoggingOption":{"type":"string","enum":["DEFAULT","DISABLED","PER_ACCESS_LIST_ENTRY"]},"StandardAccessEntry":{"type":"object","properties":{"action":{"type":"object","$ref":"#/definitions/EntryAction"},"networks":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"type":{"type":"string","default":"standardaccessentry"}},"required":["action","networks","type"]},"StandardAccessList":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"entries":{"type":"array","items":{"type":"object","$ref":"#/definitions/StandardAccessEntry"}},"id":{"type":"string"},"type":{"type":"string","default":"standardaccesslist"}},"required":["entries","type"],"example":{"id":"7f1f5ad0-8e61-5c85-9c95-0aa2bec34b75","version":"c83f4693-2a2c-52b9-8b00-c85660509149","name":"CLI Object 16","description":"Bawra aviuvebed gukulcum su bo usamosag viva noslar fes fe guzneda hu.","type":"standardaccesslist"}},"StandardAccessListWrapper":{"allOf":[{"$ref":"#/definitions/StandardAccessList"},{"$ref":"#/definitions/LinksWrapper"}]},"ASPathEntry":{"type":"object","properties":{"action":{"type":"object","$ref":"#/definitions/EntryAction"},"regularExpression":{"type":"string"},"type":{"type":"string","default":"aspathentry"}},"required":["regularExpression","action","type"]},"ASPathList":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"entries":{"type":"array","items":{"type":"object","$ref":"#/definitions/ASPathEntry"}},"id":{"type":"string"},"type":{"type":"string","default":"aspathlist"}},"required":["entries","type"],"example":{"id":"01e502f9-7608-534a-8e42-73ba411232ab","version":"5643f7c5-5e12-53c1-a916-05bdd934498e","name":"CLI Object 1","description":"Lumem wagim cosbo dimo te jalogric jeggow ju zohize sum desvevhar zafuoru cewun sej.","type":"aspathlist"}},"ASPathListWrapper":{"allOf":[{"$ref":"#/definitions/ASPathList"},{"$ref":"#/definitions/LinksWrapper"}]},"AuditDeploymentEvent":{"type":"object","properties":{"sourceIp":{"type":"string"},"userName":{"type":"string"},"timeStamp":{"type":"integer"},"eventData":{"type":"object","$ref":"#/definitions/ReferenceModel"},"entityId":{"type":"string"},"entityName":{"type":"string"},"entityType":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"auditdeploymentevent"}},"required":["type"]},"AuditDiscardPendingChangesEvent":{"type":"object","properties":{"sourceIp":{"type":"string"},"userName":{"type":"string"},"timeStamp":{"type":"integer"},"id":{"type":"string"},"type":{"type":"string","default":"auditdiscardpendingchangesevent"}},"required":["type"]},"AuditEntityCreateEvent":{"type":"object","properties":{"sourceIp":{"type":"string"},"userName":{"type":"string"},"timeStamp":{"type":"integer"},"entityId":{"type":"string"},"entityName":{"type":"string"},"entityType":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"auditentitycreateevent"}},"required":["type"]},"AuditEntityDeleteEvent":{"type":"object","properties":{"sourceIp":{"type":"string"},"userName":{"type":"string"},"timeStamp":{"type":"integer"},"entityId":{"type":"string"},"entityName":{"type":"string"},"entityType":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"auditentitydeleteevent"}},"required":["type"]},"AuditEntityUpdateEvent":{"type":"object","properties":{"sourceIp":{"type":"string"},"userName":{"type":"string"},"timeStamp":{"type":"integer"},"entityId":{"type":"string"},"entityName":{"type":"string"},"entityType":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"auditentityupdateevent"}},"required":["type"]},"AuditEvent":{"type":"object","properties":{"sourceIp":{"type":"string"},"userName":{"type":"string"},"timeStamp":{"type":"integer"},"eventData":{"type":"object","$ref":"#/definitions/ReferenceModel"},"id":{"type":"string"},"type":{"type":"string","default":"auditevent"}},"required":["type"]},"AuditEventWrapper":{"allOf":[{"$ref":"#/definitions/AuditEvent"},{"$ref":"#/definitions/LinksWrapper"}]},"AuditFailedLoginEvent":{"type":"object","properties":{"sourceIp":{"type":"string"},"userName":{"type":"string"},"timeStamp":{"type":"integer"},"id":{"type":"string"},"type":{"type":"string","default":"auditfailedloginevent"}},"required":["type"]},"AuditHaActionEvent":{"type":"object","properties":{"sourceIp":{"type":"string"},"userName":{"type":"string"},"timeStamp":{"type":"integer"},"eventData":{"type":"object","$ref":"#/definitions/ReferenceModel"},"id":{"type":"string"},"type":{"type":"string","default":"audithaactionevent"}},"required":["type"]},"AuditJobExecutionEvent":{"type":"object","properties":{"sourceIp":{"type":"string"},"userName":{"type":"string"},"timeStamp":{"type":"integer"},"eventData":{"type":"object","$ref":"#/definitions/ReferenceModel"},"entityId":{"type":"string"},"entityName":{"type":"string"},"entityType":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"auditjobexecutionevent"}},"required":["type"]},"AuditLoginEvent":{"type":"object","properties":{"sourceIp":{"type":"string"},"userName":{"type":"string"},"timeStamp":{"type":"integer"},"id":{"type":"string"},"type":{"type":"string","default":"auditloginevent"}},"required":["type"]},"AuditLogoutEvent":{"type":"object","properties":{"sourceIp":{"type":"string"},"userName":{"type":"string"},"timeStamp":{"type":"integer"},"id":{"type":"string"},"type":{"type":"string","default":"auditlogoutevent"}},"required":["type"],"example":{"id":"ed3a462e-224b-5b1e-9240-77e23eef167a","timeStamp":1530997098281,"sourceIp":"176.217.243.34","userName":"admin","type":"auditlogoutevent"}},"AuditOutOfBandChangeEvent":{"type":"object","properties":{"sourceIp":{"type":"string"},"userName":{"type":"string"},"timeStamp":{"type":"integer"},"entityId":{"type":"string"},"entityName":{"type":"string"},"entityType":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"auditoutofbandchangeevent"}},"required":["type"]},"AuditEntityChange":{"type":"object","properties":{"version":{"type":"string"},"auditEventId":{"type":"string"},"entityDiff":{"type":"object","$ref":"#/definitions/BaseEntityDiff"},"id":{"type":"string"},"type":{"type":"string","default":"auditentitychange"}},"required":["type"],"example":{"id":"7a932bc2-57f5-5899-8361-61f41a4290bf","type":"auditentitychange","auditEventId":"7a3cfc08-d291-5480-b3b8-09bf7088d157","entityDiff":{"entityId":"701dd5c6-24a5-58cf-804c-54e7dcc81cd9","entityType":"securityintelligenceupdatefeedsschedule","referencesDeleted":[],"valuesDeleted":[{"fieldName":"hostname","oldValue":"Hukas joovunes kejwighu nihem wo gugego misappa dop imofimnu keiziwu idagid icjavvu.","type":"valuedelete"},{"fieldName":"scheduleType","oldValue":"HOURLY","type":"valuedelete"}],"type":"entitydelete"}}},"AuditEntityChangeWrapper":{"allOf":[{"$ref":"#/definitions/AuditEntityChange"},{"$ref":"#/definitions/LinksWrapper"}]},"AuditBaseEventData":{},"AuditDeploymentData":{"type":"object","properties":{"startTimeStamp":{"type":"integer"},"endTimeStamp":{"type":"integer"},"status":{"type":"object","$ref":"#/definitions/AuditProcessStatus"},"errorMessage":{"type":"string"},"deploymentStatusUuid":{"type":"string"}}},"AuditHAActionData":{"type":"object","properties":{"haAction":{"type":"string"}}},"AuditJobExecutionData":{"type":"object","properties":{"jobHistoryUuid":{"type":"string"},"scheduleType":{"type":"object","$ref":"#/definitions/JobExecutionType"},"jobVersion":{"type":"string"},"status":{"type":"object","$ref":"#/definitions/AuditProcessStatus"}}},"AuditProcessStatus":{"type":"string","enum":["STARTED","COMPLETED","FAILED"]},"AuthenticationStatus":{"type":"string","enum":["SUCCESSFUL","FAILED"]},"IdentitySourceProtocolType":{"type":"string","enum":["HTTPS","SSH"]},"OAuthTokenInfo":{"type":"object","properties":{"version":{"type":"string"},"customTokenInfo":{"type":"array","items":{"type":"string"}},"customTokenInfoEntries":{"type":"array","items":{"type":"object","$ref":"#/definitions/OAuthTokenInfo$TokenInfoEntry"}},"id":{"type":"string"},"type":{"type":"string","default":"oauthtokeninfo"}},"required":["type"]},"OAuthTokenInfo$TokenInfoEntry":{"type":"object","properties":{"tokenId":{"type":"string"},"subject":{"type":"string"},"issuedAt":{"type":"integer"},"expireAt":{"type":"integer"},"refreshExpireAt":{"type":"integer"},"userUuid":{"type":"string"},"userRole":{"type":"string"}}},"UseLocal":{"type":"string","enum":["BEFORE","AFTER","NEVER","NOT_APPLICABLE"]},"Secret":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"password":{"type":"string","default":"*********"},"id":{"type":"string"},"type":{"type":"string","default":"secret"}},"required":["password","type"],"example":{"id":"a6bb23ab-ae4f-5241-97fb-9f18daec1e8f","version":"247dda8d-9759-56f8-b3b7-ece9fd52a616","description":"Wa ne get da rejehoz nejidek laz sih lesdezoc cuso viriav nuc la cohica kowpuzloh ideci.","name":"secret_1","password":"*********","type":"secret"}},"SecretWrapper":{"allOf":[{"$ref":"#/definitions/Secret"},{"$ref":"#/definitions/LinksWrapper"}]},"VariableBase":{"type":"object","properties":{"name":{"type":"string"},"variableType":{"type":"object","$ref":"#/definitions/VariableType"},"value":{"type":"string"},"entityValue":{"type":"object","$ref":"#/definitions/ReferenceModel"},"type":{"type":"string","default":"variablebase"}},"required":["variableType","name","type"]},"VariableType":{"type":"string","enum":["OBJECT_NAME","STRING","NUMERIC","BOOLEAN","IP","IPV6","MULTI_ENUM","NETWORK","NETWORK_OBJECT","PORT","INTERFACE","SECRET","ASPATH","COMMUNITY_LIST","STANDARD_COMMUNITY_LIST","EXPANDED_COMMUNITY_LIST","ACCESS_LIST","STANDARD_ACCESS_LIST","EXTENDED_ACCESS_LIST","PREFIX_LIST","IPV4_PREFIX_LIST","IPV6_PREFIX_LIST","POLICY_LIST","ROUTE_MAP","ENUM","MULTI_NETWORK","MULTI_PORT","MULTI_INTERFACE","MULTI_ASPATH","MULTI_COMMUNITY_LIST","MULTI_POLICY_LIST","MULTI_ACCESS_LIST","MULTI_IPV4_PREFIX_LIST","MULTI_STANDARD_ACCESS_LIST"]},"VariableType$Metatype":{"type":"string","enum":["VALUE","ENTITY","CONSTANT","ENTITIES","UNKNOWN"]},"FlexConfigObject":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"lines":{"type":"array","items":{"type":"string"}},"negateLines":{"type":"array","items":{"type":"string"}},"isBlacklisted":{"type":"boolean"},"variables":{"type":"array","items":{"type":"object","$ref":"#/definitions/FlexVariable"}},"id":{"type":"string"},"type":{"type":"string","default":"flexconfigobject"}},"required":["isBlacklisted","type"],"example":{"id":"322523e2-a2e3-11e7-aeff-41d2798f8ab7","version":"321aeab1-a2e3-11e7-aeff-1b3da2d74e21","name":"error_with_lines","variables":[{"name":"user","variableType":"STRING","value":"virgil","type":"flexvariable"}],"isBlacklisted":false,"lines":["banner login hello - line 1 {{ user }}","banner login hello - line 2","banner login hello - line 3","exit"],"negateLines":["no banner login hello - line 2","no banner login hello - line 1 {{user }}"],"type":"flexconfigobject","links":{"self":"https://10.88.127.219:28643/api/fdm/v2/object/flexconfigobjects/322523e2-a2e3-11e7-aeff-41d2798f8ab7"}}},"FlexConfigObjectWrapper":{"allOf":[{"$ref":"#/definitions/FlexConfigObject"},{"$ref":"#/definitions/LinksWrapper"}]},"FlexConfigPolicy":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"flexConfigObjects":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"id":{"type":"string"},"type":{"type":"string","default":"flexconfigpolicy"}},"required":["type"],"example":{"id":"aff0984f-abed-5303-8a94-8f191c0d7bec","version":"0c322316-a537-5e0d-9ca0-04f09a0d6ad0","name":"CLI_template_group_1","flexConfigObjects":[{"id":"322523e2-a2e3-11e7-aeff-41d2798f8ab7","version":"321aeab1-a2e3-11e7-aeff-1b3da2d74e21","name":"error_with_lines","variables":[{"name":"user","variableType":"STRING","value":"virgil","type":"flexvariable"}],"isBlacklisted":false,"lines":["banner login hello - line 1 {{ user }}","banner login hello - line 2","banner login hello - line 3","exit"],"negateLines":["no banner login hello - line 2","no banner login hello - line 1 {{user }}"],"type":"flexconfigobject","links":{"self":"https://10.88.127.219:28643/api/fdm/v2/object/flexconfigobjects/322523e2-a2e3-11e7-aeff-41d2798f8ab7"}},{"id":"123523e2-a2e3-11e7-aeff-41d2798f8321","version":"123aeab1-a2e3-11e7-aeff-1b3da2d74321","name":"error_with_negatelines","variables":[{"name":"user","variableType":"STRING","value":"virgil","type":"flexvariable"}],"isBlacklisted":true,"lines":["banner login hello - line 1 {{ user }}","banner login hello - line 2","exit"],"negateLines":["no banner login hello - line 1","no banner login hello - line 2 {{user }}","no banner login hello - line 3 {{user }}","no banner login hello - line 4 {{user }}"],"type":"flexconfigobject","links":{"self":"https://10.88.127.219:28643/api/fdm/v2/object/flexconfigobjects/123523e2-a2e3-11e7-aeff-41d2798f8321"}},{"id":"5463523e2-a2e3-11e7-aeff-41d2798f8098","version":"123aeab1-a2e3-11e7-aeff-1b3da2d74321","name":"error_with_negatelines_and_lines","variables":[{"name":"user","variableType":"STRING","value":"virgil","type":"flexvariable"}],"isBlacklisted":false,"lines":["banner login hello - line 1 {{ user }}","banner login hello - line 2","exit"],"negateLines":["no banner login hello - line 1","no banner login hello - line 2 {{user }}","no banner login hello - line 3 {{user }}","no banner login hello - line 4 {{user }}"],"type":"flexconfigobject","links":{"self":"https://10.88.127.219:28643/api/fdm/v2/object/flexconfigobjects/123523e2-a2e3-11e7-aeff-41d2798f8321"}},{"id":"23","version":"","name":"test_deployment0","description":"test0","variables":[],"isBlacklisted":false,"lines":["object-network ww"],"negateLines":["no test"],"type":"flexconfigobject"},{"id":"23b376d8-7672-5159-a5c3-2bde8079c56b","version":"79f3ec67-13b6-5bb7-ade1-111791eb54e1","name":"test_deployment1","description":"test1","variables":[],"isBlacklisted":false,"lines":["object-network TestNew","line2","line3","line4","line5"],"negateLines":["no test"],"type":"flexconfigobject"},{"id":"eb4d512c-a2c1-11e7-a904-4dbbdaae4d62","version":"eb4d512b-a2c1-11e7-a904-5dbcfd211dbb","name":"Test_CLI_Template_2","description":"test","variables":[],"isBlacklisted":false,"lines":["test","ospf {{id}}","area {{area-id}}","area {{area-id}} nssa"],"negateLines":["no ospf {{id}}"],"type":"flexconfigobject","links":{"self":"https://10.88.127.213:2915/api/fdm/v2/object/flexconfigobjects/eb4d512c-a2c1-11e7-a904-4dbbdaae4d62"}},{"id":"33b376d8-7672-5159-a5c3","version":"79","name":"test_deployment2","description":"test1","variables":[],"isBlacklisted":false,"lines":["object-network TestNew","2line2","2line3","2line4","2line5"],"negateLines":["no test"],"type":"flexconfigobject"}],"type":"flexconfigpolicy"}},"FlexConfigPolicyWrapper":{"allOf":[{"$ref":"#/definitions/FlexConfigPolicy"},{"$ref":"#/definitions/LinksWrapper"}]},"FlexVariable":{"type":"object","properties":{"name":{"type":"string"},"variableType":{"type":"object","$ref":"#/definitions/VariableType"},"value":{"type":"string"},"entityValue":{"type":"object","$ref":"#/definitions/ReferenceModel"},"type":{"type":"string","default":"flexvariable"}},"required":["variableType","name","type"]},"SmartCLIEntity":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"smartclientity"}},"required":["type"]},"CloudActionType":{"type":"string","enum":["TOKEN_ENROLL_CDO","AUTO_ENROLL_NETWORK_PARTICIPATION"]},"CloudManagement":{"type":"object","properties":{"version":{"type":"string"},"scheduleType":{"type":"object","$ref":"#/definitions/JobExecutionType"},"user":{"type":"string"},"forceOperation":{"type":"boolean"},"jobHistoryUuid":{"type":"string"},"ipAddress":{"type":"string"},"authToken":{"type":"string"},"action":{"type":"object","$ref":"#/definitions/CloudActionType"},"jobName":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"cloudmanagement"}},"required":["type"],"example":{"id":"cdb27d0b-f204-53a0-ad00-a4c137005229","type":"cloudmanagement","action":"TOKEN_ENROLL_CDO","authToken":"12343"}},"CloudManagementWrapper":{"allOf":[{"$ref":"#/definitions/CloudManagement"},{"$ref":"#/definitions/LinksWrapper"}]},"JobHistoryCloudManagement":{"type":"object","properties":{"version":{"type":"string"},"jobName":{"type":"string"},"jobDescription":{"type":"string"},"user":{"type":"string"},"startDateTime":{"type":"string"},"endDateTime":{"type":"string"},"status":{"type":"object","$ref":"#/definitions/JobHistoryEntity$JobHistoryStatus"},"statusMessage":{"type":"string"},"scheduleUuid":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"jobhistorycloudmanagement"}},"required":["type"]},"JobHistoryCloudManagementWrapper":{"allOf":[{"$ref":"#/definitions/JobHistoryCloudManagement"},{"$ref":"#/definitions/LinksWrapper"}]},"CommunityEntryBase":{"type":"object","properties":{"action":{"type":"object","$ref":"#/definitions/EntryAction"},"type":{"type":"string","default":"communityentrybase"}},"required":["action","type"]},"ExpandedCommunityEntry":{"type":"object","properties":{"action":{"type":"object","$ref":"#/definitions/EntryAction"},"regularExpression":{"type":"string"},"type":{"type":"string","default":"expandedcommunityentry"}},"required":["regularExpression","action","type"]},"ExpandedCommunityList":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"entries":{"type":"array","items":{"type":"object","$ref":"#/definitions/ExpandedCommunityEntry"}},"id":{"type":"string"},"type":{"type":"string","default":"expandedcommunitylist"}},"required":["entries","type"],"example":{"id":"a32c162c-14cf-5a3b-9f9f-d159c46ea6c9","version":"03ef2d86-88d6-5c1c-a2b8-f7ef3cd48a43","name":"CLI Object 11","description":"Ujuzwu vih hadzaza urdu hu kopgezjeh etduc at tos otufugu ah caf dodo nuikra tuzkuada zunigob vezufek.","type":"expandedcommunitylist"}},"ExpandedCommunityListWrapper":{"allOf":[{"$ref":"#/definitions/ExpandedCommunityList"},{"$ref":"#/definitions/LinksWrapper"}]},"StandardCommunityEntry":{"type":"object","properties":{"action":{"type":"object","$ref":"#/definitions/EntryAction"},"communities":{"type":"array","items":{"type":"string"}},"internet":{"type":"boolean"},"noAdvertise":{"type":"boolean"},"noExport":{"type":"boolean"},"type":{"type":"string","default":"standardcommunityentry"}},"required":["noExport","action","type","internet","noAdvertise"]},"StandardCommunityList":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"entries":{"type":"array","items":{"type":"object","$ref":"#/definitions/StandardCommunityEntry"}},"id":{"type":"string"},"type":{"type":"string","default":"standardcommunitylist"}},"required":["entries","type"],"example":{"id":"50f826c5-a3c8-5c0f-8cfb-e3059574c0c9","version":"d5c1fe40-45ff-5bf7-8077-ed5163fcaee8","name":"CLI Object 6","description":"Javzi up fujrof dekde hok co paguga vo tic bafum japdu zot.","type":"standardcommunitylist"}},"StandardCommunityListWrapper":{"allOf":[{"$ref":"#/definitions/StandardCommunityList"},{"$ref":"#/definitions/LinksWrapper"}]},"DeviceHostname":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"hostname":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"devicehostname"}},"required":["type"],"example":{"id":"13f1111c-1352-5f49-9204-a305c12d3513","version":"4aab1990-0827-5fca-a54f-d61d01d755a5","hostname":"seegorekdij","type":"devicehostname"}},"DeviceHostnameWrapper":{"allOf":[{"$ref":"#/definitions/DeviceHostname"},{"$ref":"#/definitions/LinksWrapper"}]},"HTTPAccessList":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"networkObjects":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"id":{"type":"string"},"type":{"type":"string","default":"httpaccesslist"}},"required":["type"],"example":{"id":"09cc885b-7a5d-5060-9872-c219476c74dd","version":"e62db46c-c44c-5d6e-8b55-efe74d5d0d10","networkObjects":[{"id":"a820f102-7786-5e65-8b4e-66022cb061cd","name":"Network4","description":"Cutfuf ni ka viz vave cajto wouvirak rogzizde puk zogvintus jisaslit hos guvbujloc giivuzob fafanod.","version":"37093e3e-c4bb-5188-b023-e0f6a4d12463","type":"networkobject","subType":"HOST","value":"3eab:67af:0576:1163:4699:9d76:4a97:ca53","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"de4c912d-0f32-5730-92dd-e6ef7f12a099","name":"Network11","description":"Gisi kalej ih zum midogi gar vezsu reweh od sufmukce siici ki hepvevote ubu feva fabikdol.","version":"dc1b33e1-bb99-5727-85e6-6f30f624ffa2","type":"networkobject","subType":"HOST","value":"42.38.187.218","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"25837b53-40d7-599f-9a1e-0a5391f2662e","name":"Network1","description":"Ser ahpi penul nuszil ojsuvo zavlatha junez afuhi soewuteh ha larhoose lijuto ruhi za murmurgu eznehfa nejag piv.","version":"0761c298-1c3c-5537-971c-17934322192b","type":"networkobject","subType":"HOST","value":"f92d:3cda:6fb3:7e4b:db95:8984:e616:928e","isSystemDefined":true,"metadata":{"referenced":false}}],"type":"httpaccesslist"}},"HTTPAccessListWrapper":{"allOf":[{"$ref":"#/definitions/HTTPAccessList"},{"$ref":"#/definitions/LinksWrapper"}]},"SSHAccessList":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"networkObjects":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"id":{"type":"string"},"type":{"type":"string","default":"sshaccesslist"}},"required":["type"],"example":{"id":"a41a7140-579f-55a8-b4f5-a9839dba2cab","version":"55acd75d-4fd1-5345-ba06-62f3acc1a67c","networkObjects":[{"id":"4f342e19-761a-5d53-a7a6-471d1cf8e254","name":"Network9","description":"Ehibivje dac entikod lofimom dueku ozitakni rilgolpuv zezartim zilkeki bu mu ertum pol vuodle bemah fegbat.","version":"779130e6-7166-5b4e-91f2-d2d92dd952ec","type":"networkobject","subType":"NETWORK","value":"129.1.1.0/255.255.255.0","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"b483d38e-bce7-5bb7-9769-57ec8151bd4f","name":"Network12","description":"Tikafnaz lujis rirunuf sehi ubfewe kabhili zota funfof zagujnuf mel ejejegto fihjunmu ma funah va.","version":"3132162a-9791-5f26-9146-79add126c19f","type":"networkobject","subType":"NETWORK","value":"23.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":true}},{"id":"73ee665b-fbee-563d-92d0-c41d4e5fb7f2","name":"Network2","description":"Wavfu uk unlofu daefi ow fi te zebnah abaco so lodtiw kijeh upzesin kew zo eg.","version":"d5877fad-91a9-5848-95bd-509fc9538ec7","type":"networkobject","subType":"NETWORK","value":"166.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":false}},{"id":"de4c912d-0f32-5730-92dd-e6ef7f12a099","name":"Network11","description":"Gisi kalej ih zum midogi gar vezsu reweh od sufmukce siici ki hepvevote ubu feva fabikdol.","version":"dc1b33e1-bb99-5727-85e6-6f30f624ffa2","type":"networkobject","subType":"HOST","value":"42.38.187.218","isSystemDefined":true,"metadata":{"referenced":true}}],"type":"sshaccesslist"}},"SSHAccessListWrapper":{"allOf":[{"$ref":"#/definitions/SSHAccessList"},{"$ref":"#/definitions/LinksWrapper"}]},"WebUICertificate":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"certificate":{"type":"object","$ref":"#/definitions/ReferenceModel"},"id":{"type":"string"},"type":{"type":"string","default":"webuicertificate"}},"required":["certificate","type"],"example":{"id":"63a5cb52-dcaf-5bf2-81e5-35333a388639","certificate":{"id":"ec573461-9775-5ad8-b2c9-2a611a94a301","name":"InternalCertificate7","cert":"-----BEGIN CERTIFICATE-----\nMIIDEjCCAnugAwIBAgIJAJ69cfUJsifzMA0GCSqGSIb3DQEBBQUAMIGCMQswCQYD\nVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxDjAMBgNVBAoMBUNpc2NvMQwwCgYDVQQL\nDANBREkxIjAgBgNVBAMMGUFESSBUZWFtIFRlc3RpbmcgYXQgQ2lzY28xITAfBgkq\nhkiG9w0BCQEWEnRjaHJpc3RtQGNpc2NvLmNvbTAeFw0xNTA0MDYxNDQ0NTJaFw0x\nNjA0MDUxNDQ0NTJaMIGVMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxDzAN\nBgNVBAcMBkF1c3RpbjEVMBMGA1UECgwMQURJIGF0IENpc2NvMQwwCgYDVQQLDANB\nREkxHTAbBgNVBAMMFEFESSBUZXN0aW5nIEF0IENpc2NvMSEwHwYJKoZIhvcNAQkB\nFhJ0Y2hyaXN0bUBjaXNjby5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB\nAKk6jiG3XImaQNnVe1zeRbchMVbpBxdDYIRt0Eqvl2HqfAZJDKSw+s080iMC5Dmg\nTvOaZYaf4rc92z/WpMTgiOxmwKLhaw1INzBptxc4JoQPNFG4qUSVIHW9mnoXwluo\naXypJKAgeLukuO5tdUj9Iy4IHabMmJxcQsZ1vJ65cIH5AgMBAAGjezB5MAkGA1Ud\nEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmlj\nYXRlMB0GA1UdDgQWBBROqbPMUm6cUg+E/ficJa8WkdhcwzAfBgNVHSMEGDAWgBRD\nXj/hqU0NPpTv1+Z6O7LQixcgxTANBgkqhkiG9w0BAQUFAAOBgQBaoTmcEb14AIcd\nq6R34phLlDP1JRV54NQ5gTXK858dyRE41CHensHSwXlHUg2JJ/LuUhK7h+ST1Qhy\nkFCHNQHh9ojRK34ydIIltGaGGCIZDEgUqhc7IeZ/PSR5252vQaAwDWDxapA2ZsVo\nr9OY0Q7uuCLvNNiQQzvjlnQZ94Rp4A==\n-----END CERTIFICATE-----\n","privateKey":"-----BEGIN PRIVATE KEY-----MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCqsrdtuAzs/APtjiJefyhxCnheLOFOP8BfvtcdfFNFVj3RP5n30AYGmTT31dTLPeA4dYHgthUImKkxcWIOuJqHlLrEo3fmfEbhy8KehfQ0Pfy+4K/QTB7NU28/K9Hr0Mwz6bUuboby/BvIi1u/ZIzl5KlmJBz/cQMPonD2hte2fwvkqCfhpNl25tMzEpyqCAa4tciUqSXf0Zs63XtcVPBpuGN6vU0QllqxLbzsQ7ShwymBiLnUqX95tWkJCrRIfklEwlbTXyRM5NSjk6EdZeDfX5OHexV4AodbtGZSeQYU7s2vs50khtIWVGr+14dPguWf9ggMCRoX+B9RogfV03IVAgMBAAECggEAfwLTsXQNShiK46uqrx12fgYIYiqKyqps/dEGRw5G94SgIp5sdhP3J9m/q9kTqNa1i80Dgqx5IhhVbFCtYb7CXLex8LahdIJsS35NpZ6OgoDNG0ocB6VcFfNLB3oXjJukFcyD37Sl/Q7RrXrkHZk3radi1Hlyii8Q1AVOgGD9CPBwRaBrjAuJXunJRSnzJ1MuV29PoNSOcQ0o+q26JkZaTcFHt/iVdeBiKFEyfwd6oWTkpRQiUD+Xi/P9XkYud1nou64dvw6XIDpsV7uX07OASHk1fuQjDJLwyO4KlcWBzNb6Z1sE6l1EqHcZKqijcYISElzPGTEVlDkXAT5YxiIjAQKBgQDVYP/8obthBaUBFVkPaZNUzLsjyv9ONOWVHIzw9YVOmC7v2WdrnDgoBkNaV4SdCOYsJW+887nA6zK2208DlRea1fAcZWgItRqvJi9wiqtZAS1BCC+tTliYS3x/wqmFyFRqLK4dIqpbZ52+vEoEMgrDJmzG7k7aXjAm9+JH+MqfBQKBgQDMy0KcdA68h5VlbifLnMbQUJO7Zy081Tdbpgnf02/PaC/HHbYnbn/hWv8TTuoBcEDkh0nl3JRmPKMyF+Aeqj5Xd6A4znRQXq9ZPcOyKYw08VGkf4m41mm2Iq7HcSwhZFlWZWfA3cCU+Z5eTVY7RBQjoJ8Qk6LyRjAmlA5xiMVT0QKBgGVDeXjtUD3FLf+LoA5+bhsqZg2ggvUciW/wcrrP6gnYkz3kkP4yzzu/bStsqVTVKlb9FUA48oiplhHNlnv+v4sNyLvRLEQlnppMpurkBFljA5T/S5EVw1nTSSxgt47z+YvB1IejMfHbBLPGK+I91XmzvJ/T7LwZQwTbUxoQ6if5AoGBAMuoErzteT4pAvuUWQTWCqxchR1nVIhbbKq6arVoWZeDf4fe1ydNbuSXjnQQFQuLKy1YELgC7JzjDlOhhKJaIJbxAqebP/YwwuXXU0ZYpPJ9TPhuUHI833Fd+juiIwWt+l29iDk3DO3ZcpFLDUbww6pOcACXIQMXo4ip0dc78SgRAoGAEb7FK7hqFmBk24Pu5vzKE/BYYD1mY17+zmeFocn2vu89jLYvRGYrvuGn9TgD3zeXjNsAqbMW8Td5F3xnMJ3JHhnAQHd1Wh5VROsXfhtT/Uhl4eCGEkKqM+EEBD6Z3UsZbNFRGEl1xThzdwchLt0WNTD9kuoxWkjV3hjPBnkJlvk=-----END PRIVATE KEY-----","issuerCommonName":"FTD OnBox Team Testing at Cisco","issuerOrganizationUnit":"FTD","subjectCommonName":"FTD Testing At Cisco","subjectOrganization":"FTD at Cisco","subjectOrganizationUnit":"FTD","validityStartDate":"Apr 6 14:44:52 2015 GMT","validityEndDate":"Feb 16 14:44:52 2017 GMT","type":"internalcertificate","version":"265ea6f9-3d63-5a96-b340-a794cf92aee4"},"version":"c2b7b87a-4fcb-511d-bf6c-becbaf5b78aa","type":"webuicertificate"}},"ConsoleLogFilter":{"type":"object","properties":{"loggingEnabled":{"type":"boolean"},"severityLogLevel":{"type":"object","$ref":"#/definitions/SeverityLogLevelType"},"type":{"type":"string","default":"consolelogfilter"}},"required":["type"]},"DNSServer":{"type":"object","properties":{"ipAddress":{"type":"string"},"type":{"type":"string","default":"dnsserver"}},"required":["ipAddress","type"]},"DNSServerGroup":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"dnsServers":{"type":"array","items":{"type":"object","$ref":"#/definitions/DNSServer"}},"timeout":{"type":"integer"},"retries":{"type":"integer"},"searchDomain":{"type":"string"},"systemDefined":{"type":"boolean"},"id":{"type":"string"},"type":{"type":"string","default":"dnsservergroup"}},"required":["dnsServers","type"],"example":{"id":"519d6992-9345-546e-9249-9b48f9ecf5a8","version":"875d4612-0f84-51cc-a45e-e74a2bc27f8e","name":"DNS-Server-Group-1","searchDomain":"Cisco","systemDefined":false,"retries":5,"timeout":28,"dnsServers":[{"ipAddress":"146.255.203.19","type":"dnsserver"},{"ipAddress":"56.211.60.159","type":"dnsserver"},{"ipAddress":"9.194.230.227","type":"dnsserver"}],"type":"dnsservergroup"}},"DNSServerGroupWrapper":{"allOf":[{"$ref":"#/definitions/DNSServerGroup"},{"$ref":"#/definitions/LinksWrapper"}]},"DataDNSSettings":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"pollTimer":{"type":"integer"},"expiryEntryTimer":{"type":"integer"},"dnsServerGroup":{"type":"object","$ref":"#/definitions/ReferenceModel"},"id":{"type":"string"},"interfaces":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"type":{"type":"string","default":"datadnssettings"}},"required":["type"],"example":{"id":"e8a1376e-e750-554b-8b2d-5ded1a04497d","version":"bb22ae0d-d42e-5feb-ab89-173772574747","name":"DataDNSSettings","interfaces":[{"mtu":5818,"enabled":true,"description":"Setta biwofega af ihi ebele inowo inagiobo nu it fe heivu lijivok.","name":"diagnostic","id":"f7509b61-168c-5d86-9a4c-8d3a2bb23e90","hardwareName":"Management0/0","macAddress":"249A.16A4.5DED","monitorInterface":true,"standbyMacAddress":"06D4.757D.FF06","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0c4e:e907:93c3:ba7a:7842:4899:f454:2a33/32","ipAddress":"41e0:3a60:0ca6:5f1c:cdd5:9c57:4918:682f/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d039:d6f4:278a:cdd3:b9e3:2711:460f:1555","ipAddress":"7e31:6d3f:5bbc:0d7f:4df6:58b9:26a6:d462"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"227.88.54.119","standbyIpAddress":"119.107.19.197"}},"version":"e50dac9e-5493-5760-b5e5-294741f3c409","managementInterface":true,"managementOnly":true,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"},{"mtu":5818,"enabled":false,"description":"Jigiz malko navsup bojga widbihi vatel vahuwuta ugi bopuru duzwar zopi juinoito sibkonac fozgojmi toopu nurhiru ce joeho.","name":"inside","id":"bddde0e1-1b1f-5f42-b9b7-7c72d9099ef4","hardwareName":"GigabitEthernet1/1","macAddress":"ECFB.7E12.09E1","monitorInterface":true,"standbyMacAddress":"A09D.B513.9683","version":"69f9f38e-0479-58d1-961c-e4040d439200","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"PASSIVE","type":"physicalinterface"}],"dnsServerGroup":{"id":"519d6992-9345-546e-9249-9b48f9ecf5a8","version":"875d4612-0f84-51cc-a45e-e74a2bc27f8e","name":"DNS-Server-Group-1","searchDomain":"Cisco","systemDefined":false,"retries":5,"timeout":28,"dnsServers":[{"ipAddress":"146.255.203.19","type":"dnsserver"},{"ipAddress":"56.211.60.159","type":"dnsserver"},{"ipAddress":"9.194.230.227","type":"dnsserver"}],"type":"dnsservergroup"},"pollTimer":240,"expiryEntryTimer":1,"type":"datadnssettings"}},"DataDNSSettingsWrapper":{"allOf":[{"$ref":"#/definitions/DataDNSSettings"},{"$ref":"#/definitions/LinksWrapper"}]},"DataInterfaceManagementAccess":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"networkObjects":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"networkInterface":{"type":"object","$ref":"#/definitions/ReferenceModel"},"protocols":{"type":"array","items":{"type":"object","$ref":"#/definitions/DataInterfaceAccessProtocol"}},"id":{"type":"string"},"type":{"type":"string","default":"datainterfacemanagementaccess"}},"required":["networkObjects","networkInterface","protocols","type"],"example":{"id":"d11fca89-18f1-5604-94c1-e485ce14c035","version":"d24f81f5-6305-50dc-8426-98a749024ba6","protocols":["SSH"],"networkInterface":{"mtu":5818,"enabled":true,"description":"Setta biwofega af ihi ebele inowo inagiobo nu it fe heivu lijivok.","name":"diagnostic","id":"f7509b61-168c-5d86-9a4c-8d3a2bb23e90","hardwareName":"Management0/0","macAddress":"249A.16A4.5DED","monitorInterface":true,"standbyMacAddress":"06D4.757D.FF06","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0c4e:e907:93c3:ba7a:7842:4899:f454:2a33/32","ipAddress":"41e0:3a60:0ca6:5f1c:cdd5:9c57:4918:682f/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d039:d6f4:278a:cdd3:b9e3:2711:460f:1555","ipAddress":"7e31:6d3f:5bbc:0d7f:4df6:58b9:26a6:d462"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"227.88.54.119","standbyIpAddress":"119.107.19.197"}},"version":"e50dac9e-5493-5760-b5e5-294741f3c409","managementInterface":true,"managementOnly":true,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"},"networkObjects":[{"id":"73ee665b-fbee-563d-92d0-c41d4e5fb7f2","name":"Network2","description":"Wavfu uk unlofu daefi ow fi te zebnah abaco so lodtiw kijeh upzesin kew zo eg.","version":"d5877fad-91a9-5848-95bd-509fc9538ec7","type":"networkobject","subType":"NETWORK","value":"166.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":false}}],"type":"datainterfacemanagementaccess"}},"DataInterfaceManagementAccessWrapper":{"allOf":[{"$ref":"#/definitions/DataInterfaceManagementAccess"},{"$ref":"#/definitions/LinksWrapper"}]},"DeviceDNSSettings":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"dnsServerGroup":{"type":"object","$ref":"#/definitions/ReferenceModel"},"id":{"type":"string"},"type":{"type":"string","default":"devicednssettings"}},"required":["type"],"example":{"id":"b61dadab-f7ed-5888-87f1-fe305d982cc5","version":"14b275fc-df3d-51c7-8196-7c8c87bcbfc9","name":"padgautemu","type":"devicednssettings"}},"DeviceDNSSettingsWrapper":{"allOf":[{"$ref":"#/definitions/DeviceDNSSettings"},{"$ref":"#/definitions/LinksWrapper"}]},"DeviceLogSettings":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"deviceLoggingEnabled":{"type":"boolean"},"consoleLogFilter":{"type":"object","$ref":"#/definitions/ConsoleLogFilter"},"syslogServerLogFilter":{"type":"object","$ref":"#/definitions/SyslogServerLogFilter"},"id":{"type":"string"},"type":{"type":"string","default":"devicelogsettings"}},"required":["type"],"example":{"id":"67626e00-c098-5f9c-a675-1ebc4d469f79","version":"8ca81f76-5e43-54f9-9570-1864615e7a61","deviceLoggingEnabled":false,"consoleLogFilter":{"loggingEnabled":false,"severityLogLevel":"EMERGENCY","type":"consolelogfilter"},"syslogServerLogFilter":{"loggingEnabled":false,"severityLogLevel":"EMERGENCY","type":"syslogserverlogfilter"},"type":"devicelogsettings"}},"DeviceLogSettingsWrapper":{"allOf":[{"$ref":"#/definitions/DeviceLogSettings"},{"$ref":"#/definitions/LinksWrapper"}]},"SyslogServer":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"deviceInterface":{"type":"object","$ref":"#/definitions/ReferenceModel"},"useManagementInterface":{"type":"boolean"},"protocol":{"type":"object","$ref":"#/definitions/SyslogServerProtocolType"},"id":{"type":"string"},"host":{"type":"string"},"port":{"type":"string"},"type":{"type":"string","default":"syslogserver"}},"required":["protocol","host","type"],"example":{"id":"ba53d5c6-8f89-5f6d-8c93-40057bb67dfb","version":"f0ab7ee0-55a2-56cb-be0d-95aed23f579d","host":"77.225.87.129","port":5897,"deviceInterface":{"mtu":5818,"enabled":true,"description":"Dib wohomfa it firasugu joev ge nu dab caejuja ba no owezru rijbofnuv da ren.","name":"outside","id":"056580af-b7b5-5ea4-9434-84acde7b7b2b","hardwareName":"GigabitEthernet1/2","macAddress":"B807.AD9D.0E4C","monitorInterface":false,"standbyMacAddress":"8F66.A03C.5C85","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"398d:4979:fd8c:5c79:130d:af73:39ac:575b/32","ipAddress":"0e08:b1ea:5a22:75ba:8e01:eaed:3442:684c/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"264c:f9d4:85a8:fdee:b56d:4b03:96d7:6285","ipAddress":"d0f4:3235:0882:22a2:f8c8:c2db:683c:9639"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"178.90.249.165","standbyIpAddress":"41.101.191.177"}},"version":"53c69bde-efdf-5307-96bb-1d0c92bec9a5","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"UP","mode":"PASSIVE","type":"physicalinterface"},"protocol":"TCP","useManagementInterface":false,"type":"syslogserver"}},"SyslogServerWrapper":{"allOf":[{"$ref":"#/definitions/SyslogServer"},{"$ref":"#/definitions/LinksWrapper"}]},"SyslogServerLogFilter":{"type":"object","properties":{"loggingEnabled":{"type":"boolean"},"severityLogLevel":{"type":"object","$ref":"#/definitions/SeverityLogLevelType"},"syslogServers":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"type":{"type":"string","default":"syslogserverlogfilter"}},"required":["type"]},"DataInterfaceAccessProtocol":{"type":"string","enum":["HTTPS","SSH"]},"SeverityLogLevelType":{"type":"string","enum":["EMERGENCY","ALERT","CRITICAL","ERROR","WARNING","NOTIFICATION","INFORMATIONAL","DEBUG"]},"SyslogServerProtocolType":{"type":"string","enum":["TCP","UDP"]},"BaseDiff":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","default":"BaseDiff"}},"required":["type"]},"BaseEntityDiff":{"type":"object","properties":{"entityId":{"type":"string"},"entityType":{"type":"string"},"entityName":{"type":"string"},"type":{"type":"string","default":"BaseEntityDiff"}},"required":["type"]},"BaseEntityDiffWrapper":{"allOf":[{"$ref":"#/definitions/BaseEntityDiff"},{"$ref":"#/definitions/LinksWrapper"}]},"EntityCreate":{"type":"object","properties":{"entityId":{"type":"string"},"entityType":{"type":"string"},"entityName":{"type":"string"},"referencesAdded":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceUpdate"}},"valuesAdded":{"type":"array","items":{"type":"object","$ref":"#/definitions/ValueAdd"}},"type":{"type":"string","default":"EntityCreate"}},"required":["type"]},"EntityDelete":{"type":"object","properties":{"entityId":{"type":"string"},"entityType":{"type":"string"},"entityName":{"type":"string"},"referencesDeleted":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceUpdate"}},"valuesDeleted":{"type":"array","items":{"type":"object","$ref":"#/definitions/ValueDelete"}},"type":{"type":"string","default":"EntityDelete"}},"required":["type"]},"EntityDiffAnalyserResult":{"type":"object","properties":{"created":{"type":"object","$ref":"#/definitions/EntityCreate"},"updated":{"type":"object","$ref":"#/definitions/EntityUpdate"},"deleted":{"type":"object","$ref":"#/definitions/EntityDelete"},"type":{"type":"string","default":"EntityDiffAnalyserResult"}},"required":["type"]},"EntityUpdate":{"type":"object","properties":{"entityId":{"type":"string"},"entityType":{"type":"string"},"entityName":{"type":"string"},"referencesDeleted":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceUpdate"}},"referencesAdded":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceUpdate"}},"valuesDeleted":{"type":"array","items":{"type":"object","$ref":"#/definitions/ValueDelete"}},"valuesAdded":{"type":"array","items":{"type":"object","$ref":"#/definitions/ValueAdd"}},"valuesUpdated":{"type":"array","items":{"type":"object","$ref":"#/definitions/ValueUpdate"}},"type":{"type":"string","default":"EntityUpdate"}},"required":["type"],"example":{"entityId":"8b9bc086-1d36-11e8-82df-0d179a47a356","entityType":"intrusionpolicy","entityName":"Connectivity Over Security","referencesAdded":[],"valuesAdded":[{"fieldName":"overriddenRules[0].message","newValue":"SQL sa login failed","type":"valueadd"},{"fieldName":"overriddenRules[0].ruleState","newValue":"ALERT","type":"valueadd"}],"type":"entityupdate","referencesDeleted":[],"valuesDeleted":[],"valuesUpdated":[]}},"ReferenceUpdate":{"type":"object","properties":{"fieldName":{"type":"string"},"entityName":{"type":"string"},"entityType":{"type":"string"},"type":{"type":"string","default":"ReferenceUpdate"}},"required":["type"]},"ValueAdd":{"type":"object","properties":{"fieldName":{"type":"string"},"newValue":{"type":"string"},"type":{"type":"string","default":"ValueAdd"}},"required":["type"]},"ValueDelete":{"type":"object","properties":{"fieldName":{"type":"string"},"oldValue":{"type":"string"},"type":{"type":"string","default":"ValueDelete"}},"required":["type"]},"ValueUpdate":{"type":"object","properties":{"fieldName":{"type":"string"},"oldValue":{"type":"string"},"newValue":{"type":"string"},"type":{"type":"string","default":"ValueUpdate"}},"required":["type"]},"ChangePasswordStatus":{"type":"object","properties":{"version":{"type":"string"},"nextPage":{"type":"string"},"currentPage":{"type":"string"},"taskComplete":{"type":"boolean"},"id":{"type":"string"},"type":{"type":"string","default":"changepasswordstatus"}},"required":["type"]},"EasySetupBase":{"type":"object","properties":{"version":{"type":"string"},"nextPage":{"type":"string"},"currentPage":{"type":"string"},"taskComplete":{"type":"boolean"},"id":{"type":"string"},"type":{"type":"string","default":"easysetupbase"}},"required":["type"]},"EasySetupPages":{"type":"string","enum":["EULA","PASSWORD","NETWORK","DASHBOARD"]},"EasySetupStatus":{"type":"object","properties":{"version":{"type":"string"},"nextPage":{"type":"string"},"currentPage":{"type":"string"},"taskComplete":{"type":"boolean"},"id":{"type":"string"},"type":{"type":"string","default":"easysetupstatus"}},"required":["type"]},"InitialProvision":{"type":"object","properties":{"version":{"type":"string"},"acceptEULA":{"type":"boolean"},"eulaText":{"type":"string"},"currentPassword":{"type":"string","default":"*********"},"newPassword":{"type":"string","default":"*********"},"id":{"type":"string"},"type":{"type":"string","default":"initialprovision"}},"required":["type"]},"InitialProvisionWrapper":{"allOf":[{"$ref":"#/definitions/InitialProvision"},{"$ref":"#/definitions/LinksWrapper"}]},"BackupLocation":{"type":"string","enum":["DEFAULT","SDCARD"]},"BackupStateType":{"type":"string","enum":["BACKUP_NEW","BACKUP_RESTORED","BACKUP_RESTORED_NEW","NONE"]},"CannedFilePolicy":{"type":"string","enum":["BLOCK_MALWARE_ALL","CLOUD_LOOKUP_ALL","BLOCK_OFFICE_DOCUMENTS_PDF_UPLOAD_BLOCK_MALWARE_OTHERS","BLOCK_OFFICE_DOCUMENTS_UPLOAD_BLOCK_MALWARE_OTHERS"]},"JobExecutionType":{"type":"string","enum":["NONE","IMMEDIATE","DAILY","WEEKLY","MONTHLY","SINGLE","CRON","HOURLY"]},"HABreakStatus":{"type":"object","properties":{"statusMessage":{"type":"string"},"cliErrorMessage":{"type":"string"},"state":{"type":"object","$ref":"#/definitions/DeploymentStatus$DeploymentState"},"queuedTime":{"type":"integer"},"startTime":{"type":"integer"},"endTime":{"type":"integer"},"statusMessages":{"type":"array","items":{"type":"string"}},"id":{"type":"string"},"name":{"type":"string"},"modifiedObjects":{"type":"object"}}},"HAConfigStatus":{"type":"string","enum":["IN_SYNC","PRIMARY_IMPORTING_CONFIG","SECONDARY_IMPORTING_CONFIG","OUT_OF_SYNC","UNKNOWN"]},"HAConfiguration":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"nodeRole":{"type":"object","$ref":"#/definitions/HANodeRole"},"failoverInterface":{"type":"object","$ref":"#/definitions/ReferenceModel"},"failoverName":{"type":"string"},"primaryFailoverIPv4":{"type":"object","$ref":"#/definitions/IPv4Address"},"secondaryFailoverIPv4":{"type":"object","$ref":"#/definitions/IPv4Address"},"primaryFailoverIPv6":{"type":"object","$ref":"#/definitions/IPv6Address"},"secondaryFailoverIPv6":{"type":"object","$ref":"#/definitions/IPv6Address"},"statefulFailoverInterface":{"type":"object","$ref":"#/definitions/ReferenceModel"},"statefulFailoverName":{"type":"string"},"primaryStatefulFailoverIPv4":{"type":"object","$ref":"#/definitions/IPv4Address"},"secondaryStatefulFailoverIPv4":{"type":"object","$ref":"#/definitions/IPv4Address"},"primaryStatefulFailoverIPv6":{"type":"object","$ref":"#/definitions/IPv6Address"},"secondaryStatefulFailoverIPv6":{"type":"object","$ref":"#/definitions/IPv6Address"},"sharedKey":{"type":"string","default":"*********"},"id":{"type":"string"},"type":{"type":"string","default":"haconfiguration"}},"required":["statefulFailoverInterface","nodeRole","failoverName","statefulFailoverName","failoverInterface","type"],"example":{"id":"cfe11bdd-4a3f-5167-96ff-c7709fb6851d","version":"1615f093-c778-5b0e-a6ca-04d288fb6609","name":"HA","nodeRole":"HA_PRIMARY","sharedKey":"sharedKeyPassword","primaryFailoverIPv4":{"ipAddress":"111.194.235.188","netmask":"255.255.255.0","type":"ipv4address"},"secondaryFailoverIPv4":{"ipAddress":"97.65.0.6","netmask":"255.255.255.0","type":"ipv4address"},"primaryStatefulFailoverIPv6":{"ipAddress":"efa6:48b0:1e0a:79a7:8b3c:e0be:be05:76e9/32","type":"ipv6address"},"secondaryStatefulFailoverIPv6":{"ipAddress":"d125:b4a8:c630:d042:6217:3929:ba90:7c72/32","type":"ipv6address"},"failoverInterface":{"mtu":5818,"enabled":true,"description":"Setta biwofega af ihi ebele inowo inagiobo nu it fe heivu lijivok.","name":"diagnostic","id":"f7509b61-168c-5d86-9a4c-8d3a2bb23e90","hardwareName":"Management0/0","macAddress":"249A.16A4.5DED","monitorInterface":true,"standbyMacAddress":"06D4.757D.FF06","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0c4e:e907:93c3:ba7a:7842:4899:f454:2a33/32","ipAddress":"41e0:3a60:0ca6:5f1c:cdd5:9c57:4918:682f/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d039:d6f4:278a:cdd3:b9e3:2711:460f:1555","ipAddress":"7e31:6d3f:5bbc:0d7f:4df6:58b9:26a6:d462"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"227.88.54.119","standbyIpAddress":"119.107.19.197"}},"version":"e50dac9e-5493-5760-b5e5-294741f3c409","managementInterface":true,"managementOnly":true,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"},"statefulFailoverInterface":{"mtu":5818,"enabled":true,"description":"Wonca cotfo biok ugfejbah ro itedere itoh pijazu ocozojgi buk facheuho zo.","id":"ef57753e-8a0c-5454-a3b3-fbc3c570851d","hardwareName":"GigabitEthernet1/3","macAddress":"34B5.AF3E.B9E9","monitorInterface":true,"standbyMacAddress":"4AF5.3F46.87FE","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"da83:da11:93ff:4f56:084e:f1c1:269c:0dd0/32","ipAddress":"831e:6e6b:281e:8b10:94d0:03f1:b4d5:3373/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"6a3f:c0b2:5d20:fdb6:945d:bcd1:a144:7558","ipAddress":"af4f:d5f4:67bb:3263:e183:fc6c:ea34:f2e6"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"204.8.215.52","standbyIpAddress":"108.106.112.194"}},"version":"46c1bc9f-9a0a-5425-8dc2-3a04dd84c3f1","managementInterface":false,"managementOnly":false,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"ROUTED","type":"physicalinterface","subInterfaces":[{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},{"mtu":2652,"enabled":false,"description":"Tamewjal som sekishek ojdoho ronewdur ku kazut sek domnihan kuduc lopipe gikhil.","name":"subinterface14name","id":"738d334a-80c7-54a2-a794-480649439bc5","hardwareName":"SubInterface0/14.15","macAddress":"4148.8A3F.4184","monitorInterface":false,"standbyMacAddress":"D7D6.49C1.C24B","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"d045:86b5:2ae3:c15b:18ff:cec3:1551:f181/32","ipAddress":"fd7b:8d17:d6e4:a434:6347:c069:fb49:07e5/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"10aa:438f:fe45:9a4f:7d50:7008:e90c:36b8","ipAddress":"96cc:b8d1:3e93:fa8c:04de:4571:c8d7:f854"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"50.25.199.74","standbyIpAddress":"213.65.202.100"}},"version":"f0ad8c22-a87f-5f0a-9a4f-fc00a09d2773","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}]},"type":"haconfiguration"}},"HAConfigurationWrapper":{"allOf":[{"$ref":"#/definitions/HAConfiguration"},{"$ref":"#/definitions/LinksWrapper"}]},"HAFailoverConfiguration":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"peerPollTime":{"type":"object","$ref":"#/definitions/Time"},"peerHoldTime":{"type":"object","$ref":"#/definitions/Time"},"interfacePollTime":{"type":"object","$ref":"#/definitions/Time"},"interfaceHoldTime":{"type":"object","$ref":"#/definitions/Time"},"interfaceFailureThreshold":{"type":"integer"},"interfaceFailureUnit":{"type":"object","$ref":"#/definitions/HAFailoverConfiguration$InterfaceFailureUnits"},"id":{"type":"string"},"type":{"type":"string","default":"hafailoverconfiguration"}},"required":["peerPollTime","interfaceFailureThreshold","interfaceHoldTime","peerHoldTime","type","interfaceFailureUnit","interfacePollTime"],"example":{"id":"31aba24a-eca6-5a21-ba28-cb22b31d210b","version":"334419d3-f9b9-5840-92e2-d2870f51af75","interfaceFailureUnit":"NUMBER","interfaceFailureThreshold":90,"interfacePollTime":{"value":9,"timeUnit":"SECONDS","type":"time"},"interfaceHoldTime":{"value":46,"timeUnit":"SECONDS","type":"time"},"peerPollTime":{"value":465,"timeUnit":"MILLISECONDS","type":"time"},"peerHoldTime":{"value":824,"timeUnit":"MILLISECONDS","type":"time"},"type":"hafailoverconfiguration"}},"HAFailoverConfigurationWrapper":{"allOf":[{"$ref":"#/definitions/HAFailoverConfiguration"},{"$ref":"#/definitions/LinksWrapper"}]},"HAFailoverConfiguration$InterfaceFailureUnits":{"type":"string","enum":["NUMBER","PERCENTAGE"]},"HAHealthStatus":{"type":"string","enum":["HEALTHY","PROCESSING","UNHEALTHY","CRITICAL"]},"HAJoinStatus":{"type":"object","properties":{"statusMessage":{"type":"string"},"cliErrorMessage":{"type":"string"},"state":{"type":"object","$ref":"#/definitions/DeploymentStatus$DeploymentState"},"queuedTime":{"type":"integer"},"startTime":{"type":"integer"},"endTime":{"type":"integer"},"statusMessages":{"type":"array","items":{"type":"string"}},"id":{"type":"string"},"name":{"type":"string"},"modifiedObjects":{"type":"object"}}},"HANodeRole":{"type":"string","enum":["HA_PRIMARY","HA_SECONDARY"]},"HANodeState":{"type":"string","enum":["SINGLE_NODE","HA_ACTIVE_NODE","HA_STANDBY_NODE","HA_SUSPENDED_NODE","HA_FAILED_NODE","HA_CONFIGURATION_SYNC","HA_NEGOTIATING_NODE","HA_DISABLED_NODE","HA_UNKNOWN_NODE"]},"HAStatus":{"type":"object","properties":{"nodeRole":{"type":"object","$ref":"#/definitions/HANodeRole"},"nodeState":{"type":"object","$ref":"#/definitions/HANodeState"},"peerNodeState":{"type":"object","$ref":"#/definitions/HANodeState"},"configStatus":{"type":"object","$ref":"#/definitions/HAConfigStatus"},"haHealthStatus":{"type":"object","$ref":"#/definitions/HAHealthStatus"},"id":{"type":"string"},"type":{"type":"string","default":"HAStatus"}},"required":["type"],"example":{"id":"default","version":"00371765-7dc2-5f34-a252-1492846dce91","name":"HA","nodeRole":"HA_PRIMARY","nodeState":"SINGLE_NODE","configStatus":"IN_SYNC","haHealthStatus":"HEALTHY","peerNodeState":"HA_STANDBY_NODE","type":"hastatus"}},"HAStatusWrapper":{"allOf":[{"$ref":"#/definitions/HAStatus"},{"$ref":"#/definitions/LinksWrapper"}]},"DiskUsage":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"title":{"type":"string"},"type":{"type":"string","default":"DiskUsage"},"used":{"type":"integer"},"free":{"type":"integer"},"total":{"type":"integer"}},"required":["type"]},"DiskUsageWrapper":{"allOf":[{"$ref":"#/definitions/DiskUsage"},{"$ref":"#/definitions/LinksWrapper"}]},"EpsReportItem":{"type":"object","properties":{"timestamp":{"type":"integer"},"avgEps":{"type":"integer"}}},"PercentUsageReportItem":{"type":"object","properties":{"timestamp":{"type":"integer"},"avgUsage":{"type":"number"}}},"ReportItem":{"type":"object","properties":{"timestamp":{"type":"integer"}}},"ReportItemAttribute":{"type":"object","properties":{"attribute":{"type":"string"},"type":{"type":"string","default":"reportitemattribute"},"units":{"type":"string"}},"required":["type"]},"ThroughputReportItem":{"type":"object","properties":{"timestamp":{"type":"integer"},"interfaceThroughput":{"type":"integer"},"interfaceName":{"type":"string"}}},"TrendingReport":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"title":{"type":"string"},"type":{"type":"string","default":"TrendingReport"},"items":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReportItem"}},"metadata":{"type":"object"}},"required":["type"]},"TrendingReportWrapper":{"allOf":[{"$ref":"#/definitions/TrendingReport"},{"$ref":"#/definitions/LinksWrapper"}]},"IPPrefixEntry":{"type":"object","properties":{"action":{"type":"object","$ref":"#/definitions/EntryAction"},"sequence":{"type":"integer"},"ipAddress":{"type":"string"},"minPrefixLength":{"type":"integer"},"maxPrefixLength":{"type":"integer"},"type":{"type":"string","default":"ipprefixentry"}},"required":["sequence","ipAddress","action","type"]},"IPV4PrefixList":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"entries":{"type":"array","items":{"type":"object","$ref":"#/definitions/IPPrefixEntry"}},"id":{"type":"string"},"type":{"type":"string","default":"ipv4prefixlist"}},"required":["entries","type"],"example":{"id":"37c637c3-a289-5181-aaaa-6535d3f21707","version":"e8f995e7-8b50-5f19-8ef7-fd21fcb4fd63","name":"CLI Object 26","description":"Wek tehko bir zobos lupi lo kair tefegiw rivawde gu otnuwun sebot owzeg.","type":"ipv4prefixlist"}},"IPV4PrefixListWrapper":{"allOf":[{"$ref":"#/definitions/IPV4PrefixList"},{"$ref":"#/definitions/LinksWrapper"}]},"IPV6PrefixList":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"entries":{"type":"array","items":{"type":"object","$ref":"#/definitions/IPPrefixEntry"}},"id":{"type":"string"},"type":{"type":"string","default":"ipv6prefixlist"}},"required":["entries","type"],"example":{"id":"c4c5a452-abb8-5961-818c-423f051cbfa3","version":"66316bf1-8f40-57df-a5e3-c5d9a16b080c","name":"CLI Object 31","description":"Ide li sopa mejitukij ku wujzuhuko zolos zawib dijkin nolog uw ruknor.","type":"ipv6prefixlist"}},"IPV6PrefixListWrapper":{"allOf":[{"$ref":"#/definitions/IPV6PrefixList"},{"$ref":"#/definitions/LinksWrapper"}]},"Links":{"type":"object","properties":{"self":{"type":"string"}}},"LinksReference":{"type":"object","properties":{"links":{"type":"object","$ref":"#/definitions/Links"}}},"PolicyList":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"action":{"type":"object","$ref":"#/definitions/EntryAction"},"interfaces":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"standardAccessListAddresses":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"ipv4PrefixListAddresses":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"standardAccessListNextHops":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"ipv4PrefixListNextHops":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"standardAccessListRouteSources":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"ipv4PrefixListRouteSources":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"asPathLists":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"communityLists":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"matchCommunityExactly":{"type":"boolean"},"metric":{"type":"integer"},"tag":{"type":"integer"},"id":{"type":"string"},"type":{"type":"string","default":"policylist"}},"required":["matchCommunityExactly","action","type"],"example":{"id":"5ff217d2-c589-5550-a573-9010287ae5c1","version":"4b679f50-92c0-5dae-9d57-d01d2fc7711b","name":"CLI Object 36","description":"Niw sipi ubo sedtit orco gurovru ar mo zimesfi zojtocef ra kiras.","type":"policylist"}},"PolicyListWrapper":{"allOf":[{"$ref":"#/definitions/PolicyList"},{"$ref":"#/definitions/LinksWrapper"}]},"EntryOriginType":{"type":"string","enum":["LOCAL_IGP","INCOMPLETE"]},"IPV4NextHopType":{"type":"string","enum":["USE_PEER_ADDRESS","SPECIFIC_IP"]},"IPV6NextHopType":{"type":"string","enum":["USE_PEER_ADDRESS","SPECIFIC_IP"]},"RouteMap":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"entries":{"type":"array","items":{"type":"object","$ref":"#/definitions/RouteMapEntry"}},"id":{"type":"string"},"type":{"type":"string","default":"routemap"}},"required":["entries","type"],"example":{"id":"06513fe8-452f-5d24-9afd-6090f975b23e","version":"20e9b1a6-eb53-5bdc-b8d4-95d9df489618","name":"CLI Object 41","description":"Ji la sotza carcifrok zerecug ipeli bozzam noj mo ucizulu ti cuf filueg podu jimcebpe deceb isfu dugopo.","type":"routemap"}},"RouteMapWrapper":{"allOf":[{"$ref":"#/definitions/RouteMap"},{"$ref":"#/definitions/LinksWrapper"}]},"RouteMapEntry":{"type":"object","properties":{"sequence":{"type":"integer"},"action":{"type":"object","$ref":"#/definitions/EntryAction"},"interfaces":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"ipv4AccessListAddresses":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"ipv4PrefixListAddresses":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"ipv4AccessListNextHops":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"ipv4PrefixListNextHops":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"ipv4AccessListRouteSources":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"ipv4PrefixListRouteSources":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"ipv6AccessListAddress":{"type":"object","$ref":"#/definitions/ReferenceModel"},"ipv6PrefixListAddress":{"type":"object","$ref":"#/definitions/ReferenceModel"},"ipv6AccessListNextHop":{"type":"object","$ref":"#/definitions/ReferenceModel"},"ipv6PrefixListNextHop":{"type":"object","$ref":"#/definitions/ReferenceModel"},"ipv6AccessListRouteSource":{"type":"object","$ref":"#/definitions/ReferenceModel"},"ipv6PrefixListRouteSource":{"type":"object","$ref":"#/definitions/ReferenceModel"},"asPathLists":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"communityLists":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"policyLists":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"metricRouteValues":{"type":"array","items":{"type":"integer"}},"tagValues":{"type":"array","items":{"type":"integer"}},"routeTypeExternal1":{"type":"boolean"},"routeTypeExternal2":{"type":"boolean"},"routeTypeInternal":{"type":"boolean"},"routeTypeLocal":{"type":"boolean"},"routeTypeNSSAExternal1":{"type":"boolean"},"routeTypeNSSAExternal2":{"type":"boolean"},"metricBandwidth":{"type":"integer"},"metricType":{"type":"object","$ref":"#/definitions/RouteMetricType"},"asPathPrependASPath":{"type":"array","items":{"type":"integer"}},"asPathPrependLastASToASPath":{"type":"integer"},"asPathConvertRouteTagIntoASPath":{"type":"boolean"},"communityListSetting":{"type":"integer"},"communityListSettingInternet":{"type":"boolean"},"communityListSettingNoAdvertise":{"type":"boolean"},"communityListSettingNoExport":{"type":"boolean"},"automaticTagSetting":{"type":"boolean"},"localPreferenceSetting":{"type":"integer"},"weightSetting":{"type":"integer"},"originSetting":{"type":"object","$ref":"#/definitions/EntryOriginType"},"nextHopIPV4Setting":{"type":"object","$ref":"#/definitions/IPV4NextHopType"},"specificIPsIPV4Setting":{"type":"array","items":{"type":"string"}},"prefixListIPV4Setting":{"type":"object","$ref":"#/definitions/ReferenceModel"},"nextHopIPV6Setting":{"type":"object","$ref":"#/definitions/IPV6NextHopType"},"specificIPsIPV6Setting":{"type":"array","items":{"type":"string"}},"prefixListIPV6Setting":{"type":"object","$ref":"#/definitions/ReferenceModel"},"type":{"type":"string","default":"routemapentry"}},"required":["communityListSettingNoExport","routeTypeNSSAExternal1","automaticTagSetting","type","routeTypeNSSAExternal2","sequence","routeTypeExternal2","routeTypeExternal1","communityListSettingNoAdvertise","action","routeTypeInternal","routeTypeLocal","asPathConvertRouteTagIntoASPath","communityListSettingInternet"]},"RouteMetricType":{"type":"string","enum":["INTERNAL","TYPE1","TYPE2"]},"BGP":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"asNumber":{"type":"string","description":"Unique Autonomous number that enables bgp process. Valid values for autonomous number are from 1-4294967295 and 1.0-XX.YY."},"maxasLimit":{"type":"integer","description":"Specifies the maximum number of Autonomous system segments allowed. Valid values are from 1 to 254."},"logNeighborChanges":{"type":"boolean","description":"Logs the neighbor status. If true, enables the logging of neighbor change messages. Default value is true."},"transportPathMtuDiscovery":{"type":"boolean","description":"If true, enables BGP to automatically discover the best TCP path MTU for each BGP session. Default value is true."},"fastExternalFallOver":{"type":"boolean","description":"Enable BGP to terminate external BGP sessions of any directly adjacent peer if the link used to reach the peer goes down; without waiting for the hold-down timer to expire. Default value is true."},"enforceFirstAs":{"type":"boolean","description":"Allow a BGP routing process to discard updates received from an external BGP (eBGP) peers that do not list their autonomous system (AS) number as the first AS path segment in the AS_PATH attribute of the incoming route. Default value is true."},"asnotationDot":{"type":"boolean","description":"Change the default display and regular expression match format of BGP 4-byte autonomous system numbers from asplain (decimal values) to dot notation. Default value is false."},"bgpTimers":{"type":"object","$ref":"#/definitions/BGPTimers","description":"An instance of type BGPTimers that represents the configuration of timer values for this process."},"bgpGracefulRestart":{"type":"object","$ref":"#/definitions/BGPGracefulRestart","description":"An instance of type BGPGracefulRestart that enable or disable the BGP graceful restart capability for a BGP neighbor."},"bgpBestPath":{"type":"object","$ref":"#/definitions/BGPBestPath","description":"An instance of type BGPBestPath that represents comparision between similar routes received from external BGP (eBGP) peers during the best path selection process and switch the best path to the route with the lowest router ID."},"routerId":{"type":"string","description":"Represents a fixed router ID for the local BGP routing process."},"addressFamilyIPv4":{"type":"object","$ref":"#/definitions/AFIPv4","description":"An instance of type AFIPv4 that represents the address family configuration to configure a routing session using standard IPv4 address prefixes"},"addressFamilyIPv6":{"type":"object","$ref":"#/definitions/AFIPv6","description":"An instance of type AFIPv6 that represents the address family configuration to configure a routing session using standard IPv6 address prefixes"},"id":{"type":"string"},"type":{"type":"string","default":"bgp"}},"required":["transportPathMtuDiscovery","bgpBestPath","asNumber","asnotationDot","fastExternalFallOver","logNeighborChanges","type","enforceFirstAs","bgpTimers"]},"BGPWrapper":{"allOf":[{"$ref":"#/definitions/BGP"},{"$ref":"#/definitions/LinksWrapper"}]},"BGPBestPath":{"type":"object","properties":{"defaultLocalPreferenceValue":{"type":"integer","description":"Value indicates the local preference number. Higher value indicates higher preference.Ranges from 0 to 4294967295. Default is 100"},"alwaysCompareMed":{"type":"boolean","description":"If true, enables Multi Exit Discriminator (MED) comparison among paths learned from neighbors in different autonomous systems. Default is false."},"bestPathCompareRouterId":{"type":"boolean","description":"If true, compares between similar routes received from external BGP (eBGP) peers during the best path selection process and switch the best path to the route with the lowest router ID. Default is false. Default value is false."},"deterministicMed":{"type":"boolean","description":"If true, selects the best MED path advertised from the neighboring AS. Default is false."},"bestPathMedMissingAsWorst":{"type":"boolean","description":"If true, sets a path with a missing MED attribute as the least preferred path. Default is false."},"type":{"type":"string","default":"bgpbestpath"}},"required":["deterministicMed","defaultLocalPreferenceValue","alwaysCompareMed","type","bestPathCompareRouterId","bestPathMedMissingAsWorst"]},"BGPGracefulRestart":{"type":"object","properties":{"gracefulRestart":{"type":"boolean","description":"If true, enables BGP graceful restart capability. Default value is false"},"gracefulRestartRestartTime":{"type":"integer","description":"Maximum time period (in seconds) that the device will wait for a graceful-restart-capable neighbor to return to normal operation after arestart event occurs. Ranges from 1 to 3600. Default value is 120 seconds."},"gracefulRestartStalePathTime":{"type":"integer","description":"Maximum time period (in seconds) that the device will hold stale paths for a restarting peer. All stale paths are deleted after this timer expires. Ranges from 1 to 3600. The default value is 360 seconds."},"type":{"type":"string","default":"bgpgracefulrestart"}},"required":["gracefulRestart","type"]},"BGPTimers":{"type":"object","properties":{"keepAlive":{"type":"integer","description":"Frequency (in seconds) with which the device sends keepalive messages to its peer. Ranges from 0 to 65535 The default value is 60 seconds."},"holdTime":{"type":"integer","description":"Interval (in seconds) after not receiving a keepalive message that the device declares a peer dead. Ranges from 0 to 65535 The default value is 180 seconds."},"minHoldTime":{"type":"integer","description":"Interval (in seconds) after not receiving a keepalive message from a neighbor, that the device declares a neighbor dead. Ranges from 0 to 65535 The default value is 0 seconds."},"type":{"type":"string","default":"bgptimers"}},"required":["keepAlive","type","minHoldTime","holdTime"]},"AFAggregateAddressIPv4":{"type":"object","properties":{"advertiseMap":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An instance of type RouteMap that represents the name of the route map used to select the routes to create AS_SET origin communities."},"attributeMap":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An instance of type RouteMap that represents the name of the route map used to set the attribute of the aggregate route."},"suppressMap":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An instance of type RouteMap that represents the name of the route map used to select the routes to be suppressed."},"asSet":{"type":"boolean","description":"Generates autonomous system set path information. If true, enables asSet command. Default value is false."},"summaryOnly":{"type":"boolean","description":"Filters all more-specific routes from updates. If true, enables summaryOnly command. Default value is false."},"ipv4AggregateNetwork":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An instance of type NetworkObject that represents the IPv4 aggregate address."},"type":{"type":"string","default":"afaggregateaddressipv4"}},"required":["summaryOnly","ipv4AggregateNetwork","asSet","type"]},"AFAggregateAddressIPv6":{"type":"object","properties":{"advertiseMap":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An instance of type RouteMap that represents the name of the route map used to select the routes to create AS_SET origin communities."},"attributeMap":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An instance of type RouteMap that represents the name of the route map used to set the attribute of the aggregate route."},"suppressMap":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An instance of type RouteMap that represents the name of the route map used to select the routes to be suppressed."},"asSet":{"type":"boolean","description":"Generates autonomous system set path information. If true, enables asSet command. Default value is false."},"summaryOnly":{"type":"boolean","description":"Filters all more-specific routes from updates. If true, enables summaryOnly command. Default value is false."},"ipv6AggregateNetwork":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An instance of type NetworkObject that represents the IPv6 aggregate address."},"type":{"type":"string","default":"afaggregateaddressipv6"}},"required":["summaryOnly","ipv6AggregateNetwork","asSet","type"]},"AFBGPDistance":{"type":"object","properties":{"externalDistance":{"type":"integer","description":"Administrative distance for external BGP routes. Ranges from 1 to 255. Default value is 20"},"internalDistance":{"type":"integer","description":"Administrative distance for internal BGP routes. Ranges from 1 to 255. Default value is 200"},"localDistance":{"type":"integer","description":"Administrative distance for local BGP routes. Ranges from 1 to 255. Default value is 200"},"type":{"type":"string","default":"afbgpdistance"}},"required":["externalDistance","internalDistance","type","localDistance"]},"AFIPv4":{"type":"object","properties":{"distance":{"type":"object","$ref":"#/definitions/AFBGPDistance","description":"An instance of type AFBGPDistance that represents an administrative distance."},"defaultInformationOrginate":{"type":"boolean","description":"If true, configures a BGP routing process to distribute a default route. Default is false."},"bgpSupressInactive":{"type":"boolean","description":"If true, suppress the advertisement of routes that are not installed in the routing information base (RIB). Default is false."},"synchronization":{"type":"boolean","description":"If true, synchronize between BGP and your Interior Gateway Protocol (IGP) system. Default is false."},"bgpRedistributeInternal":{"type":"boolean","description":"If true, configures iBGP redistribution into an IGP, such as OSPF. Default is false."},"scanTime":{"type":"integer","description":"Scanning intervals of BGP routers for next hop validation. Valid values are from 5 to 60 seconds. The default is 60 seconds."},"aggregateTimer":{"type":"integer","description":"Represents interval at which BGP routes will be aggregated. Valid values are from 6 to 60 seconds. The default is 30 seconds."},"maximumPaths":{"type":"object","$ref":"#/definitions/AFMaximumPaths","description":"An instance of type AFMaximumPaths that controls the maximum number of parallel iBGP routes that can be installed in a routing table. If the ibgp keyword is not used, then the number_of_paths argument controls the maximum number of parallel EBGP routes."},"redistributeProtocols":{"type":"array","description":"Represents redistribute routes from another routing domain into a BGP autonomous system.","items":{"type":"object","$ref":"#/definitions/RedistributeProtocol"}},"injectMaps":{"type":"array","description":"Represents injectMaps for injecting more specific routes into a BGP routing table.","items":{"type":"object","$ref":"#/definitions/AFInjectMap"}},"afTableMap":{"type":"object","$ref":"#/definitions/AFTableMap","description":"An instance of type AFTableMap that modifies metric and tag values when the IP routing table is updated with BGP learned routes"},"autoSummary":{"type":"boolean","description":"If true, enables automatic summarization of subnet routes into network-level routes.Default is false."},"bgpNextHopTriggerDelay":{"type":"integer","description":"Sets the delay to trigger nexthop address tracking. Range is from 0 to 100. Default is 5"},"bgpNextHopTriggerEnable":{"type":"boolean","description":"If true, enables BGP next-hop address tracking immediately. Default is true."},"aggregateAddressesIPv4s":{"type":"array","description":"Represents aggregateAddressesIPv4s for aggregation of specific routes into one route.","items":{"type":"object","$ref":"#/definitions/AFAggregateAddressIPv4"}},"distributeLists":{"type":"array","description":"Represents distributeLists for the configuration of filtering incoming or outgoing routes using access control lists","items":{"type":"object","$ref":"#/definitions/DistributeList"}},"neighbors":{"type":"array","description":"Represents neighbors configured for this process","items":{"type":"object","$ref":"#/definitions/NeighborIPv4"}},"networks":{"type":"array","description":"Represents networks to be advertised by the BGP routing processes.","items":{"type":"object","$ref":"#/definitions/AFIPv4Network"}},"type":{"type":"string","default":"afipv4"}},"required":["distance","defaultInformationOrginate","aggregateTimer","bgpRedistributeInternal","scanTime","bgpSupressInactive","synchronization","bgpNextHopTriggerDelay","autoSummary","type","bgpNextHopTriggerEnable"]},"AFIPv4Network":{"type":"object","properties":{"routeMap":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An instance of type RouteMap that represents the identifier of a configured route map. The route map should be examined to filter the networks to be advertised. If not specified, all networks are advertised."},"ipv4Network":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An instance of type NetworkObject that represents the network that BGP will advertise."},"type":{"type":"string","default":"afipv4network"}},"required":["ipv4Network","type"]},"AFIPv6":{"type":"object","properties":{"distance":{"type":"object","$ref":"#/definitions/AFBGPDistance","description":"An instance of type AFBGPDistance that represents an administrative distance."},"defaultInformationOrginate":{"type":"boolean","description":"If true, configures a BGP routing process to distribute a default route. Default is false."},"bgpSupressInactive":{"type":"boolean","description":"If true, suppress the advertisement of routes that are not installed in the routing information base (RIB). Default is false."},"synchronization":{"type":"boolean","description":"If true, synchronize between BGP and your Interior Gateway Protocol (IGP) system. Default is false."},"bgpRedistributeInternal":{"type":"boolean","description":"If true, configures iBGP redistribution into an IGP, such as OSPF. Default is false."},"scanTime":{"type":"integer","description":"Scanning intervals of BGP routers for next hop validation. Valid values are from 5 to 60 seconds. The default is 60 seconds."},"aggregateTimer":{"type":"integer","description":"Represents interval at which BGP routes will be aggregated. Valid values are from 6 to 60 seconds. The default is 30 seconds."},"maximumPaths":{"type":"object","$ref":"#/definitions/AFMaximumPaths","description":"An instance of type AFMaximumPaths that controls the maximum number of parallel iBGP routes that can be installed in a routing table. If the ibgp keyword is not used, then the number_of_paths argument controls the maximum number of parallel EBGP routes."},"redistributeProtocols":{"type":"array","description":"Represents redistribute routes from another routing domain into a BGP autonomous system.","items":{"type":"object","$ref":"#/definitions/RedistributeProtocol"}},"injectMaps":{"type":"array","description":"Represents injectMaps for injecting more specific routes into a BGP routing table.","items":{"type":"object","$ref":"#/definitions/AFInjectMap"}},"aggregateAddressesIPv6":{"type":"array","description":"Represents aggregateAddressesIPv6s for aggregation of specific routes into one route.","items":{"type":"object","$ref":"#/definitions/AFAggregateAddressIPv6"}},"neighbors":{"type":"array","description":"Represents neighbors configured for this process","items":{"type":"object","$ref":"#/definitions/NeighborIPv6"}},"networks":{"type":"array","description":"Represents networks to be advertised by the BGP routing processes.","items":{"type":"object","$ref":"#/definitions/AFIPv6Network"}},"type":{"type":"string","default":"afipv6"}},"required":["distance","defaultInformationOrginate","aggregateTimer","bgpRedistributeInternal","scanTime","bgpSupressInactive","synchronization","type"]},"AFIPv6Network":{"type":"object","properties":{"routeMap":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An instance of type RouteMap that represents the identifier of a configured route map. The route map should be examined to filter the networks to be advertised. If not specified, all networks are advertised."},"prefixName":{"type":"string","description":"Represents prefix name to be advertised."},"ipv6Network":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An instance of type NetworkObject that represents the network that BGP will advertise."},"type":{"type":"string","default":"afipv6network"}},"required":["ipv6Network","type"]},"AFInjectMap":{"type":"object","properties":{"injectMap":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An instance of type RouteMap that contains the prefixes to inject into the local BGP routing table."},"existMap":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An instance of type RouteMap that contains the prefixes that the BGP speaker will track."},"copyAttributes":{"type":"boolean","description":"Configures the injected route to inherit attributes of the aggregate route. Value True indicates the presence of copyAttributes in the command. False indicates otherwise. Default is false."},"type":{"type":"string","default":"afinjectmap"}},"required":["injectMap","copyAttributes","existMap","type"]},"AFMaximumPaths":{"type":"object","properties":{"value":{"type":"integer","description":"Maximum number of parallel EBGP routes that can be installed in a routing table. Valid value is from 1 to 8."},"ibgpValue":{"type":"integer","description":"Maximum number of parallel iBGP routes that can be installed in a routing table. Valid value is from 1 to 8."},"type":{"type":"string","default":"afmaximumpaths"}},"required":["type"]},"AFTableMap":{"type":"object","properties":{"routeMap":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An instance of type RouteMap"},"filter":{"type":"boolean","description":"If true, enables the route map name. Default value is false."},"type":{"type":"string","default":"aftablemap"}},"required":["filter","routeMap","type"]},"NeighborAdvanced":{"type":"object","properties":{"neighborSecret":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An instance of type Secret that enables Message Digest 5 (MD5) authentication on a TCP connection between two BGP peers."},"neighborHops":{"type":"object","$ref":"#/definitions/NeighborHops","description":"Represents either neighborTtlSecurityHops or maxHopCount and disableConnectedCheck. maxHopCount: Accept and attempt BGP connections to external peers residing on networks that are not directly connected. disableConnectedCheck: Disable connection verification to establish an eBGP peering session with a single-hop peer that uses a loopback interfaceneighborTtlSecurityHops: Secure a BGP peering session and configures the maximum number of hops that separate two external BGP (eBGP) peers."},"neighborVersion":{"type":"integer","description":"Specifies the BGP version number. Valid value is 4. The default is to use Version 4."},"nextHopSelf":{"type":"boolean","description":"If true, enables router as the next hop for a BGP-speaking neighbor or peer group. Default value is false"},"neighborWeight":{"type":"integer","description":"Assign a weight to a neighbor connection. Valid range is from 0 to 65535."},"sendCommunity":{"type":"boolean","description":"Specifies that communities attributes should be sent to a BGP neighbor.If true, standard communities are sent to neighbors. Default value is false."},"neighborTransportConnectionMode":{"type":"object","$ref":"#/definitions/NeighborTransportConnectionMode","description":"An instance of type NeighborTransportConnectionMode that enables TCP transport session option for a BGP session. Type of connection can be active or passive."},"neighborTransportPathMTUDiscovery":{"type":"object","$ref":"#/definitions/NeighborTransportPathMTUDiscovery","description":"An instance of type NeighborTransportPathMTUDiscovery that enables TCP transport path maximum transmission unit (MTU) discovery. TCP path MTU discovery is enabled by default."},"type":{"type":"string","default":"neighboradvanced"}},"required":["nextHopSelf","type","sendCommunity"]},"NeighborAdvertiseMap":{"type":"object","properties":{"routeMap":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An instance of type {RouteMap that represents the route map that will be advertised if the conditions of the exist map or non-exist map are met."},"existMap":{"type":"boolean","description":"Value True selects exist map and value false specifies non-exist map.. Default value is false."},"existRouteMap":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An instance of type RouteMap that represents exist or non exist map. The name is compared with the routes in the BGP table to determine whether the advertise-map route is advertised or not."},"type":{"type":"string","default":"neighboradvertisemap"}},"required":["routeMap","existRouteMap","existMap","type"]},"NeighborDefaultOriginate":{"type":"object","properties":{"routeMap":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An instance of type RouteMap that represents name of the route-map that allows route 0.0.0.0 to be injected conditionally."},"type":{"type":"string","default":"neighbordefaultoriginate"}},"required":["type"]},"NeighborDistributeList":{"type":"object","properties":{"accessListName":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An instance of type StandardAccessList that represents the name of a standard access list."},"filterUpdateAction":{"type":"object","$ref":"#/definitions/FilterDirection","description":"Applies access list to either incoming or outgoing routes. IN applies access list to incoming advertisements from that neighbor. OUT applies access list to outgoing advertisements from that neighbor."},"type":{"type":"string","default":"neighbordistributelist"}},"required":["filterUpdateAction","accessListName","type"]},"NeighborEBGPMultiHop":{"type":"object","properties":{"maxHopCount":{"type":"integer","description":"Specifies time-to-live in the range from 1 to 255 hops. Default value is 255."},"disableConnectedCheck":{"type":"boolean","description":"If true, disables connection verification to establish an eBGP peering session with a single-hop peer that uses a loopback interface. Default value is false"},"type":{"type":"string","default":"neighborebgpmultihop"}},"required":["maxHopCount","disableConnectedCheck","type"]},"NeighborFallOverBFD":{"type":"object","properties":{"fallOverBFD":{"type":"boolean","description":"If true, enables BFD support for fall-over. Default value is false."},"neighborFallOverBFDOption":{"type":"object","$ref":"#/definitions/NeighborFallOverBFDOption","description":"Enables BGP to monitor the peering session of a specified neighbor for adjacency changes and to deactivate the peering session."},"type":{"type":"string","default":"neighborfalloverbfd"}},"required":["fallOverBFD","type"]},"NeighborFallOverBFDOption":{"type":"string","enum":["SINGLEHOP","MULTIHOP"]},"NeighborFilterList":{"type":"object","properties":{"asPathList":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An instance of type ASPathList that represents the number of an autonomous system path access list."},"filterUpdateAction":{"type":"object","$ref":"#/definitions/FilterDirection","description":"Applies access list to either incoming or outgoing routes. IN applies access list to incoming advertisements from that neighbor. OUT applies access list to outgoing advertisements from that neighbor."},"type":{"type":"string","default":"neighborfilterlist"}},"required":["filterUpdateAction","asPathList","type"]},"NeighborGeneral":{"type":"object","properties":{"description":{"type":"string","description":"Description of the neighbor. Maximum character count is 80."},"shutdown":{"type":"boolean","description":"If true, disables a neighbor or peer group. Default value is false"},"fallOverBFD":{"type":"object","$ref":"#/definitions/NeighborFallOverBFD","description":"An instance of type NeighborFallOverBFD that enables or disables BFD support for fall-over."},"type":{"type":"string","default":"neighborgeneral"}},"required":["type","shutdown"]},"NeighborHAMode":{"type":"object","properties":{"disable":{"type":"boolean","description":"If true, specifies if the Neighbor HA graceful restart is disabled. Default value is false"},"type":{"type":"string","default":"neighborhamode"}},"required":["disable","type"]},"NeighborIPv4":{"type":"object","properties":{"remoteAs":{"type":"string","description":"Represents remote Autonomous number for BGP neighbor."},"activate":{"type":"boolean","description":"If true, exchange information with a BGP neighbor. Default value is false."},"neighborGeneral":{"type":"object","$ref":"#/definitions/NeighborGeneral","description":"Represents settings of type NeighborGeneral such as BFD support for fall-over"},"neighborAdvanced":{"type":"object","$ref":"#/definitions/NeighborAdvanced","description":"Represents settings of type NeighborAdvanced such as NeighborHops support for neighborTtlSecurityHops, maxHopCount and disableConnectedCheck"},"neighborRoutes":{"type":"object","$ref":"#/definitions/NeighborRoutes","description":"Represents settings of type NeighborRoutes such as Neighbor Default Originate, Neighbor Advertise Map"},"neighborRouteMap":{"type":"array","description":"Represents neighbor route-maps for applying a route map to incoming or outgoing routes.","items":{"type":"object","$ref":"#/definitions/NeighborRouteMap"}},"neighborFilterList":{"type":"array","description":"Represents neighbor filter-list for establishing BGP filters.","items":{"type":"object","$ref":"#/definitions/NeighborFilterList"}},"neighborMaximumPrefix":{"type":"object","$ref":"#/definitions/NeighborMaximumPrefix","description":"An instance of type NeighborMaximumPrefix that controls the number of prefixes that can be received from a neighbor."},"haModeGracefulRestart":{"type":"boolean","description":"If true, enables the graceful restart configuration when the system is configured in HA mode. Default value is false."},"neighborTimers":{"type":"object","$ref":"#/definitions/NeighborTimers","description":"An instance of type NeighborTimers that sets the timers for a specific BGP peer or peer group."},"neighborLocalAs":{"type":"object","$ref":"#/definitions/NeighborLocalAs","description":"An instance of type NeighborLocalAs that customizes the AS_PATH attribute for routes received from an external Border Gateway Protocol (eBGP) neighbor."},"ipv4Address":{"type":"string","description":"Represents neighbor ipv4 address."},"neighborDistributeLists":{"type":"array","description":"Represents neighbor distribute-lists for distributing BGP neighbor information as specified in an access list.","items":{"type":"object","$ref":"#/definitions/NeighborDistributeList"}},"ipv4PrefixListFilter":{"type":"array","description":"Represents neighbor distribute-lists for distributing BGP neighbor information as specified in an prefix list.","items":{"type":"object","$ref":"#/definitions/IPV4PrefixListFilter"}},"neighborHAMode":{"type":"object","$ref":"#/definitions/NeighborHAMode","description":"An instance of type NeighborHAMode that enables or disables Neighbor HA graceful restart mode."},"type":{"type":"string","default":"neighboripv4"}},"required":["haModeGracefulRestart","remoteAs","activate","type"]},"NeighborIPv6":{"type":"object","properties":{"remoteAs":{"type":"string","description":"Represents remote Autonomous number for BGP neighbor."},"activate":{"type":"boolean","description":"If true, exchange information with a BGP neighbor. Default value is false."},"neighborGeneral":{"type":"object","$ref":"#/definitions/NeighborGeneral","description":"Represents settings of type NeighborGeneral such as BFD support for fall-over"},"neighborAdvanced":{"type":"object","$ref":"#/definitions/NeighborAdvanced","description":"Represents settings of type NeighborAdvanced such as NeighborHops support for neighborTtlSecurityHops, maxHopCount and disableConnectedCheck"},"neighborRoutes":{"type":"object","$ref":"#/definitions/NeighborRoutes","description":"Represents settings of type NeighborRoutes such as Neighbor Default Originate, Neighbor Advertise Map"},"neighborRouteMap":{"type":"array","description":"Represents neighbor route-maps for applying a route map to incoming or outgoing routes.","items":{"type":"object","$ref":"#/definitions/NeighborRouteMap"}},"neighborFilterList":{"type":"array","description":"Represents neighbor filter-list for establishing BGP filters.","items":{"type":"object","$ref":"#/definitions/NeighborFilterList"}},"neighborMaximumPrefix":{"type":"object","$ref":"#/definitions/NeighborMaximumPrefix","description":"An instance of type NeighborMaximumPrefix that controls the number of prefixes that can be received from a neighbor."},"haModeGracefulRestart":{"type":"boolean","description":"If true, enables the graceful restart configuration when the system is configured in HA mode. Default value is false."},"neighborTimers":{"type":"object","$ref":"#/definitions/NeighborTimers","description":"An instance of type NeighborTimers that sets the timers for a specific BGP peer or peer group."},"neighborLocalAs":{"type":"object","$ref":"#/definitions/NeighborLocalAs","description":"An instance of type NeighborLocalAs that customizes the AS_PATH attribute for routes received from an external Border Gateway Protocol (eBGP) neighbor."},"ipv6Address":{"type":"string","description":"Represents neighbor ipv6 address."},"ipv6Prefix":{"type":"integer","description":"Represents prefix of the IPv6 address."},"ipv6PrefixListFilter":{"type":"array","description":"Represents neighbor distribute-lists for distributing BGP neighbor information as specified in an prefix list.","items":{"type":"object","$ref":"#/definitions/IPV6PrefixListFilter"}},"type":{"type":"string","default":"neighboripv6"}},"required":["haModeGracefulRestart","remoteAs","activate","type"]},"NeighborLocalAs":{"type":"object","properties":{"localAsNumber":{"type":"string","description":"Represents the number of an autonomous system to prepend to the AS_PATH attribute. The range of values for this argument is any valid autonomous system number from 1 to 4294967295 or 1.0 to XX.YY."},"neighborLocalAsOption":{"type":"object","$ref":"#/definitions/NeighborLocalAsOption","description":"Allows a router to appear to be a member of AS. Setting NO_PREPEND does not prepend local-as to updates from ebgp neighbor. Setting REPLACE_AS replaces real AS with local AS in the EBGP updates also includes no-prepend. Setting DUAL_AS accepts either real AS or local AS from the ebgp neighbor also includes no-prepend and replace-as."},"type":{"type":"string","default":"neighborlocalas"}},"required":["neighborLocalAsOption","type","localAsNumber"]},"NeighborLocalAsOption":{"type":"string","enum":["NONE","NO_PREPEND","REPLACE_AS","DUAL_AS"]},"NeighborMaximumPrefix":{"type":"object","properties":{"maxPrefixLimit":{"type":"integer","description":"Represents maximum number of prefixes allowed from this neighbor. Valid range is 1 to 2147483647."},"thresholdValue":{"type":"integer","description":"Specifies at what percentage of maximum the router starts to generate a warning message. Valid range is 1 to 100. Default value is 75."},"restartInterval":{"type":"integer","description":"Specifies the time interval after which the BGP neighbor restarts. Valid range is 1 to 65535."},"neighborMaximumPrefixOption":{"type":"object","$ref":"#/definitions/NeighborMaximumPrefixOption","description":"Represents configuration to control the number of prefixes that can be received from a neighbor. WARNING_ONLY specifies the time interval after which the BGP neighbor restarts.RESTART allows the router to generate a log message when the maximum number of prefixes is exceeded, instead of terminating the peering."},"type":{"type":"string","default":"neighbormaximumprefix"}},"required":["maxPrefixLimit","thresholdValue","type"]},"NeighborMaximumPrefixOption":{"type":"string","enum":["WARNING_ONLY","RESTART"]},"NeighborRouteMap":{"type":"object","properties":{"routeMap":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An instance of type RouteMap."},"filterUpdateAction":{"type":"object","$ref":"#/definitions/FilterDirection","description":"Applies a route map to either incoming or outgoing routes. IN applies a route map to incoming routes. OUT applies a route map to outgoing routes."},"type":{"type":"string","default":"neighborroutemap"}},"required":["routeMap","filterUpdateAction","type"]},"NeighborRoutes":{"type":"object","properties":{"advertisementInterval":{"type":"integer","description":"Sets the minimum interval between the sending of BGP routing updates. Valid values are from 0 to 600."},"neighborAdvertiseMaps":{"type":"array","description":"Represents neighbor advertise-maps for BGP conditional advertisement feature. The condition is defined by a route map called non-exist-map for conditions that do not exist or by a route map called exist-map for conditions that do exist.","items":{"type":"object","$ref":"#/definitions/NeighborAdvertiseMap"}},"neighborDefaultOriginate":{"type":"object","$ref":"#/definitions/NeighborDefaultOriginate","description":"An instance of type NeighborDefaultOriginate that allows a BGP speaker (the local router) to send the default route 0.0.0.0 to a neighbor for use as a default route."},"removePrivateAs":{"type":"boolean","description":"If true, removes private autonomous system numbers from outbound routing updates. Default value is false."},"type":{"type":"string","default":"neighborroutes"}},"required":["removePrivateAs","type"]},"NeighborTTLSecurityHop":{"type":"object","properties":{"neighborTtlSecurityHops":{"type":"integer","description":"Represents the number of hops that separate the eBGP peers.The TTL value is calculated by the router from the configured hop-count argument. Valid values are from 1 to 254."},"type":{"type":"string","default":"neighborttlsecurityhop"}},"required":["neighborTtlSecurityHops","type"]},"NeighborTimers":{"type":"object","properties":{"keepAliveInterval":{"type":"integer","description":"Represents the frequency (in seconds) with which the device sends keepalive messages to its peer. Valid values are from 0 to 65535. Default value is 60 seconds."},"holdTime":{"type":"integer","description":"Represents the interval (in seconds) after not receiving a keepalive message that the device declares a peer dead. Valid values are from 0 to 65535. Default value is 180 seconds."},"minimumHoldTime":{"type":"integer","description":"Represents the minimum interval (in seconds) after not receiving a keepalive message that the device declares a peer dead. Valid values are from 0 to 65535. Default value is 0 seconds."},"type":{"type":"string","default":"neighbortimers"}},"required":["keepAliveInterval","minimumHoldTime","type","holdTime"]},"NeighborTransportConnectionMode":{"type":"string","enum":["ACTIVE","PASSIVE"]},"NeighborTransportPathMTUDiscovery":{"type":"object","properties":{"disable":{"type":"boolean","description":"If true, disables TCP path MTU discovery. Default value is false"},"type":{"type":"string","default":"neighbortransportpathmtudiscovery"}},"required":["disable","type"]},"FilterProtocol":{"type":"string","enum":["CONNECTED","STATIC","RIP","BGP","OSPF","EIGRP"]},"IncomingRouteFilter":{"type":"object","properties":{"accessList":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An object of type standard access list that defines which networks are to be received and which are to be suppressed in routing updates"},"inInterface":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"Optional, specifies an interface to limit the filter to updates received on that interface"},"type":{"type":"string","default":"incomingroutefilter"}},"required":["accessList","type"]},"OutgoingRouteFilter":{"type":"object","properties":{"accessList":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An object of type standard access list that defines which networks are to be received and which are to be suppressed in routing updates"},"protocol":{"type":"object","$ref":"#/definitions/FilterProtocol","description":"Optional, if specified filters peers and networks learned through the routes of the specified protocol"},"processId":{"type":"string","description":"The identifier of the process if the specified protocol is either OSPF, BGP, or EIGRP"},"type":{"type":"string","default":"outgoingroutefilter"}},"required":["accessList","type"]},"DetectionMechanism":{"type":"string","enum":["DEAD_INTERVAL","HELLO_MULTIPLIER"]},"OSPFDeadIntervalMechanism":{"type":"object","properties":{"helloInterval":{"type":"integer","description":"Specifies the time in seconds in between the hello packets being sent. Ranges from 1 to 8192, default is 10"},"deadInterval":{"type":"integer","description":"Specifies the time in seconds that the hello packets are not seen before a neighbor indicates that the router is down. Ranges from 1 to 8192, default is 4 times hello interval or 40"},"type":{"type":"string","default":"ospfdeadintervalmechanism"}},"required":["deadInterval","helloInterval","type"]},"OSPFHelloMultiplierMechanism":{"type":"object","properties":{"helloMultiplier":{"type":"integer","description":"Specifies the number of hello packets to send in one second. Ranges from 3 to 20"},"type":{"type":"string","default":"ospfhellomultipliermechanism"}},"required":["helloMultiplier","type"]},"OSPFInterfaceSettings":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"deviceInterface":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"The interface for which ospf settings has to be configured. The interface must not be a BVI interface, member of BVI interface, or be passive, or used at high availability configuration and should be in enabled state"},"ospfProtocolConfiguration":{"type":"object","$ref":"#/definitions/OSPFProtocolConfiguration","description":"Represents the configuration to be made for OSPF protocol"},"id":{"type":"string"},"type":{"type":"string","default":"ospfinterfacesettings"}},"required":["deviceInterface","ospfProtocolConfiguration","type"]},"OSPFInterfaceSettingsWrapper":{"allOf":[{"$ref":"#/definitions/OSPFInterfaceSettings"},{"$ref":"#/definitions/LinksWrapper"}]},"OSPFProtocolConfiguration":{"type":"object","properties":{"authentication":{"type":"object","$ref":"#/definitions/AuthenticationBase","description":"The authentication to set for the OSPF protocol. If null, considered as no authentication"},"packetCost":{"type":"integer","description":"Specifies the cost of sending a packet on the given OSPF interface. Ranges from 1 to 65535."},"priority":{"type":"integer","description":"Specifies the priority to help determine the OSPF designated router for a network. Ranges from 0 to 255"},"ptpNonBroadcast":{"type":"boolean","description":"If true, configures the interface network type as point-to-point non-broadcast"},"filterOutgoingLSA":{"type":"boolean","description":"If true, configures the interface to filter outgoing LSAs"},"ignoreMtuMismatch":{"type":"boolean","description":"If true, ignores the MTU mismatch among OSPF neighbors during the database description(DBD) exchange"},"lostNeighborDetectionMechanism":{"type":"object","$ref":"#/definitions/OSPFLostNeighborDetectionMechanism","description":"Represents the configuration for lost neighbor detection mechanism, default is the OSPFDeadIntervalMechanism"},"retransmitInterval":{"type":"integer","description":"The number of seconds between LSA retransmissions for adjacencies belonging to an OSPF interface. Ranges from 1 to 8192, default is 5"},"transmitDelay":{"type":"integer","description":"Sets the estimated number of seconds required to send a link-state update packet on an OSPF interface. Ranges from 1 to 8192, default is 1"},"type":{"type":"string","default":"ospfprotocolconfiguration"}},"required":["retransmitInterval","lostNeighborDetectionMechanism","type","transmitDelay"]},"RouteLevel":{"type":"string","enum":["LEVEL_1","LEVEL_1_2","LEVEL_2"]},"AdministrativeDistance":{"type":"object","properties":{"interArea":{"type":"integer","description":"Administrative distance for inter area routes. Ranges from 1 to 255, default is 110"},"intraArea":{"type":"integer","description":"Administrative distance for inter area routes. Ranges from 1 to 255, default is 110"},"external":{"type":"integer","description":"Administrative distance for external type 5 and type 7 routes. Ranges from 1 to 255, default is 110"},"type":{"type":"string","default":"administrativedistance"}},"required":["external","type","interArea","intraArea"]},"Area":{"type":"object","properties":{"areaId":{"type":"string","description":"The identifier of this area. Can be an IPv4 address or an integer ranging from 0 to 4294967295"},"areaNetworks":{"type":"array","description":"Defines the networks on which OSPF runs for this area","items":{"type":"object","$ref":"#/definitions/AreaNetwork"}},"authentication":{"type":"object","$ref":"#/definitions/Authentication","description":"The authentication to use for this area. Setting NONE has the same effect as not enabling authentication."},"defaultCost":{"type":"integer","description":"Sets the summary default cost for Stub or NSSA area. Ranges from 0 to 16777214"},"filterList":{"type":"array","description":"Represents the configuration to filter prefixes advertised in type 3 link-state advertisements (LSAs) between OSPF areas of an area border router","items":{"type":"object","$ref":"#/definitions/PrefixFilter"}},"areaType":{"type":"object","$ref":"#/definitions/AreaType","description":"Represents the configuration of this area as Stub or NSSA"},"virtualLinks":{"type":"array","description":"Represents the configuration of one or more virtual links from this area. Cannot be configured if the area type is Stub or NSSA","items":{"type":"object","$ref":"#/definitions/VirtualLink"}},"areaRanges":{"type":"array","description":"Represents the configuration of route summarization between areas. For use only with area border routers","items":{"type":"object","$ref":"#/definitions/AreaRange"}},"type":{"type":"string","default":"area"}},"required":["areaId","type"]},"AreaNetwork":{"type":"object","properties":{"ipv4Network":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An IPv4 network object that defines the network on which OSPF should run for a given area"},"tagInterface":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"Optional, if specified, the interface must be in the network identified by given network object. Useful if you want to prevent the changes to this interface when they are not in accordance with the OSPF process running on this interface"},"type":{"type":"string","default":"areanetwork"}},"required":["ipv4Network","type"]},"AreaRange":{"type":"object","properties":{"addressNetwork":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"The network object that defines the network to use as a range for route summarization"},"advertise":{"type":"boolean","description":"If false, sets the address range status to DoNotAdvertise. The Type 3 summary LSA is suppressed, and the component networks remain hidden from other networks. Default is true."},"type":{"type":"string","default":"arearange"}},"required":["addressNetwork","type","advertise"]},"Authentication":{"type":"string","enum":["NONE","PASSWORD","MESSAGE_DIGEST"]},"DefaultInformationOriginate":{"type":"object","properties":{"always":{"type":"boolean","description":"If true, always advertises default route, whether or not default route exists"},"routeMetric":{"type":"object","$ref":"#/definitions/RouteMetric","description":"Represents the route metric configuration for this process"},"routeMap":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"The RouteMap object to use. Specifies the routing process that generates the default route if the route map is satisfied"},"type":{"type":"string","default":"defaultinformationoriginate"}},"required":["routeMetric","type"]},"FilterDirection":{"type":"string","enum":["IN","OUT"]},"LogAdjacencyChanges":{"type":"object","properties":{"logType":{"type":"object","$ref":"#/definitions/LogType","description":"The type of logging to use when logging the neighbor changes, default is DEFAULT"},"type":{"type":"string","default":"logadjacencychanges"}},"required":["logType","type"]},"LogType":{"type":"string","enum":["DEFAULT","DETAILED"]},"LsaThrottleTimer":{"type":"object","properties":{"initialDelay":{"type":"integer","description":"Delay to generate first occurrence of LSA in milliseconds. Ranges from 0 to 600000, default is 0"},"minimumDelay":{"type":"integer","description":"Minimum delay between originating the same LSA in milliseconds. Ranges from 1 to 600000, default is 5000"},"maximumDelay":{"type":"integer","description":"Maximum delay between originating the same LSA in milliseconds. Ranges from 1 to 600000, default is 5000"},"type":{"type":"string","default":"lsathrottletimer"}},"required":["maximumDelay","initialDelay","type","minimumDelay"]},"MD5Authentication":{"type":"object","properties":{"md5KeyId":{"type":"integer","description":"The identifier to associate with the message-digest key for MD5 authentication. Ranges from 1 to 255"},"md5Key":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An object of type secret that supplies the password to use while configuring the message-digest password for OSPF MD5 authentication. The password can be up to sixteen ascii characters, but cannot start with a number immediately followed by space"},"type":{"type":"string","default":"md5authentication"}},"required":["md5Key","md5KeyId","type"]},"MetricType":{"type":"string","enum":["TYPE_1","TYPE_2"]},"Neighbor":{"type":"object","properties":{"ipAddress":{"type":"string","description":"The IPv4 address of the OSPFv2 neighbor"},"neighborInterface":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"The interface to use to communicate with the neighbor"},"type":{"type":"string","default":"neighbor"}},"required":["neighborInterface","ipAddress","type"]},"NsfGracefulRestart":{"type":"object","properties":{"nsfMechanism":{"type":"object","$ref":"#/definitions/NsfMechanism","description":"NSF Capability Mechanism to use, default is BOTH.<br>If CISCO, device will be configured with Link Local Signalling(lls) block capability<br>If IETF, device will be configured with opaque Link State Advertisement(LSA) capability<br>If Both, device will be configured as both LLS and opaque LSA capable<br>If None, device will be configured as NOT capable of LLS or opaque LSA"},"ietfStrictLsaChecking":{"type":"boolean","description":"If true, enables the strict LSA checking feature that allows a helper router to terminate the graceful restart process if it detects a changed LSA that would cause flooding during the graceful restart process. Strict LSA checking is disabled by default. This setting takes effect only when the Nsf Mechanism is configured as IETF or BOTH"},"type":{"type":"string","default":"nsfgracefulrestart"}},"required":["nsfMechanism","type"]},"NsfMechanism":{"type":"string","enum":["CISCO","IETF","BOTH","NONE"]},"Nssa":{"type":"object","properties":{"noRedistribution":{"type":"boolean","description":"If true, no redistribution into this area"},"noSummary":{"type":"boolean","description":"If true, no summary LSA is sent into this area"},"routeMetric":{"type":"object","$ref":"#/definitions/RouteMetric","description":"Represents the configuration of type 7 default route that can be used to reach external destinations"},"type":{"type":"string","default":"nssa"}},"required":["type"]},"OSPF":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"processId":{"type":"string","description":"An identifier for the OSPF Process. Must be in the range 1 - 65535 inclusive."},"logAdjacencyChanges":{"type":"object","$ref":"#/definitions/LogAdjacencyChanges","description":"Represents the way adjacency changes must be logged. If null, disables logging for this process"},"processConfiguration":{"type":"object","$ref":"#/definitions/ProcessConfiguration","description":"Represents the advanced configuration for this process"},"areas":{"type":"array","description":"Represents the areas to be configured for this process","items":{"type":"object","$ref":"#/definitions/Area"}},"neighbors":{"type":"array","description":"Represents the neighbors to be configured for this process","items":{"type":"object","$ref":"#/definitions/Neighbor"}},"summaryAddresses":{"type":"array","description":"Represents the summary addresses configured for route summarization when redistributing routes into this process. Each object represents the configuration of the advertisement on one summary route for all redistributed routes included for a network address and mask. Use AreaRange under Area to configure route summarization between OSPF areas","items":{"type":"object","$ref":"#/definitions/SummaryAddress"}},"filterRules":{"type":"array","description":"Represents the configuration of filtering incoming or outgoing routes using access control lists","items":{"type":"object","$ref":"#/definitions/DistributeList"}},"redistributeProtocols":{"type":"array","description":"Represents the configuration of a list of protocols whose routes are redistributed into this process","items":{"type":"object","$ref":"#/definitions/RedistributeProtocol"}},"id":{"type":"string"},"type":{"type":"string","default":"ospf"}},"required":["processId","processConfiguration","type"]},"OSPFWrapper":{"allOf":[{"$ref":"#/definitions/OSPF"},{"$ref":"#/definitions/LinksWrapper"}]},"PasswordAuthentication":{"type":"object","properties":{"authKey":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An object of type secret that supplies the password to use while configuring the plain-text password for OSPF authentication. The password can be up to eight ascii characters, but cannot start with a number immediately followed by space"},"type":{"type":"string","default":"passwordauthentication"}},"required":["authKey","type"]},"PrefixFilter":{"type":"object","properties":{"prefixList":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"The IPv4PrefixList object to use for filtering prefixes advertised in type 3 LSAs between OSPF areas"},"filterDirection":{"type":"object","$ref":"#/definitions/FilterDirection","description":"The direction in which the given prefix list must be applied. IN indicates that the list is applied to prefixes advertised to the specified area from other areas, OUT indicates the prefixes advertised out of the specified area to other areas. Default is IN."},"type":{"type":"string","default":"prefixfilter"}},"required":["prefixList","type","filterDirection"]},"ProcessConfiguration":{"type":"object","properties":{"routerId":{"type":"string","description":"An IPv4 address, used to identify a specific device within an OSPF database. If null, a router id is automatically assigned by the system"},"rfc1583Compatible":{"type":"boolean","description":"If true, calculates summary route costs according to RFC 1583"},"ignoreLsaMospf":{"type":"boolean","description":"If true, suppresses the sending of syslog messages when the router receives unsupported LSA Type 6 MOSPF packets"},"administrativeDistance":{"type":"object","$ref":"#/definitions/AdministrativeDistance","description":"Represents the configuration of administrative distances for OSPF routes"},"timers":{"type":"object","$ref":"#/definitions/Timers","description":"Represents the configuration of timer values for this process"},"defaultInformationOriginate":{"type":"object","$ref":"#/definitions/DefaultInformationOriginate","description":"Represents the configuration of default external routes into OSPF routing domain"},"nsfGracefulRestart":{"type":"object","$ref":"#/definitions/NsfGracefulRestart","description":"Represents the configuration of Non-stop forward capability using either NSF Cisco (RFC 4811 and RFC 4812) or NSF IETF (RFC 3623)"},"type":{"type":"string","default":"processconfiguration"}},"required":["timers","administrativeDistance","type"]},"RouteMetric":{"type":"object","properties":{"metricValue":{"type":"integer","description":"Default metric, specifies the metric used for generating the default route. Ranges from 1 to 16777214, default is 1."},"metricType":{"type":"object","$ref":"#/definitions/MetricType","description":"Specifies the external link type that is associated with the default route that is advertised into the OSPF domain, default is TYPE_2"},"type":{"type":"string","default":"routemetric"}},"required":["metricType","metricValue","type"]},"SpfThrottleTimer":{"type":"object","properties":{"initialDelay":{"type":"integer","description":"Delay between receiving a change to SPF calculation in milliseconds. Ranges from 1 to 600000, default is 5000"},"minimumHoldTime":{"type":"integer","description":"Delay between first and second SPF calculation in milliseconds. Ranges from 1 to 600000, default is 10000"},"maximumWaitTime":{"type":"integer","description":"Maximum wait time in milliseconds for SPF calculations. Ranges from 1 to 600000, default is 10000"},"type":{"type":"string","default":"spfthrottletimer"}},"required":["minimumHoldTime","maximumWaitTime","initialDelay","type"]},"Stub":{"type":"object","properties":{"noSummary":{"type":"boolean","description":"If true, prevents sending a summary link advertisement (LSA Type 3) into the stub area"},"type":{"type":"string","default":"stub"}},"required":["type"]},"SummaryAddress":{"type":"object","properties":{"summaryNetwork":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"The network object to use that acts as an aggregate address for OSPF"},"advertise":{"type":"boolean","description":"If false, not advertised when translating OSPF type-7 LSA. Default is true"},"tagNumber":{"type":"integer","description":"A number to tag the summarized address. Ranges from 0 to 4294967295"},"type":{"type":"string","default":"summaryaddress"}},"required":["summaryNetwork","type","advertise"]},"Timers":{"type":"object","properties":{"lsaArrival":{"type":"integer","description":"The minimum interval in milliseconds between accepting the same LSA from OSPF neighbors. Ranges from 0 to 600000, default is 1000"},"floodPacing":{"type":"integer","description":"The time in milliseconds at which LSAs in the flooding queue are paced in between updates. Ranges from 5 to 100, default is 33"},"lsaGroup":{"type":"integer","description":"The number of seconds in the interval at which LSAs are grouped, refreshed, check summed, or aged. Ranges from 10 to 1800, default is 240"},"retransmission":{"type":"integer","description":"The time in milliseconds at which LSAs in the retransmission queue are paced. Ranges from 5 to 200, default is 66"},"lsaThrottleTimer":{"type":"object","$ref":"#/definitions/LsaThrottleTimer","description":"LSA throttle timer values in milliseconds (initial-delay ≤ min-delay ≤ max-delay)"},"spfThrottleTimer":{"type":"object","$ref":"#/definitions/SpfThrottleTimer","description":"SPF calculation timer values in milliseconds (initial delay ≤ minimum hold time ≤ maximum wait time"},"type":{"type":"string","default":"timers"}},"required":["spfThrottleTimer","lsaThrottleTimer","lsaGroup","retransmission","type","lsaArrival","floodPacing"]},"VirtualLink":{"type":"object","properties":{"routerId":{"type":"string","description":"The router id of the remote device running OSPF"},"authentication":{"type":"object","$ref":"#/definitions/AuthenticationBase","description":"Represents the authentication configuration. If null, indicates no authentication"},"helloInterval":{"type":"integer","description":"Specifies the time in seconds between the hello packets that are sent on an interface. The value must be the same for all routers and access servers that are attached to a common network. Valid values range from 1 to 8192. The default is 10."},"deadInterval":{"type":"integer","description":"Specifies the time in seconds that hello packets are not seen before a neighbor indicates that the router is down. The default is four times the hello interval, or 40 seconds. Valid values range from 1 to 8192."},"retransmitInterval":{"type":"integer","description":"The time in seconds between LSA retransmissions for adjacencies that belong to the interface. The retransmit interval is the expected round-trip delay between any two routers on the attached network. The value must be greater than the expected round-trip delay, and can range from 1 to 8192. The default is 5."},"transmitDelay":{"type":"integer","description":"Specifies the estimated time in seconds that is required to send a link-state update packet on the interface. The integer value must be greater than zero. LSAs in the update packet have their own ages incremented by this amount before transmission. The range of values can be from 1 to 8192. The default is 1."},"type":{"type":"string","default":"virtuallink"}},"required":["retransmitInterval","deadInterval","routerId","helloInterval","type","transmitDelay"]},"IPV4PrefixListFilter":{"type":"object","properties":{"filterDirection":{"type":"object","$ref":"#/definitions/FilterDirection","description":"Applies prefix list to either incoming or outgoing routes. FilterDirection.IN applies prefix list to incoming advertisements from that neighbor. FilterDirection.OUT applies prefix list to outgoing advertisements from that neighbor."},"prefixList":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An instance of type {@link IPV4PrefixList} that specifies the IPV4 PrefixList"},"type":{"type":"string","default":"ipv4prefixlistfilter"}},"required":["prefixList","type","filterDirection"]},"IPV6PrefixListFilter":{"type":"object","properties":{"filterDirection":{"type":"object","$ref":"#/definitions/FilterDirection","description":"Applies prefix list to either incoming or outgoing routes. FilterDirection.IN applies prefix list to incoming advertisements from that neighbor. FilterDirection.OUT applies prefix list to outgoing advertisements from that neighbor."},"prefixList":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"An instance of type {@link IPV6PrefixList} that specifies the IPV6 PrefixList"},"type":{"type":"string","default":"ipv6prefixlistfilter"}},"required":["prefixList","type","filterDirection"]},"RedistributeBGP":{"type":"object","properties":{"tagNumber":{"type":"integer","description":"A number to tag the routes redistributed into OSPF. Ranges from 0 to 4294967295"},"subnets":{"type":"boolean","description":"If true, considers subnets for redistribution into OSPF. Default is false."},"routeMetric":{"type":"object","$ref":"#/definitions/RouteMetric","description":"Represents the configuration of the metrics to use while redistributing routes"},"routeMap":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"A route map object that specifies the routing process that generates the default route if the route map is satisfied"},"asNumber":{"type":"string","description":"The AS number of the BGP routing process"},"type":{"type":"string","default":"redistributebgp"}},"required":["asNumber","type"]},"RedistributeConnected":{"type":"object","properties":{"tagNumber":{"type":"integer","description":"A number to tag the routes redistributed into OSPF. Ranges from 0 to 4294967295"},"subnets":{"type":"boolean","description":"If true, considers subnets for redistribution into OSPF. Default is false."},"routeMetric":{"type":"object","$ref":"#/definitions/RouteMetric","description":"Represents the configuration of the metrics to use while redistributing routes"},"routeMap":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"A route map object that specifies the routing process that generates the default route if the route map is satisfied"},"type":{"type":"string","default":"redistributeconnected"}},"required":["type"]},"RedistributeEIGRP":{"type":"object","properties":{"tagNumber":{"type":"integer","description":"A number to tag the routes redistributed into OSPF. Ranges from 0 to 4294967295"},"subnets":{"type":"boolean","description":"If true, considers subnets for redistribution into OSPF. Default is false."},"routeMetric":{"type":"object","$ref":"#/definitions/RouteMetric","description":"Represents the configuration of the metrics to use while redistributing routes"},"routeMap":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"A route map object that specifies the routing process that generates the default route if the route map is satisfied"},"asNumber":{"type":"string","description":"The AS number of the EIGRP routing process"},"type":{"type":"string","default":"redistributeeigrp"}},"required":["asNumber","type"]},"RedistributeISIS":{"type":"object","properties":{"tagNumber":{"type":"integer","description":"A number to tag the routes redistributed into OSPF. Ranges from 0 to 4294967295"},"subnets":{"type":"boolean","description":"If true, considers subnets for redistribution into OSPF. Default is false."},"routeMetric":{"type":"object","$ref":"#/definitions/RouteMetric","description":"Represents the configuration of the metrics to use while redistributing routes"},"routeMap":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"A route map object that specifies the routing process that generates the default route if the route map is satisfied"},"routeLevel":{"type":"object","$ref":"#/definitions/RouteLevel","description":"The routing level for the IS-IS routing process. LEVEL_1 indicates intra-area routing, LEVEL_2 indicates inter-area routing, and LEVEL_1_2 indicates both levels. Default is LEVEL_2"},"type":{"type":"string","default":"redistributeisis"}},"required":["type","routeLevel"]},"RedistributeISISIPv6":{"type":"object","properties":{"tagNumber":{"type":"integer","description":"A number to tag the routes redistributed into OSPF. Ranges from 0 to 4294967295"},"subnets":{"type":"boolean","description":"If true, considers subnets for redistribution into OSPF. Default is false."},"routeMetric":{"type":"object","$ref":"#/definitions/RouteMetric","description":"Represents the configuration of the metrics to use while redistributing routes"},"routeMap":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"A route map object that specifies the routing process that generates the default route if the route map is satisfied"},"routeLevel":{"type":"object","$ref":"#/definitions/RouteLevel","description":"The routing level for the IS-IS routing process. LEVEL_1 indicates intra-area routing, LEVEL_2 indicates inter-area routing, and LEVEL_1_2 indicates both levels. Default is LEVEL_2"},"includeConnected":{"type":"boolean","description":"If true, includes all ISIS enabled IPv6 connected interfaces to be redistributed into this process"},"type":{"type":"string","default":"redistributeisisipv6"}},"required":["includeConnected","type","routeLevel"]},"RedistributeOSPF":{"type":"object","properties":{"tagNumber":{"type":"integer","description":"A number to tag the routes redistributed into OSPF. Ranges from 0 to 4294967295"},"subnets":{"type":"boolean","description":"If true, considers subnets for redistribution into OSPF. Default is false."},"routeMetric":{"type":"object","$ref":"#/definitions/RouteMetric","description":"Represents the configuration of the metrics to use while redistributing routes"},"routeMap":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"A route map object that specifies the routing process that generates the default route if the route map is satisfied"},"processId":{"type":"string","description":"The process id of the OSPF process"},"matchExternal1":{"type":"boolean","description":"If true, redistributes external type 1 routes"},"matchExternal2":{"type":"boolean","description":"If true, redistributes external type 2 routes"},"matchInternal":{"type":"boolean","description":"If true, redistributes OSPF internal routes"},"matchNssaExternal1":{"type":"boolean","description":"If true, redistributes nssa-external type 1 routes"},"matchNssaExternal2":{"type":"boolean","description":"If true, redistributes nssa-external type 2 routes"},"type":{"type":"string","default":"redistributeospf"}},"required":["processId","matchInternal","matchNssaExternal2","matchNssaExternal1","type","matchExternal2","matchExternal1"]},"RedistributeOSPFv3":{"type":"object","properties":{"tagNumber":{"type":"integer","description":"A number to tag the routes redistributed into OSPF. Ranges from 0 to 4294967295"},"subnets":{"type":"boolean","description":"If true, considers subnets for redistribution into OSPF. Default is false."},"routeMetric":{"type":"object","$ref":"#/definitions/RouteMetric","description":"Represents the configuration of the metrics to use while redistributing routes"},"routeMap":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"A route map object that specifies the routing process that generates the default route if the route map is satisfied"},"processId":{"type":"string","description":"The process id of the OSPF process"},"matchExternal1":{"type":"boolean","description":"If true, redistributes external type 1 routes"},"matchExternal2":{"type":"boolean","description":"If true, redistributes external type 2 routes"},"matchInternal":{"type":"boolean","description":"If true, redistributes OSPF internal routes"},"matchNssaExternal1":{"type":"boolean","description":"If true, redistributes nssa-external type 1 routes"},"matchNssaExternal2":{"type":"boolean","description":"If true, redistributes nssa-external type 2 routes"},"includeConnected":{"type":"boolean","description":"If true, includes all OSPFv3 enabled IPv6 connected interfaces to be redistributed into this process"},"type":{"type":"string","default":"redistributeospfv3"}},"required":["includeConnected","processId","matchInternal","matchNssaExternal2","matchNssaExternal1","type","matchExternal2","matchExternal1"]},"RedistributeRIP":{"type":"object","properties":{"tagNumber":{"type":"integer","description":"A number to tag the routes redistributed into OSPF. Ranges from 0 to 4294967295"},"subnets":{"type":"boolean","description":"If true, considers subnets for redistribution into OSPF. Default is false."},"routeMetric":{"type":"object","$ref":"#/definitions/RouteMetric","description":"Represents the configuration of the metrics to use while redistributing routes"},"routeMap":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"A route map object that specifies the routing process that generates the default route if the route map is satisfied"},"type":{"type":"string","default":"redistributerip"}},"required":["type"]},"RedistributeStatic":{"type":"object","properties":{"tagNumber":{"type":"integer","description":"A number to tag the routes redistributed into OSPF. Ranges from 0 to 4294967295"},"subnets":{"type":"boolean","description":"If true, considers subnets for redistribution into OSPF. Default is false."},"routeMetric":{"type":"object","$ref":"#/definitions/RouteMetric","description":"Represents the configuration of the metrics to use while redistributing routes"},"routeMap":{"type":"object","$ref":"#/definitions/ReferenceModel","description":"A route map object that specifies the routing process that generates the default route if the route map is satisfied"},"type":{"type":"string","default":"redistributestatic"}},"required":["type"]},"BlacklistAction":{"type":"string","enum":["BLOCK","MONITOR"]},"FeedUpdateFrequency":{"type":"string","enum":["DISABLED","THIRTY_MINS","ONE_HOUR","TWO_HOURS","FOUR_HOURS","SIX_HOURS","EIGHT_HOURS","TWELVE_HOURS","ONE_DAY","TWO_DAYS","ONE_WEEK"]},"NetworkFeed":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"lastUpdate":{"type":"string"},"updateFrequency":{"type":"object","$ref":"#/definitions/FeedUpdateFrequency"},"feedURL":{"type":"string"},"checksumURL":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"networkfeed"}},"required":["feedURL","type"],"example":{"id":"67a6b46b-3594-5931-8cee-f694738376f3","version":"7105855c-7821-585c-b499-839d20db8294","name":"networkfeed1","checksumURL":"Nesah reshu duata kijofe dohzuola juppecir ke ci roh riogfav ce lef wenisi azucilfa new dowbitdub.","feedURL":"http://iboro.com/ge","updateFrequency":"ONE_WEEK","lastUpdate":"2018-07-10 12:42:21.867Z","type":"networkfeed"}},"NetworkFeedCategory":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"longDescription":{"type":"string"},"shortDescription":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"networkfeedcategory"}},"required":["type"],"example":{"id":"41aedef1-f878-511a-88b1-6a97f8da7683","version":"ddcf49b5-59d1-5871-9d1f-d8bd5133ce0f","name":"networkfeedcategory1","type":"networkfeedcategory","shortDescription":"Josmo cavej kik pufmojpub lut gov uw ceshi rajpeuwi pu lumfomas pe egeego de juuvo birarasor.","longDescription":"Libga wu ki rulutihi fukgu jemoisu ruwuv koeca poc ufu gad tit tospe ganreshek tob olecomal nioksan."}},"NetworkFeedCategoryWrapper":{"allOf":[{"$ref":"#/definitions/NetworkFeedCategory"},{"$ref":"#/definitions/LinksWrapper"}]},"SecurityIntelligenceNetworkPolicy":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"whitelist":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"blacklistForBlock":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"id":{"type":"string"},"type":{"type":"string","default":"securityintelligencenetworkpolicy"}},"required":["type"],"example":{"id":"0ea316eb-527a-5098-a64d-585fa1d4618e","whitelist":[{"id":"73ee665b-fbee-563d-92d0-c41d4e5fb7f2","name":"Network2","description":"Wavfu uk unlofu daefi ow fi te zebnah abaco so lodtiw kijeh upzesin kew zo eg.","version":"d5877fad-91a9-5848-95bd-509fc9538ec7","type":"networkobject","subType":"NETWORK","value":"166.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":false}}],"blacklistForBlock":[{"id":"5f628e6e-9c10-55a9-a69b-78d400a47404","version":"10128965-b11b-5330-bcba-fc2ec3888558","name":"networkfeed23","checksumURL":"Iwiovozul jifeen girzi ci oze zekodo cujzo cefeto ze zihdeka muasa li hokano.","feedURL":"http://reah.io/revnil","updateFrequency":"ONE_HOUR","lastUpdate":"2018-07-12 12:42:21.872Z","type":"networkfeed"}],"version":"97086e22-b9cb-5709-ba75-f7e2551f17ba","name":"viovba","type":"securityintelligencenetworkpolicy"}},"SecurityIntelligenceNetworkPolicyWrapper":{"allOf":[{"$ref":"#/definitions/SecurityIntelligenceNetworkPolicy"},{"$ref":"#/definitions/LinksWrapper"}]},"SecurityIntelligencePolicy":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"securityIntelligenceNetworkPolicy":{"type":"object","$ref":"#/definitions/ReferenceModel"},"securityIntelligenceURLPolicy":{"type":"object","$ref":"#/definitions/ReferenceModel"},"logEnabled":{"type":"boolean"},"syslogServer":{"type":"object","$ref":"#/definitions/ReferenceModel"},"id":{"type":"string"},"type":{"type":"string","default":"securityintelligencepolicy"}},"required":["securityIntelligenceNetworkPolicy","securityIntelligenceURLPolicy","type"],"example":{"id":"f0b864fa-9530-5dac-b94c-a056e4619934","securityIntelligenceNetworkPolicy":{"id":"0ea316eb-527a-5098-a64d-585fa1d4618e","whitelist":[{"id":"73ee665b-fbee-563d-92d0-c41d4e5fb7f2","name":"Network2","description":"Wavfu uk unlofu daefi ow fi te zebnah abaco so lodtiw kijeh upzesin kew zo eg.","version":"d5877fad-91a9-5848-95bd-509fc9538ec7","type":"networkobject","subType":"NETWORK","value":"166.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":false}}],"blacklistForBlock":[{"id":"5f628e6e-9c10-55a9-a69b-78d400a47404","version":"10128965-b11b-5330-bcba-fc2ec3888558","name":"networkfeed23","checksumURL":"Iwiovozul jifeen girzi ci oze zekodo cujzo cefeto ze zihdeka muasa li hokano.","feedURL":"http://reah.io/revnil","updateFrequency":"ONE_HOUR","lastUpdate":"2018-07-12 12:42:21.872Z","type":"networkfeed"}],"version":"97086e22-b9cb-5709-ba75-f7e2551f17ba","name":"viovba","type":"securityintelligencenetworkpolicy"},"securityIntelligenceURLPolicy":{"id":"b58aeb8a-9ab0-5cc2-b062-053a08affa7b","whitelist":[{"id":"ce7eba4c-0b9a-5a3f-bb88-6ce71398fbc8","version":"epozikeccow","name":"UrlGroup1","description":"Kajili nockugda van cikepuh toavah kebpi muwnumo tezotu pelapdec sif fepgo hul sacwav na.","objects":[{"id":"d31c2d0e-3ad0-5053-9a7b-a0ef29eff5f9","version":"ajolouhog","name":"Url8","description":"Kirgirac rireto vu nimu kek bo dosoze tillen wisud kerecfar evibur wen cehpa weg ju doneh.","url":"http://de.co.uk/neni","type":"urlobject"},{"id":"d72bd5cf-710c-5048-b0fa-1bda6746520d","version":"onaisujuja","name":"Url3","description":"Nolze no gavrofkep dog di buc ta oko kon pigu fuezo uzara.","url":"http://gagonofi.edu/letiga","type":"urlobject"}],"type":"urlobjectgroup"}],"blacklistForBlock":[{"id":"ef71cd89-a0fc-5994-aaff-0f427dff92fa","version":"pugvagpugmi","name":"UrlGroup5","description":"Muhzipil korezoki kuwelas fojulcud jum ineteig ob zeluc mekpufes api ajnovawa ro tadi.","objects":[{"id":"0776578c-c6ee-58a3-91de-7d50b64343b8","version":"bimupair","name":"Url7","description":"Mer komad cozmersul el gaze fupfod gij pikukkop kavimgen befowez guwojo bikpogezu ice niruvpo ganal ovo taun.","url":"http://difepfel.io/ovcekwe","type":"urlobject"}],"type":"urlobjectgroup"},{"id":"1ec355c1-47fb-55b1-b8d1-6d6a465821ca","version":"hapevemoco","name":"Url10","description":"Cagsif ju ilawusne kal uw tewwuvmul cu suilu putuz fuwabe wi favig bibothep ti hire gucrak.","url":"http://ni.net/civ","type":"urlobject"},{"id":"e9248457-7eaf-5343-9069-e672bf530f61","version":"5e4d020b-63f5-5cf7-b09a-1223a60908b7","name":"urlfeed3","checksumURL":"Ackurpi tairjif nuabowu teg buuzro tiohumah mogolar mukva divti inabufepu jis decicev zomajpe cufowgo wazatevo ku okrocelo mibuw.","feedURL":"http://hif.com/efasepnu","updateFrequency":"ONE_WEEK","lastUpdate":"2018-07-10 12:42:21.877Z","type":"urlfeed"}],"version":"19d1ac8b-8d22-5601-96b5-4d965ecac9ec","name":"vibeaze","type":"securityintelligenceurlpolicy"},"syslogServer":{"id":"5f0e6c85-c926-5164-b869-521630fab8d0","version":"bf8528ac-8ccc-5ef7-a484-11e827a3cd66","host":"80.207.116.68","port":5897,"deviceInterface":{"mtu":5818,"enabled":true,"description":"Setta biwofega af ihi ebele inowo inagiobo nu it fe heivu lijivok.","name":"diagnostic","id":"f7509b61-168c-5d86-9a4c-8d3a2bb23e90","hardwareName":"Management0/0","macAddress":"249A.16A4.5DED","monitorInterface":true,"standbyMacAddress":"06D4.757D.FF06","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":37,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"0c4e:e907:93c3:ba7a:7842:4899:f454:2a33/32","ipAddress":"41e0:3a60:0ca6:5f1c:cdd5:9c57:4918:682f/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"d039:d6f4:278a:cdd3:b9e3:2711:460f:1555","ipAddress":"7e31:6d3f:5bbc:0d7f:4df6:58b9:26a6:d462"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":56,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"227.88.54.119","standbyIpAddress":"119.107.19.197"}},"version":"e50dac9e-5493-5760-b5e5-294741f3c409","managementInterface":true,"managementOnly":true,"duplexType":"AUTO","speedType":"AUTO","linkState":"DOWN","mode":"PASSIVE","type":"physicalinterface"},"protocol":"UDP","useManagementInterface":false,"type":"syslogserver"},"logEnabled":true,"name":"NGFW-Default-Security-Intelligence-Policy","version":"c6b476ea-d3cd-55eb-ad8b-8541b6555ae3","type":"securityintelligencepolicy"}},"SecurityIntelligencePolicyWrapper":{"allOf":[{"$ref":"#/definitions/SecurityIntelligencePolicy"},{"$ref":"#/definitions/LinksWrapper"}]},"SecurityIntelligenceURLPolicy":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"whitelist":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"blacklistForBlock":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"id":{"type":"string"},"type":{"type":"string","default":"securityintelligenceurlpolicy"}},"required":["type"],"example":{"id":"b58aeb8a-9ab0-5cc2-b062-053a08affa7b","whitelist":[{"id":"ce7eba4c-0b9a-5a3f-bb88-6ce71398fbc8","version":"epozikeccow","name":"UrlGroup1","description":"Kajili nockugda van cikepuh toavah kebpi muwnumo tezotu pelapdec sif fepgo hul sacwav na.","objects":[{"id":"d31c2d0e-3ad0-5053-9a7b-a0ef29eff5f9","version":"ajolouhog","name":"Url8","description":"Kirgirac rireto vu nimu kek bo dosoze tillen wisud kerecfar evibur wen cehpa weg ju doneh.","url":"http://de.co.uk/neni","type":"urlobject"},{"id":"d72bd5cf-710c-5048-b0fa-1bda6746520d","version":"onaisujuja","name":"Url3","description":"Nolze no gavrofkep dog di buc ta oko kon pigu fuezo uzara.","url":"http://gagonofi.edu/letiga","type":"urlobject"}],"type":"urlobjectgroup"}],"blacklistForBlock":[{"id":"ef71cd89-a0fc-5994-aaff-0f427dff92fa","version":"pugvagpugmi","name":"UrlGroup5","description":"Muhzipil korezoki kuwelas fojulcud jum ineteig ob zeluc mekpufes api ajnovawa ro tadi.","objects":[{"id":"0776578c-c6ee-58a3-91de-7d50b64343b8","version":"bimupair","name":"Url7","description":"Mer komad cozmersul el gaze fupfod gij pikukkop kavimgen befowez guwojo bikpogezu ice niruvpo ganal ovo taun.","url":"http://difepfel.io/ovcekwe","type":"urlobject"}],"type":"urlobjectgroup"},{"id":"1ec355c1-47fb-55b1-b8d1-6d6a465821ca","version":"hapevemoco","name":"Url10","description":"Cagsif ju ilawusne kal uw tewwuvmul cu suilu putuz fuwabe wi favig bibothep ti hire gucrak.","url":"http://ni.net/civ","type":"urlobject"},{"id":"e9248457-7eaf-5343-9069-e672bf530f61","version":"5e4d020b-63f5-5cf7-b09a-1223a60908b7","name":"urlfeed3","checksumURL":"Ackurpi tairjif nuabowu teg buuzro tiohumah mogolar mukva divti inabufepu jis decicev zomajpe cufowgo wazatevo ku okrocelo mibuw.","feedURL":"http://hif.com/efasepnu","updateFrequency":"ONE_WEEK","lastUpdate":"2018-07-10 12:42:21.877Z","type":"urlfeed"}],"version":"19d1ac8b-8d22-5601-96b5-4d965ecac9ec","name":"vibeaze","type":"securityintelligenceurlpolicy"}},"SecurityIntelligenceURLPolicyWrapper":{"allOf":[{"$ref":"#/definitions/SecurityIntelligenceURLPolicy"},{"$ref":"#/definitions/LinksWrapper"}]},"SystemFeedObject":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"lastUpdate":{"type":"string"},"updateFrequency":{"type":"object","$ref":"#/definitions/FeedUpdateFrequency"},"id":{"type":"string"},"type":{"type":"string","default":"systemfeedobject"}},"required":["type"]},"SystemFeedObjectWrapper":{"allOf":[{"$ref":"#/definitions/SystemFeedObject"},{"$ref":"#/definitions/LinksWrapper"}]},"URLFeed":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"lastUpdate":{"type":"string"},"updateFrequency":{"type":"object","$ref":"#/definitions/FeedUpdateFrequency"},"feedURL":{"type":"string"},"checksumURL":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"urlfeed"}},"required":["feedURL","type"],"example":{"id":"d4380ea9-8b36-53fc-8a73-bab5fd237b72","version":"52e9af0b-cd4a-5827-ae7c-19e95072ef74","name":"urlfeed1","checksumURL":"Mu vala ijban oc cenpeko vulle taphesip bibzihziz anvihcum liv ukuhavti zefeg hecu.","feedURL":"http://doc.gov/so","updateFrequency":"TWELVE_HOURS","lastUpdate":"2018-07-07 12:42:21.877Z","type":"urlfeed"}},"URLFeedCategory":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"longDescription":{"type":"string"},"shortDescription":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"urlfeedcategory"}},"required":["type"],"example":{"id":"fe1ba0ad-6d1b-5749-bb87-b9c5c2b7a9ef","version":"31eeced9-ac3f-57dc-9bd2-c4bab053be8d","name":"urlfeedcategory1","type":"urlfeedcategory","shortDescription":"Pobzun gi ahiasa bosicus fi muv uciumo gusfucfe obube wupo hadomug efij oz rovocerip ag dicahce.","longDescription":"Ba kiivobew mo ehaur jiwor oppesin keif piz kizkose dow mafezlab cujuak co evoewureh wucure nut bukimjim cukejo."}},"URLFeedCategoryWrapper":{"allOf":[{"$ref":"#/definitions/URLFeedCategory"},{"$ref":"#/definitions/LinksWrapper"}]},"AuthorizationStatus":{"type":"string","enum":["AUTHORIZED","AUTH_EXPIRED","EVAL","NOT_AUTHORIZED","OUT_OF_COMPLIANCE","RENEW_AUTH_FAILED","UNREGISTERED"]},"ConnectionType":{"type":"string","enum":["REGISTER","EVALUATION"]},"FeatureType":{"type":"string","enum":["BASE","MALWARE","THREAT","URLFILTERING","RAVPN"]},"License":{"type":"object","properties":{"version":{"type":"string"},"count":{"type":"integer"},"compliant":{"type":"boolean"},"id":{"type":"string"},"licenseType":{"type":"object","$ref":"#/definitions/LicenseType"},"type":{"type":"string","default":"license"}},"required":["licenseType","count","type"],"example":{"id":"b3ae194b-dd83-5a7e-9771-c0fae5afb930","type":"license","version":"c6a80456-8a08-5616-bfa4-b5e4ce20ee8b","count":1,"compliant":true,"licenseType":"BASE"}},"LicenseWrapper":{"allOf":[{"$ref":"#/definitions/License"},{"$ref":"#/definitions/LinksWrapper"}]},"LicenseJobHistory":{"type":"object","properties":{"version":{"type":"string"},"jobName":{"type":"string"},"jobDescription":{"type":"string"},"user":{"type":"string"},"startDateTime":{"type":"string"},"endDateTime":{"type":"string"},"status":{"type":"object","$ref":"#/definitions/JobHistoryEntity$JobHistoryStatus"},"statusMessage":{"type":"string"},"scheduleUuid":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"licensejobhistory"}},"required":["type"]},"LicenseJobHistoryWrapper":{"allOf":[{"$ref":"#/definitions/LicenseJobHistory"},{"$ref":"#/definitions/LinksWrapper"}]},"LicenseRegistrationJobHistory":{"type":"object","properties":{"version":{"type":"string"},"jobName":{"type":"string"},"jobDescription":{"type":"string"},"user":{"type":"string"},"startDateTime":{"type":"string"},"endDateTime":{"type":"string"},"status":{"type":"object","$ref":"#/definitions/JobHistoryEntity$JobHistoryStatus"},"statusMessage":{"type":"string"},"scheduleUuid":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"licenseregistrationjobhistory"}},"required":["type"]},"LicenseType":{"type":"string","enum":["BASE","MALWARE","THREAT","URLFILTERING","APEX","PLUS","VPNOnly"]},"RegistrationStatus":{"type":"string","enum":["EVAL","REGISTERED","RENEW_CERT_FAILED","UNREGISTERED"]},"SmartAgentConnection":{"type":"object","properties":{"version":{"type":"string"},"connectionType":{"type":"object","$ref":"#/definitions/ConnectionType"},"token":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"smartagentconnection"}},"required":["type","connectionType"],"example":{"id":"3b4d496b-6389-55dc-b6ad-dcb67b2d703e","version":"7741a162-7b0e-5a57-add8-36ba2465ebe8","type":"smartagentconnection","token":"68205fbc-135c-5e1c-b82e-70b193a4887d","connectionType":"REGISTER"}},"SmartAgentConnectionWrapper":{"allOf":[{"$ref":"#/definitions/SmartAgentConnection"},{"$ref":"#/definitions/LinksWrapper"}]},"SmartAgentStatus":{"type":"object","properties":{"version":{"type":"string"},"registrationStatus":{"type":"object","$ref":"#/definitions/RegistrationStatus"},"registrationTimeStamp":{"type":"integer"},"authorizationStatus":{"type":"object","$ref":"#/definitions/AuthorizationStatus"},"authorizationTimeStamp":{"type":"integer"},"virtualAccount":{"type":"string"},"exportControl":{"type":"boolean"},"evaluationStartTime":{"type":"integer"},"evaluationRemainingDays":{"type":"integer"},"syncTimeStamp":{"type":"integer"},"id":{"type":"string"},"type":{"type":"string","default":"smartagentstatus"}},"required":["type"],"example":{"id":"0b73abad-0104-52f0-b504-c7cde11823d2","type":"smartagentstatus","version":"58293770-2ec9-5bd4-b4fd-bfa22eb10f05","authorizationStatus":"AUTHORIZED","exportControl":true,"registrationStatus":"REGISTERED","evaluationStartTime":1531831341836,"authorizationTimeStamp":1531831341836,"virtualAccount":"dis","evaluationRemainingDays":22,"registrationTimeStamp":1531831341836,"syncTimeStamp":1531831341836}},"SmartAgentStatusWrapper":{"allOf":[{"$ref":"#/definitions/SmartAgentStatus"},{"$ref":"#/definitions/LinksWrapper"}]},"SmartAgentSyncRequest":{"type":"object","properties":{"version":{"type":"string"},"sync":{"type":"boolean"},"id":{"type":"string"},"type":{"type":"string","default":"smartagentsyncrequest"}},"required":["type","sync"]},"SmartAgentSyncRequestWrapper":{"allOf":[{"$ref":"#/definitions/SmartAgentSyncRequest"},{"$ref":"#/definitions/LinksWrapper"}]},"FlowBit":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"rules":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"id":{"type":"string"},"type":{"type":"string","default":"flowbit"}},"required":["type"]},"FlowBitState":{"type":"string","enum":["SET","SETX","UNSET","IS_SET","IS_NOT_SET"]},"IPSVariableNetworkGroup":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"type":{"type":"string","default":"ipsvariablenetworkgroup"},"includedNetworks":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"excludedNetworks":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"id":{"type":"string"}},"required":["type"]},"IPSVariablePortGroup":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"type":{"type":"string","default":"ipsvariableportgroup"},"includedPorts":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"excludedPorts":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"id":{"type":"string"}},"required":["type"]},"IPSVariableType":{"type":"string","enum":["PORT_GROUP","NETWORK_GROUP"]},"IntrusionPolicy":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"rules":{"type":"object","$ref":"#/definitions/LinksReference"},"id":{"type":"string"},"type":{"type":"string","default":"intrusionpolicy"}},"required":["type"],"example":{"id":"a47cb8f6-fe55-11e4-8e99-ipsN10","name":"Connectivity Over Security","links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f6-fe55-11e4-8e99-ipsN10"},"rules":{"links":{"self":"http://url/api/fdm/v2/policy/intrusionpolicies/a47cb8f6-fe55-11e4-8e99-ipsN10/rules/"}},"description":"Connectivity Over Security Layer","type":"intrusionpolicy","version":"f17dd031-7eba-5f6f-8734-300a871471fe"}},"IntrusionPolicyWrapper":{"allOf":[{"$ref":"#/definitions/IntrusionPolicy"},{"$ref":"#/definitions/LinksWrapper"}]},"IntrusionPolicyRuleUpdate":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"ruleConfigs":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"id":{"type":"string"},"type":{"type":"string","default":"intrusionpolicyruleupdate"}},"required":["type"]},"IntrusionPolicyRuleUpdateWrapper":{"allOf":[{"$ref":"#/definitions/IntrusionPolicyRuleUpdate"},{"$ref":"#/definitions/LinksWrapper"}]},"IntrusionRule":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"gid":{"type":"integer"},"sid":{"type":"integer"},"revision":{"type":"integer"},"msg":{"type":"string"},"ruleData":{"type":"string"},"defaultState":{"type":"object","$ref":"#/definitions/IntrusionRuleState"},"overrideState":{"type":"object","$ref":"#/definitions/IntrusionRuleState"},"id":{"type":"string"},"type":{"type":"string","default":"intrusionrule"}},"required":["type"]},"IntrusionRuleWrapper":{"allOf":[{"$ref":"#/definitions/IntrusionRule"},{"$ref":"#/definitions/LinksWrapper"}]},"IntrusionRuleConfig":{"type":"object","properties":{"state":{"type":"object","$ref":"#/definitions/IntrusionRuleState"},"id":{"type":"string"}}},"IntrusionRuleState":{"type":"string","enum":["DISABLED","ALERT","DROP"]},"IntrusionSettings":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"syslogServer":{"type":"object","$ref":"#/definitions/ReferenceModel"},"id":{"type":"string"},"type":{"type":"string","default":"intrusionsettings"}},"required":["type"],"example":{"version":"14cc33d4-6e2d-11e7-966d-1df2f1dcfb38","syslogServer":{"id":"2f33d844-7516-5f6e-87ed-8da737ce2a78","version":"d7f05fd4-062b-5c81-9a97-7de1c7591fda","host":"139.79.31.136","port":5897,"protocol":"TCP","useManagementInterface":true,"type":"syslogserver"},"id":"14cc33d5-6e2d-11e7-966d-47267ec445a9","type":"intrusionsettings","links":{"self":"http://url/api/fdm/v2/object/intrusionsettings/14cc33d5-6e2d-11e7-966d-47267ec445a9"}}},"IntrusionSettingsWrapper":{"allOf":[{"$ref":"#/definitions/IntrusionSettings"},{"$ref":"#/definitions/LinksWrapper"}]},"SRUIntrusionPolicy":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"rules":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"advancedConfig":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"sruintrusionpolicy"}},"required":["type"]},"FlowBitRuleRelation":{"type":"object","properties":{"objId":{"type":"integer"},"flowBit":{"type":"object","$ref":"#/definitions/ReferenceModel"},"rule":{"type":"object","$ref":"#/definitions/ReferenceModel"},"state":{"type":"object","$ref":"#/definitions/FlowBitState"}}},"IntrusionRuleRelation":{"type":"object","properties":{"objId":{"type":"integer"},"ipsPolicy":{"type":"object","$ref":"#/definitions/ReferenceModel"},"rule":{"type":"object","$ref":"#/definitions/ReferenceModel"},"ruleState":{"type":"object","$ref":"#/definitions/IntrusionRuleState"}}},"CertificateStatus":{"type":"object","properties":{"isValid":{"type":"object","$ref":"#/definitions/CertificateStatus$CertificateStatusChoice"},"isSelfSigned":{"type":"object","$ref":"#/definitions/CertificateStatus$CertificateStatusChoice"},"type":{"type":"string","default":"certificatestatus"}},"required":["isValid","type","isSelfSigned"]},"CertificateStatus$CertificateStatusChoice":{"type":"string","enum":["YES","NO","ANY"]},"DistinguishedName":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"isSystemDefined":{"type":"boolean"},"dn":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"distinguishedname"}},"required":["dn","type"],"example":{"id":"8b7cc5f7-4306-5c95-b546-47449593b1e9","version":"41245827-09c1-56f0-9f3a-d90de9051908","name":"distinguished_name1","description":"description","dn":"CN=*.citrixonline.com","type":"distinguishedname","isSystemDefined":false}},"DistinguishedNameGroup":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"isSystemDefined":{"type":"boolean"},"distiniguishedNames":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"id":{"type":"string"},"type":{"type":"string","default":"distinguishednamegroup"}},"required":["type"],"example":{"id":"56d71648-91f6-47d3-b3f3-f92148089cd0","version":"306121d0-28f9-528b-b887-164afc8a3b34","name":"distinguished_name_group_1","description":"description","distiniguishedNames":[{"id":"d7c5af55-a27f-5c0d-b871-b589ef21d57b","version":"2ce6d20b-3a41-597d-ba6a-8470bb305a80","name":"distinguished_name13","description":"description","dn":"CN=gsa.apple.com","type":"distinguishedname","isSystemDefined":false},{"id":"bd2ac8b7-6ffb-52ff-bba3-17ae8c574a9f","version":"c1c10436-3f4c-5761-973c-780e490feeec","name":"distinguished_name10","description":"description","dn":"CN=gsa.apple.com","type":"distinguishedname","isSystemDefined":true}],"isSystemDefined":false,"type":"distinguishednamegroup"}},"SSLPolicy":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"undecryptableActions":{"type":"object","$ref":"#/definitions/SSLUndecryptableActions"},"decryptionCACertificate":{"type":"object","$ref":"#/definitions/ReferenceModel"},"internalCertificates":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"defaultAction":{"type":"object","$ref":"#/definitions/SSLPolicyDefaultAction"},"id":{"type":"string"},"type":{"type":"string","default":"sslpolicy"}},"required":["defaultAction","undecryptableActions","type"],"example":{"id":"default-ssl-random-id","type":"sslpolicy","version":"dc207d5a-c82b-54c6-b909-57bc23791864","name":"SSL_Policy_1","sslRules":[],"undecryptableActions":{"type":"sslundecryptableactions","compressedSession":"DO_NOT_DECRYPT","sslV2Session":"BLOCK_WITH_RESET","unknownCipherSuite":"INHERIT_DEFAULT_ACTION","unsupportedCipherSuite":"INHERIT_DEFAULT_ACTION","sessionNotCached":"BLOCK_WITH_RESET","handShakeErrors":"BLOCK","decryptionErrors":"BLOCK"},"decryptionCACertificate":{"id":"4d266d16-14e6-58c4-940a-2246efd34363","name":"Internal CA1","cert":"-----BEGIN CERTIFICATE-----\nMIIDEjCCAnugAwIBAgIJAJ69cfUJsifzMA0GCSqGSIb3DQEBBQUAMIGCMQswCQYD\nVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxDjAMBgNVBAoMBUNpc2NvMQwwCgYDVQQL\nDANBREkxIjAgBgNVBAMMGUFESSBUZWFtIFRlc3RpbmcgYXQgQ2lzY28xITAfBgkq\nhkiG9w0BCQEWEnRjaHJpc3RtQGNpc2NvLmNvbTAeFw0xNTA0MDYxNDQ0NTJaFw0x\nNjA0MDUxNDQ0NTJaMIGVMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxDzAN\nBgNVBAcMBkF1c3RpbjEVMBMGA1UECgwMQURJIGF0IENpc2NvMQwwCgYDVQQLDANB\nREkxHTAbBgNVBAMMFEFESSBUZXN0aW5nIEF0IENpc2NvMSEwHwYJKoZIhvcNAQkB\nFhJ0Y2hyaXN0bUBjaXNjby5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB\nAKk6jiG3XImaQNnVe1zeRbchMVbpBxdDYIRt0Eqvl2HqfAZJDKSw+s080iMC5Dmg\nTvOaZYaf4rc92z/WpMTgiOxmwKLhaw1INzBptxc4JoQPNFG4qUSVIHW9mnoXwluo\naXypJKAgeLukuO5tdUj9Iy4IHabMmJxcQsZ1vJ65cIH5AgMBAAGjezB5MAkGA1Ud\nEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmlj\nYXRlMB0GA1UdDgQWBBROqbPMUm6cUg+E/ficJa8WkdhcwzAfBgNVHSMEGDAWgBRD\nXj/hqU0NPpTv1+Z6O7LQixcgxTANBgkqhkiG9w0BAQUFAAOBgQBaoTmcEb14AIcd\nq6R34phLlDP1JRV54NQ5gTXK858dyRE41CHensHSwXlHUg2JJ/LuUhK7h+ST1Qhy\nkFCHNQHh9ojRK34ydIIltGaGGCIZDEgUqhc7IeZ/PSR5252vQaAwDWDxapA2ZsVo\nr9OY0Q7uuCLvNNiQQzvjlnQZ94Rp4A==\n-----END CERTIFICATE-----\n","privateKey":"-----BEGIN PRIVATE KEY-----MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCqsrdtuAzs/APtjiJefyhxCnheLOFOP8BfvtcdfFNFVj3RP5n30AYGmTT31dTLPeA4dYHgthUImKkxcWIOuJqHlLrEo3fmfEbhy8KehfQ0Pfy+4K/QTB7NU28/K9Hr0Mwz6bUuboby/BvIi1u/ZIzl5KlmJBz/cQMPonD2hte2fwvkqCfhpNl25tMzEpyqCAa4tciUqSXf0Zs63XtcVPBpuGN6vU0QllqxLbzsQ7ShwymBiLnUqX95tWkJCrRIfklEwlbTXyRM5NSjk6EdZeDfX5OHexV4AodbtGZSeQYU7s2vs50khtIWVGr+14dPguWf9ggMCRoX+B9RogfV03IVAgMBAAECggEAfwLTsXQNShiK46uqrx12fgYIYiqKyqps/dEGRw5G94SgIp5sdhP3J9m/q9kTqNa1i80Dgqx5IhhVbFCtYb7CXLex8LahdIJsS35NpZ6OgoDNG0ocB6VcFfNLB3oXjJukFcyD37Sl/Q7RrXrkHZk3radi1Hlyii8Q1AVOgGD9CPBwRaBrjAuJXunJRSnzJ1MuV29PoNSOcQ0o+q26JkZaTcFHt/iVdeBiKFEyfwd6oWTkpRQiUD+Xi/P9XkYud1nou64dvw6XIDpsV7uX07OASHk1fuQjDJLwyO4KlcWBzNb6Z1sE6l1EqHcZKqijcYISElzPGTEVlDkXAT5YxiIjAQKBgQDVYP/8obthBaUBFVkPaZNUzLsjyv9ONOWVHIzw9YVOmC7v2WdrnDgoBkNaV4SdCOYsJW+887nA6zK2208DlRea1fAcZWgItRqvJi9wiqtZAS1BCC+tTliYS3x/wqmFyFRqLK4dIqpbZ52+vEoEMgrDJmzG7k7aXjAm9+JH+MqfBQKBgQDMy0KcdA68h5VlbifLnMbQUJO7Zy081Tdbpgnf02/PaC/HHbYnbn/hWv8TTuoBcEDkh0nl3JRmPKMyF+Aeqj5Xd6A4znRQXq9ZPcOyKYw08VGkf4m41mm2Iq7HcSwhZFlWZWfA3cCU+Z5eTVY7RBQjoJ8Qk6LyRjAmlA5xiMVT0QKBgGVDeXjtUD3FLf+LoA5+bhsqZg2ggvUciW/wcrrP6gnYkz3kkP4yzzu/bStsqVTVKlb9FUA48oiplhHNlnv+v4sNyLvRLEQlnppMpurkBFljA5T/S5EVw1nTSSxgt47z+YvB1IejMfHbBLPGK+I91XmzvJ/T7LwZQwTbUxoQ6if5AoGBAMuoErzteT4pAvuUWQTWCqxchR1nVIhbbKq6arVoWZeDf4fe1ydNbuSXjnQQFQuLKy1YELgC7JzjDlOhhKJaIJbxAqebP/YwwuXXU0ZYpPJ9TPhuUHI833Fd+juiIwWt+l29iDk3DO3ZcpFLDUbww6pOcACXIQMXo4ip0dc78SgRAoGAEb7FK7hqFmBk24Pu5vzKE/BYYD1mY17+zmeFocn2vu89jLYvRGYrvuGn9TgD3zeXjNsAqbMW8Td5F3xnMJ3JHhnAQHd1Wh5VROsXfhtT/Uhl4eCGEkKqM+EEBD6Z3UsZbNFRGEl1xThzdwchLt0WNTD9kuoxWkjV3hjPBnkJlvk=-----END PRIVATE KEY-----","issuerCommonName":"FTD OnBox Team Testing at Cisco","issuerOrganizationUnit":"FTD","subjectCommonName":"FTD Testing At Cisco","subjectOrganization":"FTD at Cisco","subjectOrganizationUnit":"FTD","validityStartDate":"Apr 6 14:44:52 2015 GMT","validityEndDate":"Feb 16 14:44:52 2017 GMT","type":"internalcacertificate","version":"6d05cd7f-3d24-55de-85d1-7d5a97f95f58"},"internalCertificates":[{"id":"2b778d3e-fdfe-55f2-88f9-3f29239683bb","name":"Internal CA2","cert":"-----BEGIN CERTIFICATE-----\nMIIDEjCCAnugAwIBAgIJAJ69cfUJsifzMA0GCSqGSIb3DQEBBQUAMIGCMQswCQYD\nVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxDjAMBgNVBAoMBUNpc2NvMQwwCgYDVQQL\nDANBREkxIjAgBgNVBAMMGUFESSBUZWFtIFRlc3RpbmcgYXQgQ2lzY28xITAfBgkq\nhkiG9w0BCQEWEnRjaHJpc3RtQGNpc2NvLmNvbTAeFw0xNTA0MDYxNDQ0NTJaFw0x\nNjA0MDUxNDQ0NTJaMIGVMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxDzAN\nBgNVBAcMBkF1c3RpbjEVMBMGA1UECgwMQURJIGF0IENpc2NvMQwwCgYDVQQLDANB\nREkxHTAbBgNVBAMMFEFESSBUZXN0aW5nIEF0IENpc2NvMSEwHwYJKoZIhvcNAQkB\nFhJ0Y2hyaXN0bUBjaXNjby5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB\nAKk6jiG3XImaQNnVe1zeRbchMVbpBxdDYIRt0Eqvl2HqfAZJDKSw+s080iMC5Dmg\nTvOaZYaf4rc92z/WpMTgiOxmwKLhaw1INzBptxc4JoQPNFG4qUSVIHW9mnoXwluo\naXypJKAgeLukuO5tdUj9Iy4IHabMmJxcQsZ1vJ65cIH5AgMBAAGjezB5MAkGA1Ud\nEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmlj\nYXRlMB0GA1UdDgQWBBROqbPMUm6cUg+E/ficJa8WkdhcwzAfBgNVHSMEGDAWgBRD\nXj/hqU0NPpTv1+Z6O7LQixcgxTANBgkqhkiG9w0BAQUFAAOBgQBaoTmcEb14AIcd\nq6R34phLlDP1JRV54NQ5gTXK858dyRE41CHensHSwXlHUg2JJ/LuUhK7h+ST1Qhy\nkFCHNQHh9ojRK34ydIIltGaGGCIZDEgUqhc7IeZ/PSR5252vQaAwDWDxapA2ZsVo\nr9OY0Q7uuCLvNNiQQzvjlnQZ94Rp4A==\n-----END CERTIFICATE-----\n","privateKey":"-----BEGIN PRIVATE KEY-----MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCqsrdtuAzs/APtjiJefyhxCnheLOFOP8BfvtcdfFNFVj3RP5n30AYGmTT31dTLPeA4dYHgthUImKkxcWIOuJqHlLrEo3fmfEbhy8KehfQ0Pfy+4K/QTB7NU28/K9Hr0Mwz6bUuboby/BvIi1u/ZIzl5KlmJBz/cQMPonD2hte2fwvkqCfhpNl25tMzEpyqCAa4tciUqSXf0Zs63XtcVPBpuGN6vU0QllqxLbzsQ7ShwymBiLnUqX95tWkJCrRIfklEwlbTXyRM5NSjk6EdZeDfX5OHexV4AodbtGZSeQYU7s2vs50khtIWVGr+14dPguWf9ggMCRoX+B9RogfV03IVAgMBAAECggEAfwLTsXQNShiK46uqrx12fgYIYiqKyqps/dEGRw5G94SgIp5sdhP3J9m/q9kTqNa1i80Dgqx5IhhVbFCtYb7CXLex8LahdIJsS35NpZ6OgoDNG0ocB6VcFfNLB3oXjJukFcyD37Sl/Q7RrXrkHZk3radi1Hlyii8Q1AVOgGD9CPBwRaBrjAuJXunJRSnzJ1MuV29PoNSOcQ0o+q26JkZaTcFHt/iVdeBiKFEyfwd6oWTkpRQiUD+Xi/P9XkYud1nou64dvw6XIDpsV7uX07OASHk1fuQjDJLwyO4KlcWBzNb6Z1sE6l1EqHcZKqijcYISElzPGTEVlDkXAT5YxiIjAQKBgQDVYP/8obthBaUBFVkPaZNUzLsjyv9ONOWVHIzw9YVOmC7v2WdrnDgoBkNaV4SdCOYsJW+887nA6zK2208DlRea1fAcZWgItRqvJi9wiqtZAS1BCC+tTliYS3x/wqmFyFRqLK4dIqpbZ52+vEoEMgrDJmzG7k7aXjAm9+JH+MqfBQKBgQDMy0KcdA68h5VlbifLnMbQUJO7Zy081Tdbpgnf02/PaC/HHbYnbn/hWv8TTuoBcEDkh0nl3JRmPKMyF+Aeqj5Xd6A4znRQXq9ZPcOyKYw08VGkf4m41mm2Iq7HcSwhZFlWZWfA3cCU+Z5eTVY7RBQjoJ8Qk6LyRjAmlA5xiMVT0QKBgGVDeXjtUD3FLf+LoA5+bhsqZg2ggvUciW/wcrrP6gnYkz3kkP4yzzu/bStsqVTVKlb9FUA48oiplhHNlnv+v4sNyLvRLEQlnppMpurkBFljA5T/S5EVw1nTSSxgt47z+YvB1IejMfHbBLPGK+I91XmzvJ/T7LwZQwTbUxoQ6if5AoGBAMuoErzteT4pAvuUWQTWCqxchR1nVIhbbKq6arVoWZeDf4fe1ydNbuSXjnQQFQuLKy1YELgC7JzjDlOhhKJaIJbxAqebP/YwwuXXU0ZYpPJ9TPhuUHI833Fd+juiIwWt+l29iDk3DO3ZcpFLDUbww6pOcACXIQMXo4ip0dc78SgRAoGAEb7FK7hqFmBk24Pu5vzKE/BYYD1mY17+zmeFocn2vu89jLYvRGYrvuGn9TgD3zeXjNsAqbMW8Td5F3xnMJ3JHhnAQHd1Wh5VROsXfhtT/Uhl4eCGEkKqM+EEBD6Z3UsZbNFRGEl1xThzdwchLt0WNTD9kuoxWkjV3hjPBnkJlvk=-----END PRIVATE KEY-----","issuerCommonName":"FTD OnBox Team Testing at Cisco","issuerOrganizationUnit":"FTD","subjectCommonName":"FTD Testing At Cisco","subjectOrganization":"FTD at Cisco","subjectOrganizationUnit":"FTD","validityStartDate":"Apr 6 14:44:52 2015 GMT","validityEndDate":"Feb 16 14:44:52 2017 GMT","type":"internalcacertificate","version":"d4f4de1a-52f0-5e77-89c6-72aecb7eba93"}],"defaultAction":{"type":"sslpolicydefaultaction","policyAction":"DO_NOT_DECRYPT","eventLogAction":"LOG_NONE"}}},"SSLPolicyWrapper":{"allOf":[{"$ref":"#/definitions/SSLPolicy"},{"$ref":"#/definitions/LinksWrapper"}]},"SSLPolicyDefaultAction":{"type":"object","properties":{"policyAction":{"type":"object","$ref":"#/definitions/SSLRule$SSLRuleAction"},"eventLogAction":{"type":"object","$ref":"#/definitions/SSLRule$EventLogActionSSL"},"syslogServer":{"type":"object","$ref":"#/definitions/ReferenceModel"},"type":{"type":"string","default":"sslpolicydefaultaction"}},"required":["policyAction","eventLogAction","type"],"example":{"type":"sslpolicydefaultaction","policyAction":"DO_NOT_DECRYPT","eventLogAction":"LOG_NONE"}},"SSLRule":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"ruleId":{"type":"integer"},"sourceZones":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"destinationZones":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"sourceNetworks":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"destinationNetworks":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"sourcePorts":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"destinationPorts":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"ruleAction":{"type":"object","$ref":"#/definitions/SSLRule$SSLRuleAction"},"eventLogAction":{"type":"object","$ref":"#/definitions/SSLRule$EventLogActionSSL"},"users":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"embeddedAppFilter":{"type":"object","$ref":"#/definitions/EmbeddedAppFilterBase"},"urlCategories":{"type":"array","items":{"type":"object","$ref":"#/definitions/URLCategoryMatcher"}},"subjectDNs":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"issuerDNs":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"certificateStatus":{"type":"object","$ref":"#/definitions/CertificateStatus"},"syslogServer":{"type":"object","$ref":"#/definitions/ReferenceModel"},"sslv3":{"type":"boolean"},"tls10":{"type":"boolean"},"tls11":{"type":"boolean"},"tls12":{"type":"boolean"},"id":{"type":"string"},"type":{"type":"string","default":"sslrule"}},"required":["certificateStatus","sslv3","tls12","type","tls11","tls10"]},"SSLRuleWrapper":{"allOf":[{"$ref":"#/definitions/SSLRule"},{"$ref":"#/definitions/LinksWrapper"}]},"SSLRule$SSLRuleAction":{"type":"string","enum":["DECRYPT_RE_SIGN","DECRYPT_KNOWN_KEY","DO_NOT_DECRYPT","BLOCK"]},"SSLRule$EventLogActionSSL":{"type":"string","enum":["LOG_FLOW_END","LOG_NONE"]},"SSLUndecryptableActions":{"type":"object","properties":{"compressedSession":{"type":"object","$ref":"#/definitions/SSLUndecryptableActions$UndecryptableActionChoice"},"sslV2Session":{"type":"object","$ref":"#/definitions/SSLUndecryptableActions$UndecryptableActionChoice"},"unknownCipherSuite":{"type":"object","$ref":"#/definitions/SSLUndecryptableActions$UndecryptableActionChoice"},"unsupportedCipherSuite":{"type":"object","$ref":"#/definitions/SSLUndecryptableActions$UndecryptableActionChoice"},"sessionNotCached":{"type":"object","$ref":"#/definitions/SSLUndecryptableActions$UndecryptableActionChoice"},"handShakeErrors":{"type":"object","$ref":"#/definitions/SSLUndecryptableActions$UndecryptableActionChoice"},"decryptionErrors":{"type":"object","$ref":"#/definitions/SSLUndecryptableActions$DecryptionErrorsChoice"},"type":{"type":"string","default":"sslundecryptableactions"}},"required":["handShakeErrors","decryptionErrors","sslV2Session","unknownCipherSuite","compressedSession","unsupportedCipherSuite","sessionNotCached","type"],"example":{"type":"sslundecryptableactions","compressedSession":"DO_NOT_DECRYPT","sslV2Session":"BLOCK_WITH_RESET","unknownCipherSuite":"INHERIT_DEFAULT_ACTION","unsupportedCipherSuite":"INHERIT_DEFAULT_ACTION","sessionNotCached":"BLOCK_WITH_RESET","handShakeErrors":"BLOCK","decryptionErrors":"BLOCK"}},"SSLUndecryptableActions$UndecryptableActionChoice":{"type":"string","enum":["INHERIT_DEFAULT_ACTION","DO_NOT_DECRYPT","BLOCK","BLOCK_WITH_RESET"]},"SSLUndecryptableActions$DecryptionErrorsChoice":{"type":"string","enum":["BLOCK","BLOCK_WITH_RESET"]},"TrafficInterruptionCause":{"type":"string","enum":["SSL_ENABLED","SSL_DISABLED","MTU_CHANGED","VDB_UPDATE"]},"TrafficInterruptionReasons":{"type":"object","properties":{"reasons":{"type":"array","items":{"type":"object","$ref":"#/definitions/TrafficInterruptionCause"}},"id":{"type":"string"},"type":{"type":"string","default":"TrafficInterruptionReasons"}},"required":["type"],"example":{"id":"default","version":"71eaa8a4-d6c8-5e2f-8acd-83564345bdc5","reasons":["SSL_DISABLED","MTU_CHANGED","VDB_UPDATE","SRU_UPDATE"],"type":"TrafficInterruptionReasons"}},"TrafficInterruptionReasonsWrapper":{"allOf":[{"$ref":"#/definitions/TrafficInterruptionReasons"},{"$ref":"#/definitions/LinksWrapper"}]},"ConnectTest":{"type":"object","properties":{"destination":{"type":"string"},"connected":{"type":"boolean"},"msg":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"ConnectTest"}},"required":["destination","type"]},"ConnectTestWrapper":{"allOf":[{"$ref":"#/definitions/ConnectTest"},{"$ref":"#/definitions/LinksWrapper"}]},"FileChunkContent":{"type":"object","properties":{"fileId":{"type":"string"},"chunkIndex":{"type":"integer"},"chunkContent":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"FileChunkContent"}},"required":["type"]},"FileChunksInfo":{"type":"object","properties":{"fileId":{"type":"string"},"numberOfChunks":{"type":"integer"},"id":{"type":"string"},"type":{"type":"string","default":"FileChunksInfo"}},"required":["type"]},"UserUtils":{"type":"object"},"AnyConnectClientProfile":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"diskFileName":{"type":"string"},"md5Checksum":{"type":"string"},"id":{"type":"string"},"type":{"type":"string","default":"anyconnectclientprofile"}},"required":["type"],"example":{"name":"AnyConnectClientProfile3","description":"Odota vojnagsis vofrene vi nazmakte ejtuna sip tebot vetounu gi jezanvef va muc kagufpi egumuom ge ves usu.","diskFileName":"diskFileName3","id":"62243f39-59d9-59d2-b9a6-42d557154bde","version":"d0649b9f-d8ee-5fbe-b0a9-5ebe2910ddaa","type":"anyconnectclientprofile"}},"AnyConnectClientProfileWrapper":{"allOf":[{"$ref":"#/definitions/AnyConnectClientProfile"},{"$ref":"#/definitions/LinksWrapper"}]},"AnyConnectGroupPolicy":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"banner":{"type":"string"},"maxConnectionTimeout":{"type":"integer"},"idleTimeout":{"type":"integer"},"clientProfiles":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"browserProxyType":{"type":"object","$ref":"#/definitions/AnyConnectGroupPolicy$BrowserProxyType"},"proxyServer":{"type":"string"},"proxyPort":{"type":"integer"},"proxyExceptions":{"type":"array","items":{"type":"object","$ref":"#/definitions/ServerHostAndPort"}},"id":{"type":"string"},"type":{"type":"string","default":"anyconnectgrouppolicy"}},"required":["type","browserProxyType"]},"AnyConnectGroupPolicyWrapper":{"allOf":[{"$ref":"#/definitions/AnyConnectGroupPolicy"},{"$ref":"#/definitions/LinksWrapper"}]},"AnyConnectGroupPolicy$BrowserProxyType":{"type":"string","enum":["NO_PROXY","NO_MODIFY","AUTO_DETECT","USE_SERVER"]},"AnyConnectPackageFile":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"diskFileName":{"type":"string"},"md5Checksum":{"type":"string"},"platformType":{"type":"object","$ref":"#/definitions/AnyConnectPackageFile$PackagePlatformType"},"id":{"type":"string"},"type":{"type":"string","default":"anyconnectpackagefile"}},"required":["platformType","type"]},"AnyConnectPackageFileWrapper":{"allOf":[{"$ref":"#/definitions/AnyConnectPackageFile"},{"$ref":"#/definitions/LinksWrapper"}]},"AnyConnectPackageFile$PackagePlatformType":{"type":"string","enum":["LINUX","MACOS","WINDOWS"]},"AnyConnectPackages":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"packageFiles":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"id":{"type":"string"},"type":{"type":"string","default":"anyconnectpackages"}},"required":["type"]},"AnyConnectPackagesWrapper":{"allOf":[{"$ref":"#/definitions/AnyConnectPackages"},{"$ref":"#/definitions/LinksWrapper"}]},"AnyConnectProfile":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"groupPolicy":{"type":"object","$ref":"#/definitions/ReferenceModel"},"authenticationIdentitySource":{"type":"object","$ref":"#/definitions/ReferenceModel"},"fallbackLocalIdentitySource":{"type":"object","$ref":"#/definitions/ReferenceModel"},"authMethod":{"type":"object","$ref":"#/definitions/AnyConnectProfile$ClientAuthMethod"},"serverCertificate":{"type":"object","$ref":"#/definitions/ReferenceModel"},"clientCACertificates":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"usernameFromCertificate":{"type":"object","$ref":"#/definitions/AnyConnectProfile$UsernameFromCertificate"},"usernamePrimaryField":{"type":"object","$ref":"#/definitions/AnyConnectProfile$CertificateField"},"usernameSecondaryField":{"type":"object","$ref":"#/definitions/AnyConnectProfile$CertificateField"},"prefillUsernameFromCertificate":{"type":"boolean"},"disablePrefilledUsernameEdit":{"type":"boolean"},"stripGroupFromUsername":{"type":"boolean"},"stripRealmFromUsername":{"type":"boolean"},"outsideInterface":{"type":"object","$ref":"#/definitions/ReferenceModel"},"outsideFqdn":{"type":"string"},"ipv4LocalAddressPool":{"type":"object","$ref":"#/definitions/ReferenceModel"},"ipv6LocalAddressPool":{"type":"object","$ref":"#/definitions/ReferenceModel"},"dnsServers":{"type":"array","items":{"type":"string"}},"domainName":{"type":"string"},"exemptNatRule":{"type":"boolean"},"splitTunnel":{"type":"boolean"},"insideInterfaces":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"insideNetworks":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"id":{"type":"string"},"type":{"type":"string","default":"anyconnectprofile"}},"required":["outsideInterface","splitTunnel","serverCertificate","exemptNatRule","authMethod","type"]},"AnyConnectProfileWrapper":{"allOf":[{"$ref":"#/definitions/AnyConnectProfile"},{"$ref":"#/definitions/LinksWrapper"}]},"AnyConnectProfile$CertificateField":{"type":"string","enum":["NONE","C_COUNTRY","CN_COMMMON_NAME","DNQ_DN_QUALIFIER","EA_EMAIL_ADDRESS","GENQ_GENERATIONAL_QUALIFIER","GN_GIVEN_NAME","I_INITIAL","L_LOCALITY","N_NAME","O_ORGANISATION","OU_ORGANISATIONAL_UNIT","SER_SERIAL_NUMBER","SN_SURNAME","SP_STATE_PROVINCE","T_TITLE","UID_USER_ID","UPN_USER_PRINCIPAL_NAME"]},"AnyConnectProfile$UsernameFromCertificate":{"type":"string","enum":["ENTIRE_DN","SPECIFIED_FIELD"]},"AnyConnectProfile$ClientAuthMethod":{"type":"string","enum":["AAA","CLIENT_CERTIFICATE","AAA_AND_CLIENT_CERTIFICATE"]},"AnyConnectVpnConnection":{"type":"object","properties":{"version":{"type":"string"},"connectionProfile":{"type":"object","$ref":"#/definitions/ReferenceModel"},"groupPolicy":{"type":"object","$ref":"#/definitions/ReferenceModel"},"clientPackages":{"type":"object","$ref":"#/definitions/ReferenceModel"},"id":{"type":"string"},"type":{"type":"string","default":"anyconnectvpnconnection"}},"required":["type"]},"AnyConnectVpnConnectionWrapper":{"allOf":[{"$ref":"#/definitions/AnyConnectVpnConnection"},{"$ref":"#/definitions/LinksWrapper"}]},"IkePolicyBase$CliTokenIf":{"type":"object","properties":{"cliToken":{"type":"string"}}},"IkevOnePolicy":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"enabled":{"type":"boolean"},"lifeTime":{"type":"integer"},"priority":{"type":"integer"},"authenticationType":{"type":"object","$ref":"#/definitions/IkevOnePolicy$AuthenticationType"},"encryptionType":{"type":"object","$ref":"#/definitions/IkevOnePolicy$IkevOneEncryptionType"},"hashType":{"type":"object","$ref":"#/definitions/IkevOnePolicy$HashType"},"groupType":{"type":"object","$ref":"#/definitions/IkevOnePolicy$IkevOneGroupType"},"summaryLabel":{"type":"string"},"cryptoRestricted":{"type":"boolean"},"id":{"type":"string"},"isSystemDefined":{"type":"boolean"},"type":{"type":"string","default":"ikevonepolicy"}},"required":["groupType","encryptionType","authenticationType","priority","type","hashType","enabled"],"example":{"id":"9a8fdd91-aadd-5f32-ba4a-77cb2c27cd0b","version":"2f6047e6-31ed-5c83-8936-d2a63c203422","isSystemDefined":false,"name":"IkevOnePolicy2","groupType":"GROUP2","enabled":false,"priority":41457,"hashType":"SHA","authenticationType":"PRE_SHARE","encryptionType":"AES192","lifeTime":565194236,"summaryLabel":"SHA-PRE_SHARE-AES192-GROUP2","cryptoRestricted":true,"type":"ikevonepolicy"}},"IkevOnePolicyWrapper":{"allOf":[{"$ref":"#/definitions/IkevOnePolicy"},{"$ref":"#/definitions/LinksWrapper"}]},"IkevOnePolicy$IkevOneGroupType":{"type":"string","enum":["GROUP1","GROUP2","GROUP5"]},"IkevOnePolicy$HashType":{"type":"string","enum":["SHA","MD5"]},"IkevOnePolicy$IkevOneEncryptionType":{"type":"string","enum":["AES","AES192","AES256","DES","THREE_DES"]},"IkevOnePolicy$AuthenticationType":{"type":"string","enum":["RSA_SIG","PRE_SHARE"]},"IkevOneProposal":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"encryptionMethod":{"type":"object","$ref":"#/definitions/IkevOneProposal$EncryptionMethodType"},"authenticationMethod":{"type":"object","$ref":"#/definitions/IkevOneProposal$AuthenticationMethodType"},"mode":{"type":"object","$ref":"#/definitions/IkevOneProposal$ModeType"},"summaryLabel":{"type":"string"},"cryptoRestricted":{"type":"boolean"},"defaultAssignable":{"type":"boolean"},"id":{"type":"string"},"isSystemDefined":{"type":"boolean"},"type":{"type":"string","default":"ikevoneproposal"}},"required":["mode","authenticationMethod","type","encryptionMethod"],"example":{"id":"aed45e44-5280-52c8-b12c-1eb0f6c2f9f5","version":"a793c940-3689-5e87-b47a-9feefbecfdc0","isSystemDefined":false,"defaultAssignable":true,"name":"IkevOneIPSecProposal2","encryptionMethod":"ESP_3DES","authenticationMethod":"ESP_NONE","mode":"TUNNEL","summaryLabel":"ESP_3DES-ESP_NONE-TUNNEL","cryptoRestricted":true,"type":"ikevoneproposal"}},"IkevOneProposalWrapper":{"allOf":[{"$ref":"#/definitions/IkevOneProposal"},{"$ref":"#/definitions/LinksWrapper"}]},"IkevOneProposal$ModeType":{"type":"string","enum":["TRANSPORT","TUNNEL"]},"IkevOneProposal$AuthenticationMethodType":{"type":"string","enum":["ESP_MD5_HMAC","ESP_NONE","ESP_SHA_HMAC"]},"IkevOneProposal$EncryptionMethodType":{"type":"string","enum":["ESP_3DES","ESP_AES","ESP_AES192","ESP_AES256","ESP_DES","ESP_NULL"]},"IkevTwoPolicy":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"enabled":{"type":"boolean"},"lifeTime":{"type":"integer"},"priority":{"type":"integer"},"encryptionTypes":{"type":"array","items":{"type":"object","$ref":"#/definitions/IkevTwoPolicy$IkevTwoEncryptionType"}},"groupTypes":{"type":"array","items":{"type":"object","$ref":"#/definitions/IkevTwoPolicy$IkevTwoGroupType"}},"integrityTypes":{"type":"array","items":{"type":"object","$ref":"#/definitions/IkevTwoPolicy$IntegrityType"}},"prfTypes":{"type":"array","items":{"type":"object","$ref":"#/definitions/IkevTwoPolicy$PrfType"}},"summaryLabel":{"type":"string"},"cryptoRestricted":{"type":"boolean"},"id":{"type":"string"},"isSystemDefined":{"type":"boolean"},"type":{"type":"string","default":"ikevtwopolicy"}},"required":["priority","type","enabled"],"example":{"id":"b0537a7f-23c2-5038-81dd-78d67e5b8c3a","version":"3b4f6bef-1c89-5efe-b3b2-ebf07eeb1b28","isSystemDefined":false,"name":"IkevTwoPolicy2","prfTypes":["SHA","SHA512","MD5","SHA384","SHA256"],"integrityTypes":["SHA384","SHA","SHA256"],"groupTypes":["GROUP14","GROUP21","GROUP19","GROUP2","GROUP24","GROUP1"],"encryptionTypes":["AES_GCM","DES","THREE_DES","AES_GCM192","AES192","AES256"],"enabled":false,"priority":44423,"lifeTime":2017816985,"summaryLabel":"SHA-SHA512-MD5-SHA384-SHA256-SHA384-SHA-SHA256-GROUP14-GROUP21-GROUP19-GROUP2-GROUP24-GROUP1-AES_GCM-DES-THREE_DES-AES_GCM192-AES192-AES256","cryptoRestricted":false,"type":"ikevtwopolicy"}},"IkevTwoPolicyWrapper":{"allOf":[{"$ref":"#/definitions/IkevTwoPolicy"},{"$ref":"#/definitions/LinksWrapper"}]},"IkevTwoPolicy$PrfType":{"type":"string","enum":["SHA","MD5","SHA256","SHA384","SHA512"]},"IkevTwoPolicy$IkevTwoGroupType":{"type":"string","enum":["GROUP1","GROUP2","GROUP5","GROUP14","GROUP19","GROUP20","GROUP21","GROUP24"]},"IkevTwoPolicy$IntegrityType":{"type":"string","enum":["SHA","SHA256","SHA384","SHA512","MD5","NULL"]},"IkevTwoPolicy$IkevTwoEncryptionType":{"type":"string","enum":["AES","AES192","AES256","DES","THREE_DES","AES_GCM","AES_GCM192","AES_GCM256","NULL"]},"IkevTwoProposal":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"encryptionTypes":{"type":"array","items":{"type":"object","$ref":"#/definitions/IkevTwoProposal$IkevTwoProposalEncryptType"}},"integrityTypes":{"type":"array","items":{"type":"object","$ref":"#/definitions/IkevTwoProposal$IkevTwoProposalIntegrityType"}},"summaryLabel":{"type":"string"},"cryptoRestricted":{"type":"boolean"},"defaultAssignable":{"type":"boolean"},"id":{"type":"string"},"isSystemDefined":{"type":"boolean"},"type":{"type":"string","default":"ikevtwoproposal"}},"required":["type"],"example":{"id":"2226f4f6-4395-5b26-9ab1-bdcbab38d45f","version":"8690ce28-660a-5aee-bd43-1b83a1d3c96f","isSystemDefined":false,"defaultAssignable":true,"name":"IkevTwoProposal2","integrityTypes":["MD5"],"encryptionTypes":["AES_GCM","AES_GCM192","AES_GMAC256","AES_GCM256","DES","NULL"],"summaryLabel":"MD5-AES_GCM-AES_GCM192-AES_GMAC256-AES_GCM256-DES-NULL","cryptoRestricted":true,"type":"ikevtwoproposal"}},"IkevTwoProposalWrapper":{"allOf":[{"$ref":"#/definitions/IkevTwoProposal"},{"$ref":"#/definitions/LinksWrapper"}]},"IkevTwoProposal$IkevTwoProposalIntegrityType":{"type":"string","enum":["MD5","SHA1","SHA256","SHA384","SHA512","NULL"]},"IkevTwoProposal$IkevTwoProposalEncryptType":{"type":"string","enum":["THREE_DES","AES","AES192","AES256","AES_GCM","AES_GCM192","AES_GCM256","AES_GMAC","AES_GMAC192","AES_GMAC256","DES","NULL"]},"SToSConnectionProfile":{"type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"},"outsideInterfaces":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"localNetworks":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"remotePeerIpAddress":{"type":"string"},"remoteNetworks":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"ikev1Enabled":{"type":"boolean"},"ikev2Enabled":{"type":"boolean"},"ikev1PreSharedKey":{"type":"string"},"diffieHellmanGroup":{"type":"object","$ref":"#/definitions/SToSConnectionProfile$PerfectForwardSecrecyGroupType"},"ikev2LocalPreSharedKey":{"type":"string"},"ikev2RemotePeerPreSharedKey":{"type":"string"},"ikev1Proposals":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"ikev2Proposals":{"type":"array","items":{"type":"object","$ref":"#/definitions/ReferenceModel"}},"interfaceForNatExempt":{"type":"object","$ref":"#/definitions/ReferenceModel"},"id":{"type":"string"},"type":{"type":"string","default":"stosconnectionprofile"}},"required":["outsideInterfaces","ikev1Enabled","ikev2Enabled","type","remotePeerIpAddress"],"example":{"id":"cef975d8-6e7b-5aea-af39-88276d9bdcc6","version":"88947228-8b06-558f-9606-37042c5684ec","name":"SToSConnectionProfile1","ikev1Enabled":false,"ikev2RemotePeerPreSharedKey":"uuid","remotePeerIpAddress":"97.32.171.253","ikev2Enabled":false,"ikev2LocalPreSharedKey":"uuid","ikev1PreSharedKey":"uuid","localNetworks":[{"id":"91eec2e0-40a0-5a21-8e47-895180936601","name":"Network3","description":"Sipato cebda bujno ajnona kata sacigi kirkoc adicazin wewomu hiferkuz wekog ja domkag ovnejegu bihod.","version":"4bd8c9f6-0f14-5c4f-9946-58217f033d54","type":"networkobject","subType":"NETWORK","value":"233.1.1.0/255.255.255.0","isSystemDefined":false,"metadata":{"referenced":false}},{"id":"81e99f9a-e532-5ffe-91f1-89737f0f1f5a","name":"NetworkGroup6","description":"Tatvap no moufuje hu ikobizwa zufukozeh beodumah reka ze mu mewiptuf aste genfoodi gaajdu.","version":"1a381de3-9a0c-58f9-8a89-0ea218312f43","type":"networkobjectgroup","objects":[{"id":"6f55bc7e-79ee-5271-b299-5eb7db9ece0e","name":"Network14","description":"Naduk tuto zatuli pedufu dowkol gapcetod ehukevnem oszi numudol ubibi pufhubfu ripsitfu.","version":"3ab046cd-f4be-55d8-af7a-7a84bc3f7716","type":"networkobject","subType":"HOST","value":"111.31.129.11","isSystemDefined":true,"metadata":{"referenced":true}}],"links":{"self":"http://url/api/fdm/v2/networkobject/12345"},"metadata":{"referenced":false}},{"id":"ddd54776-03f7-5a08-8a6b-a877fdcadfcd","name":"NetworkGroup3","description":"Mivelos ga co jibken bim cu mub atmo peale ukvu tozuti muwuw musotlo hi du pijahlur zog.","version":"ae91a419-f50d-5045-b27f-83fba29e2d17","type":"networkobjectgroup","objects":[{"id":"de4c912d-0f32-5730-92dd-e6ef7f12a099","name":"Network11","description":"Gisi kalej ih zum midogi gar vezsu reweh od sufmukce siici ki hepvevote ubu feva fabikdol.","version":"dc1b33e1-bb99-5727-85e6-6f30f624ffa2","type":"networkobject","subType":"HOST","value":"42.38.187.218","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"25837b53-40d7-599f-9a1e-0a5391f2662e","name":"Network1","description":"Ser ahpi penul nuszil ojsuvo zavlatha junez afuhi soewuteh ha larhoose lijuto ruhi za murmurgu eznehfa nejag piv.","version":"0761c298-1c3c-5537-971c-17934322192b","type":"networkobject","subType":"HOST","value":"f92d:3cda:6fb3:7e4b:db95:8984:e616:928e","isSystemDefined":true,"metadata":{"referenced":false}}],"links":{"self":"http://url/api/fdm/v2/networkobject/12345"},"metadata":{"referenced":false}}],"remoteNetworks":[{"id":"6f55bc7e-79ee-5271-b299-5eb7db9ece0e","name":"Network14","description":"Naduk tuto zatuli pedufu dowkol gapcetod ehukevnem oszi numudol ubibi pufhubfu ripsitfu.","version":"3ab046cd-f4be-55d8-af7a-7a84bc3f7716","type":"networkobject","subType":"HOST","value":"111.31.129.11","isSystemDefined":true,"metadata":{"referenced":true}},{"id":"81e99f9a-e532-5ffe-91f1-89737f0f1f5a","name":"NetworkGroup6","description":"Tatvap no moufuje hu ikobizwa zufukozeh beodumah reka ze mu mewiptuf aste genfoodi gaajdu.","version":"1a381de3-9a0c-58f9-8a89-0ea218312f43","type":"networkobjectgroup","objects":[{"id":"6f55bc7e-79ee-5271-b299-5eb7db9ece0e","name":"Network14","description":"Naduk tuto zatuli pedufu dowkol gapcetod ehukevnem oszi numudol ubibi pufhubfu ripsitfu.","version":"3ab046cd-f4be-55d8-af7a-7a84bc3f7716","type":"networkobject","subType":"HOST","value":"111.31.129.11","isSystemDefined":true,"metadata":{"referenced":true}}],"links":{"self":"http://url/api/fdm/v2/networkobject/12345"},"metadata":{"referenced":false}},{"id":"398fb71a-70a8-5ca9-a539-52c3a8dd92f8","name":"NetworkGroup5","description":"Fazahad limutduw foon pacaja usmu ace bidiur nuavu zehbubjaf mana ra ecu nuhsetke voc jakat gozu gezaz love.","version":"87a49ed6-a0fe-586b-bbc7-22dbfe8751fd","type":"networkobjectgroup","objects":[{"id":"884f239a-2976-5e8e-9cb5-5aeb31fc1554","name":"Network15","description":"Rad ladfevhez vucvibbu omeheh hi rulsusva nut diw sikeznag ehazelu witam tocrah irca wavegezi na nidmimle.","version":"7c7865f0-2dcd-5833-a31b-7fe684b3c2ff","type":"networkobject","subType":"HOST","value":"80.87.24.187","isSystemDefined":false,"metadata":{"referenced":false}},{"id":"4e22d897-4214-5a59-adc0-a40ee1363e10","name":"Network5","description":"Kug viuheci tiwihu iberaw rolo januke huwefi jik labam lurepi be nioc ikime.","version":"880073f6-ecc1-5e1e-a50e-625fb47bbcf9","type":"networkobject","subType":"HOST","value":"51ef:0dda:2b5c:2260:6fc7:e9c3:7507:80fe","isSystemDefined":false,"metadata":{"referenced":true}}],"links":{"self":"http://url/api/fdm/v2/networkobject/12345"},"metadata":{"referenced":false}}],"outsideInterfaces":[{"mtu":2652,"enabled":true,"description":"Dijiz mavajmak suhihi ja piobba vigsasu pulasa heka lus nuapoap gar weuluvaz faf duke sojpov pamdaba juhoflon ugosum.","name":"subinterface4name","id":"80110552-0168-5ca1-9539-159176e34426","hardwareName":"SubInterface0/4.5","macAddress":"1753.227B.5D9A","monitorInterface":false,"standbyMacAddress":"FF7B.C256.4778","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"1bb9:5d4d:1200:c9eb:97ff:589e:edd4:16e4/32","ipAddress":"eaba:377e:f390:0e98:800f:a6a7:5709:6b52/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"5189:1c32:5064:5495:0ecf:92dd:9175:944a","ipAddress":"479b:2e4a:a86f:13c2:425b:1e14:b1a3:ddfd"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"STATIC","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":false,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"213.34.152.190","standbyIpAddress":"91.47.228.196"}},"version":"8bcf839f-438a-5cd4-99a7-b6f07ab652a0","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"}],"interfaceForNatExempt":{"mtu":2652,"enabled":true,"description":"De jogmov liw wunehezo wuahhiz oruur pibam cu vomavoc dutaz bebunlec amu.","name":"subinterface15name","id":"e92223a0-0769-587e-9153-c2b516b88c03","hardwareName":"SubInterface0/15.16","macAddress":"4AB2.31C0.B9C9","monitorInterface":true,"standbyMacAddress":"A104.EADB.4287","ipv6":{"dhcpForManagedConfig":false,"enabled":false,"autoConfig":false,"dadAttempts":380,"enableRA":false,"vlan":140,"prefixes":[{"prefix":"sub","type":"ipv6prefix"}],"ipAddresses":[{"type":"haipv6address","standbyIpAddress":"3135:37d2:489e:7b37:30e2:478c:7110:05f3/32","ipAddress":"5229:2b59:f312:4fbd:d31b:83cc:fd80:f77b/32"}],"type":"interfaceipv6","linkLocalAddress":{"type":"haipv6address","standbyIpAddress":"9c71:0c47:ad57:6fe1:03d6:c0b4:4ba3:bf8e","ipAddress":"e40f:d322:3f7b:0de2:3c14:2bb7:819b:8f90"},"dhcpForOtherConfig":false},"ipv4":{"ipType":"DHCP","addressNull":false,"dhcpRouteMetric":44,"defaultRouteUsingDHCP":true,"dhcp":false,"type":"interfaceipv4","ipAddress":{"type":"haipv4address","netmask":"16","ipAddress":"161.116.86.92","standbyIpAddress":"0.24.2.181"}},"version":"465fcd85-12f0-5152-909c-28bc75b11bdf","managementInterface":false,"managementOnly":false,"subIntfId":3710893646,"vlanId":1877,"type":"subinterface"},"type":"stosconnectionprofile"}},"SToSConnectionProfileWrapper":{"allOf":[{"$ref":"#/definitions/SToSConnectionProfile"},{"$ref":"#/definitions/LinksWrapper"}]},"SToSConnectionProfile$PerfectForwardSecrecyGroupType":{"type":"string","enum":["GROUP1","GROUP2","GROUP5","GROUP14","GROUP19","GROUP20","GROUP21","GROUP24"]},"ServerHostAndPort":{"type":"object","properties":{"serverHost":{"type":"string"},"port":{"type":"integer"},"type":{"type":"string","default":"serverhostandport"}},"required":["type","serverHost"]},"NGFWErrorMessage":{"type":"object","properties":{"description":{"type":"string"},"code":{"type":"string"},"location":{"type":"string"}},"required":["description"]},"ErrorResponse":{"type":"object","properties":{"key":{"type":"string","enum":["General","Validation","Deployment"]},"messages":{"type":"array","items":{"type":"object","$ref":"#/definitions/NGFWErrorMessage"}},"severity":{"type":"object","$ref":"#/definitions/ErrorResponse$Severity"}},"required":["key","messages","severity"]},"ErrorResponse$Severity":{"type":"string","enum":["ERROR","WARN"]},"Paging":{"type":"object","properties":{"prev":{"type":"array","items":{"type":"string"}},"next":{"type":"array","items":{"type":"string"}},"limit":{"type":"integer"},"offset":{"type":"integer"},"count":{"type":"integer"},"pages":{"type":"integer"}},"required":["prev","next","limit","offset","count","pages"]},"ErrorWrapper":{"type":"object","required":["error"],"properties":{"error":{"$ref":"#/definitions/ErrorResponse"}}},"LinksWrapper":{"type":"object","required":["links"],"properties":{"links":{"$ref":"#/definitions/Links"}}},"TokenPayloadUnion":{"type":"object","properties":{"grant_type":{"type":"string","enum":["custom_token","refresh_token","revoke_token","password"]},"access_token":{"type":"string"},"desired_expires_in":{"type":"integer"},"desired_refresh_expires_in":{"type":"integer"},"desired_subject":{"type":"string"},"desired_refresh_count":{"type":"integer"},"refresh_token":{"type":"string"},"token_to_revoke":{"type":"string"},"custom_token_id_to_revoke":{"type":"string"},"custom_token_subject_to_revoke":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"}},"required":["grant_type"]},"TokenStatus":{"type":"object","required":["status_code","message"],"properties":{"status_code":{"type":"integer"},"message":{"type":"string"}}},"TokenResponseUnion":{"type":"object","properties":{"access_token":{"type":"string"},"expires_in":{"type":"integer","default":1800},"token_type":{"type":"string","default":"Bearer"},"refresh_token":{"type":"string"},"refresh_expires_in":{"type":"integer","default":2400},"status_code":{"type":"integer"},"message":{"type":"string"}}},"ReferenceModel":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string"},"type":{"type":"string"},"version":{"type":"string"},"name":{"type":"string"}}},"AnyConnectVpnConnectionUncompressedModel":{"type":"object","properties":{"version":{"type":"string"},"connectionProfile":{"type":"object","$ref":"#/definitions/AnyConnectProfile"},"groupPolicy":{"type":"object","$ref":"#/definitions/AnyConnectGroupPolicy"},"clientPackages":{"type":"object","$ref":"#/definitions/AnyConnectPackages"},"id":{"type":"string"},"type":{"type":"string","default":"anyconnectvpnconnection"}},"required":["type"]},"InetAddressBase":{"type":"object","properties":{}},"DeviceLogFilterBase":{"type":"object","properties":{}},"AFAggregateAddress":{"type":"object","properties":{}},"AFBase":{"type":"object","properties":{}},"AFNetworkBase":{"type":"object","properties":{}},"NeighborBase":{"type":"object","properties":{}},"NeighborHops":{"type":"object","properties":{}},"DistributeList":{"type":"object","properties":{}},"OSPFLostNeighborDetectionMechanism":{"type":"object","properties":{}},"AreaType":{"type":"object","properties":{}},"AuthenticationBase":{"type":"object","properties":{}},"PrefixListFilter":{"type":"object","properties":{}},"RedistributeProtocol":{"type":"object","properties":{}}},"tags":[{"name":"AAASetting"},{"name":"ASPathList"},{"name":"AccessPolicy"},{"name":"AccessRule"},{"name":"ActiveDirectoryRealm"},{"name":"ActiveUserSessions"},{"name":"AnyConnectClientProfile"},{"name":"AnyConnectGroupPolicy"},{"name":"AnyConnectPackageFile"},{"name":"AnyConnectPackages"},{"name":"AnyConnectProfile"},{"name":"AnyConnectVpnConnection"},{"name":"Application"},{"name":"ApplicationCategory"},{"name":"ApplicationFilter"},{"name":"ApplicationTag"},{"name":"ArchivedBackup"},{"name":"AuditEntityChange"},{"name":"AuditEvent"},{"name":"BGP"},{"name":"BackupFile"},{"name":"BackupImmediate"},{"name":"BackupScheduled"},{"name":"BaseEntityDiff"},{"name":"BreakHAStatus"},{"name":"BridgeGroupInterface"},{"name":"CertFileUploadStatus"},{"name":"Certificate"},{"name":"CliDeploymentError"},{"name":"Clipboard"},{"name":"CloudCommunicationSettings"},{"name":"CloudConfig"},{"name":"CloudManagement"},{"name":"CloudServicesInfo"},{"name":"Command"},{"name":"CommandAutoComplete"},{"name":"ConnectTest"},{"name":"Continent"},{"name":"Country"},{"name":"DHCPServerContainer"},{"name":"DNS"},{"name":"DNSServerGroup"},{"name":"DataDNSSettings"},{"name":"DataInterfaceManagementAccess"},{"name":"Deployment"},{"name":"DeploymentData"},{"name":"DeploymentStatus"},{"name":"DeviceDNSSettings"},{"name":"DeviceHostname"},{"name":"DeviceLogSettings"},{"name":"DiskUsage"},{"name":"Download"},{"name":"ExpandedCommunityList"},{"name":"ExportConfigJobHistory"},{"name":"ExtendedAccessList"},{"name":"ExternalCACertificate"},{"name":"ExternalCertificate"},{"name":"FeatureInformation"},{"name":"FilePolicy"},{"name":"FileUploadStatus"},{"name":"FlexConfigObject"},{"name":"FlexConfigPolicy"},{"name":"GeoLocation"},{"name":"GeolocationUpdateImmediate"},{"name":"GeolocationUpdateSchedule"},{"name":"HAAction"},{"name":"HAConfiguration"},{"name":"HAFailoverConfiguration"},{"name":"HAStatus"},{"name":"HTTPAccessList"},{"name":"ICMPv4PortObject"},{"name":"ICMPv6PortObject"},{"name":"IPV4PrefixList"},{"name":"IPV6PrefixList"},{"name":"IdentityPolicy"},{"name":"IdentityRule"},{"name":"IdentityServicesEngine"},{"name":"IkevOnePolicy"},{"name":"IkevOneProposal"},{"name":"IkevTwoPolicy"},{"name":"IkevTwoProposal"},{"name":"InitialProvision"},{"name":"Interface"},{"name":"InterfaceInfo"},{"name":"InternalCACertificate"},{"name":"InternalCertificate"},{"name":"IntrusionPolicy"},{"name":"IntrusionPolicyRuleUpdate"},{"name":"IntrusionRule"},{"name":"IntrusionSettings"},{"name":"Job"},{"name":"JobHistoryBackup"},{"name":"JobHistoryCloudManagement"},{"name":"JobHistoryDeployment"},{"name":"JobHistoryEntity"},{"name":"JobHistoryGeolocation"},{"name":"JobHistoryHaConfigSync"},{"name":"JobHistorySruUpdate"},{"name":"JobHistoryVDBUpdate"},{"name":"JoinHAStatus"},{"name":"License"},{"name":"LicenseJobHistory"},{"name":"LocalIdentitySource"},{"name":"ManagementIP"},{"name":"ManualNatRule"},{"name":"ManualNatRuleContainer"},{"name":"NAT"},{"name":"NTP"},{"name":"NTPStatus"},{"name":"NetworkFeedCategory"},{"name":"NetworkObject"},{"name":"NetworkObjectGroup"},{"name":"OSPF"},{"name":"OSPFInterfaceSettings"},{"name":"ObjectNatRule"},{"name":"ObjectNatRuleContainer"},{"name":"PhysicalInterface"},{"name":"PolicyList"},{"name":"PortObject"},{"name":"PortObjectGroup"},{"name":"PostUpgradeFlags"},{"name":"ProtocolObject"},{"name":"RadiusIdentitySource"},{"name":"RadiusIdentitySourceGroup"},{"name":"RestoreImmediate"},{"name":"RolePermission"},{"name":"RouteMap"},{"name":"SRUUpdateImmediate"},{"name":"SRUUpdateSchedule"},{"name":"SSHAccessList"},{"name":"SSLPolicy"},{"name":"SSLRule"},{"name":"SToSConnectionProfile"},{"name":"ScheduleExportConfig"},{"name":"ScheduleTroubleshoot"},{"name":"Secret"},{"name":"SecurityIntelligence"},{"name":"SecurityIntelligenceNetworkPolicy"},{"name":"SecurityIntelligencePolicy"},{"name":"SecurityIntelligenceURLPolicy"},{"name":"SecurityIntelligenceUpdateFeedsImmediate"},{"name":"SecurityIntelligenceUpdateFeedsSchedule"},{"name":"SecurityZone"},{"name":"SmartAgentConnection"},{"name":"SmartAgentStatus"},{"name":"SmartAgentSyncRequest"},{"name":"SmartLicensing"},{"name":"SpecialRealm"},{"name":"StandardAccessList"},{"name":"StandardCommunityList"},{"name":"StaticRouteEntry"},{"name":"StaticRouteEntryContainer"},{"name":"SubInterface"},{"name":"SyslogServer"},{"name":"SystemFeedObject"},{"name":"SystemInformation"},{"name":"TCPPortObject"},{"name":"Telemetry"},{"name":"TestDirectory"},{"name":"TestIdentityServicesEngineConnectivity"},{"name":"TestIdentitySource"},{"name":"TimeZones"},{"name":"Token"},{"name":"TrafficInterruptionReasons"},{"name":"TrafficUser"},{"name":"TrafficUserGroup"},{"name":"TrendingReport"},{"name":"TroubleshootFile"},{"name":"TroubleshootJobHistory"},{"name":"UDPPortObject"},{"name":"URLCategory"},{"name":"URLFeedCategory"},{"name":"URLObject"},{"name":"URLObjectGroup"},{"name":"URLReputation"},{"name":"UnlockBox"},{"name":"Upgrade"},{"name":"UpgradeFile"},{"name":"Upload"},{"name":"User"},{"name":"VDBUpdateImmediate"},{"name":"VDBUpdateSchedule"},{"name":"WebAnalyticsSetting"}],"paths":{"/operational/systeminfo/{objId}":{"get":{"tags":["SystemInformation"],"operationId":"getSystemInformation","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SystemInformationWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/action/command":{"post":{"tags":["Command"],"operationId":"addCommand","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/CommandWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/Command"}}]}},"/operational/commandautocomplete/{objId}":{"get":{"tags":["CommandAutoComplete"],"operationId":"getCommandAutoComplete","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/CommandAutoCompleteWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/operational/featureinfo/{objId}":{"get":{"tags":["FeatureInformation"],"operationId":"getFeatureInformation","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/FeatureInformationWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/operational/telemetry/{objId}":{"get":{"tags":["Telemetry"],"operationId":"getTelemetry","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/TelemetryWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/devicesettings/default/httpaccesslists":{"get":{"tags":["HTTPAccessList"],"operationId":"getHTTPAccessListList","responses":{"200":{"description":"","schema":{"type":"object","title":"HTTPAccessListList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/HTTPAccessListWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/devicesettings/default/httpaccesslists/{objId}":{"get":{"tags":["HTTPAccessList"],"operationId":"getHTTPAccessList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/HTTPAccessListWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["HTTPAccessList"],"operationId":"editHTTPAccessList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/HTTPAccessListWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/HTTPAccessList"}}]}},"/devicesettings/default/sshaccesslists":{"get":{"tags":["SSHAccessList"],"operationId":"getSSHAccessListList","responses":{"200":{"description":"","schema":{"type":"object","title":"SSHAccessListList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/SSHAccessListWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/devicesettings/default/sshaccesslists/{objId}":{"get":{"tags":["SSHAccessList"],"operationId":"getSSHAccessList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SSHAccessListWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["SSHAccessList"],"operationId":"editSSHAccessList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SSHAccessListWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SSHAccessList"}}]}},"/devicesettings/default/managementaccess":{"get":{"tags":["DataInterfaceManagementAccess"],"operationId":"getDataInterfaceManagementAccessList","responses":{"200":{"description":"","schema":{"type":"object","title":"DataInterfaceManagementAccessList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/DataInterfaceManagementAccessWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["DataInterfaceManagementAccess"],"operationId":"addDataInterfaceManagementAccess","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/DataInterfaceManagementAccessWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/DataInterfaceManagementAccess"}}]}},"/devicesettings/default/managementaccess/{objId}":{"get":{"tags":["DataInterfaceManagementAccess"],"operationId":"getDataInterfaceManagementAccess","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/DataInterfaceManagementAccessWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["DataInterfaceManagementAccess"],"operationId":"editDataInterfaceManagementAccess","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/DataInterfaceManagementAccessWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/DataInterfaceManagementAccess"}}]},"delete":{"tags":["DataInterfaceManagementAccess"],"operationId":"deleteDataInterfaceManagementAccess","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/devicesettings/default/devicehostnames":{"get":{"tags":["DeviceHostname"],"operationId":"getDeviceHostnameList","responses":{"200":{"description":"","schema":{"type":"object","title":"DeviceHostnameList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/DeviceHostnameWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/devicesettings/default/devicehostnames/{objId}":{"get":{"tags":["DeviceHostname"],"operationId":"getDeviceHostname","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/DeviceHostnameWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["DeviceHostname"],"operationId":"editDeviceHostname","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/DeviceHostnameWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/DeviceHostname"}}]}},"/devicesettings/default/cloudcommunicationsettings":{"get":{"tags":["CloudCommunicationSettings"],"operationId":"getCloudCommunicationSettingsList","responses":{"200":{"description":"","schema":{"type":"object","title":"CloudCommunicationSettingsList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/CloudCommunicationSettingsWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/devicesettings/default/cloudcommunicationsettings/{objId}":{"get":{"tags":["CloudCommunicationSettings"],"operationId":"getCloudCommunicationSettings","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/CloudCommunicationSettingsWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["CloudCommunicationSettings"],"operationId":"editCloudCommunicationSettings","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/CloudCommunicationSettingsWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/CloudCommunicationSettings"}}]}},"/devicesettings/default/managementips":{"get":{"tags":["ManagementIP"],"operationId":"getManagementIPList","responses":{"200":{"description":"","schema":{"type":"object","title":"ManagementIPList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/ManagementIPWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/devicesettings/default/managementips/{objId}":{"get":{"tags":["ManagementIP"],"operationId":"getManagementIP","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ManagementIPWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["ManagementIP"],"operationId":"editManagementIP","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ManagementIPWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ManagementIP"}}]}},"/object/networks":{"get":{"tags":["NetworkObject"],"operationId":"getNetworkObjectList","responses":{"200":{"description":"","schema":{"type":"object","title":"NetworkObjectList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/NetworkObjectWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["NetworkObject"],"operationId":"addNetworkObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/NetworkObjectWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/NetworkObject"}}]}},"/object/networks/{objId}":{"get":{"tags":["NetworkObject"],"operationId":"getNetworkObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/NetworkObjectWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["NetworkObject"],"operationId":"editNetworkObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/NetworkObjectWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/NetworkObject"}}]},"delete":{"tags":["NetworkObject"],"operationId":"deleteNetworkObject","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/networkgroups":{"get":{"tags":["NetworkObject"],"operationId":"getNetworkObjectGroupList","responses":{"200":{"description":"","schema":{"type":"object","title":"NetworkObjectGroupList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/NetworkObjectGroupWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["NetworkObject"],"operationId":"addNetworkObjectGroup","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/NetworkObjectGroupWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/NetworkObjectGroup"}}]}},"/object/networkgroups/{objId}":{"get":{"tags":["NetworkObject"],"operationId":"getNetworkObjectGroup","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/NetworkObjectGroupWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["NetworkObject"],"operationId":"editNetworkObjectGroup","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/NetworkObjectGroupWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/NetworkObjectGroup"}}]},"delete":{"tags":["NetworkObject"],"operationId":"deleteNetworkObjectGroup","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/tcpports":{"get":{"tags":["PortObject"],"operationId":"getTCPPortObjectList","responses":{"200":{"description":"","schema":{"type":"object","title":"TCPPortObjectList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/TCPPortObjectWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["PortObject"],"operationId":"addTCPPortObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/TCPPortObjectWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/TCPPortObject"}}]}},"/object/tcpports/{objId}":{"get":{"tags":["PortObject"],"operationId":"getTCPPortObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/TCPPortObjectWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["PortObject"],"operationId":"editTCPPortObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/TCPPortObjectWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/TCPPortObject"}}]},"delete":{"tags":["PortObject"],"operationId":"deleteTCPPortObject","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/udpports":{"get":{"tags":["PortObject"],"operationId":"getUDPPortObjectList","responses":{"200":{"description":"","schema":{"type":"object","title":"UDPPortObjectList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/UDPPortObjectWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["PortObject"],"operationId":"addUDPPortObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/UDPPortObjectWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/UDPPortObject"}}]}},"/object/udpports/{objId}":{"get":{"tags":["PortObject"],"operationId":"getUDPPortObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/UDPPortObjectWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["PortObject"],"operationId":"editUDPPortObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/UDPPortObjectWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/UDPPortObject"}}]},"delete":{"tags":["PortObject"],"operationId":"deleteUDPPortObject","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/protocols":{"get":{"tags":["PortObject"],"operationId":"getProtocolObjectList","responses":{"200":{"description":"","schema":{"type":"object","title":"ProtocolObjectList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/ProtocolObjectWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["PortObject"],"operationId":"addProtocolObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ProtocolObjectWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ProtocolObject"}}]}},"/object/protocols/{objId}":{"get":{"tags":["PortObject"],"operationId":"getProtocolObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ProtocolObjectWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["PortObject"],"operationId":"editProtocolObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ProtocolObjectWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ProtocolObject"}}]},"delete":{"tags":["PortObject"],"operationId":"deleteProtocolObject","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/icmpv4ports":{"get":{"tags":["PortObject"],"operationId":"getICMPv4PortObjectList","responses":{"200":{"description":"","schema":{"type":"object","title":"ICMPv4PortObjectList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/ICMPv4PortObjectWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["PortObject"],"operationId":"addICMPv4PortObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ICMPv4PortObjectWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ICMPv4PortObject"}}]}},"/object/icmpv4ports/{objId}":{"get":{"tags":["PortObject"],"operationId":"getICMPv4PortObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ICMPv4PortObjectWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["PortObject"],"operationId":"editICMPv4PortObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ICMPv4PortObjectWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ICMPv4PortObject"}}]},"delete":{"tags":["PortObject"],"operationId":"deleteICMPv4PortObject","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/icmpv6ports":{"get":{"tags":["PortObject"],"operationId":"getICMPv6PortObjectList","responses":{"200":{"description":"","schema":{"type":"object","title":"ICMPv6PortObjectList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/ICMPv6PortObjectWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["PortObject"],"operationId":"addICMPv6PortObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ICMPv6PortObjectWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ICMPv6PortObject"}}]}},"/object/icmpv6ports/{objId}":{"get":{"tags":["PortObject"],"operationId":"getICMPv6PortObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ICMPv6PortObjectWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["PortObject"],"operationId":"editICMPv6PortObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ICMPv6PortObjectWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ICMPv6PortObject"}}]},"delete":{"tags":["PortObject"],"operationId":"deleteICMPv6PortObject","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/portgroups":{"get":{"tags":["PortObject"],"operationId":"getPortObjectGroupList","responses":{"200":{"description":"","schema":{"type":"object","title":"PortObjectGroupList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/PortObjectGroupWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["PortObject"],"operationId":"addPortObjectGroup","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/PortObjectGroupWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PortObjectGroup"}}]}},"/object/portgroups/{objId}":{"get":{"tags":["PortObject"],"operationId":"getPortObjectGroup","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/PortObjectGroupWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["PortObject"],"operationId":"editPortObjectGroup","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/PortObjectGroupWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PortObjectGroup"}}]},"delete":{"tags":["PortObject"],"operationId":"deletePortObjectGroup","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/systemfeedobjects":{"get":{"tags":["SystemFeedObject"],"operationId":"getSystemFeedObjectList","responses":{"200":{"description":"","schema":{"type":"object","title":"SystemFeedObjectList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/SystemFeedObjectWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/object/systemfeedobjects/{objId}":{"get":{"tags":["SystemFeedObject"],"operationId":"getSystemFeedObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SystemFeedObjectWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["SystemFeedObject"],"operationId":"editSystemFeedObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SystemFeedObjectWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SystemFeedObject"}}]}},"/object/urlfeedcategories":{"get":{"tags":["URLFeedCategory"],"operationId":"getURLFeedCategoryList","responses":{"200":{"description":"","schema":{"type":"object","title":"URLFeedCategoryList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/URLFeedCategoryWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/object/urlfeedcategories/{objId}":{"get":{"tags":["URLFeedCategory"],"operationId":"getURLFeedCategory","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/URLFeedCategoryWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/networkfeedcategories":{"get":{"tags":["NetworkFeedCategory"],"operationId":"getNetworkFeedCategoryList","responses":{"200":{"description":"","schema":{"type":"object","title":"NetworkFeedCategoryList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/NetworkFeedCategoryWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/object/networkfeedcategories/{objId}":{"get":{"tags":["NetworkFeedCategory"],"operationId":"getNetworkFeedCategory","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/NetworkFeedCategoryWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/securityzones":{"get":{"tags":["SecurityZone"],"operationId":"getSecurityZoneList","responses":{"200":{"description":"","schema":{"type":"object","title":"SecurityZoneList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/SecurityZoneWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["SecurityZone"],"operationId":"addSecurityZone","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SecurityZoneWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SecurityZone"}}]}},"/object/securityzones/{objId}":{"get":{"tags":["SecurityZone"],"operationId":"getSecurityZone","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SecurityZoneWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["SecurityZone"],"operationId":"editSecurityZone","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SecurityZoneWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SecurityZone"}}]},"delete":{"tags":["SecurityZone"],"operationId":"deleteSecurityZone","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/integration/identityservicesengine":{"get":{"tags":["IdentityServicesEngine"],"operationId":"getIdentityServicesEngineList","responses":{"200":{"description":"","schema":{"type":"object","title":"IdentityServicesEngineList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/IdentityServicesEngineWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["IdentityServicesEngine"],"operationId":"addIdentityServicesEngine","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IdentityServicesEngineWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/IdentityServicesEngine"}}]}},"/integration/identityservicesengine/{objId}":{"get":{"tags":["IdentityServicesEngine"],"operationId":"getIdentityServicesEngine","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IdentityServicesEngineWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["IdentityServicesEngine"],"operationId":"editIdentityServicesEngine","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IdentityServicesEngineWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/IdentityServicesEngine"}}]},"delete":{"tags":["IdentityServicesEngine"],"operationId":"deleteIdentityServicesEngine","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/standardaccesslists":{"get":{"tags":["StandardAccessList"],"operationId":"getStandardAccessListList","responses":{"200":{"description":"","schema":{"type":"object","title":"StandardAccessListList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/StandardAccessListWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["StandardAccessList"],"operationId":"addStandardAccessList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/StandardAccessListWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/StandardAccessList"}}]}},"/object/standardaccesslists/{objId}":{"get":{"tags":["StandardAccessList"],"operationId":"getStandardAccessList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/StandardAccessListWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["StandardAccessList"],"operationId":"editStandardAccessList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/StandardAccessListWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/StandardAccessList"}}]},"delete":{"tags":["StandardAccessList"],"operationId":"deleteStandardAccessList","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/extendedaccesslists":{"get":{"tags":["ExtendedAccessList"],"operationId":"getExtendedAccessListList","responses":{"200":{"description":"","schema":{"type":"object","title":"ExtendedAccessListList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/ExtendedAccessListWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["ExtendedAccessList"],"operationId":"addExtendedAccessList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ExtendedAccessListWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ExtendedAccessList"}}]}},"/object/extendedaccesslists/{objId}":{"get":{"tags":["ExtendedAccessList"],"operationId":"getExtendedAccessList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ExtendedAccessListWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["ExtendedAccessList"],"operationId":"editExtendedAccessList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ExtendedAccessListWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ExtendedAccessList"}}]},"delete":{"tags":["ExtendedAccessList"],"operationId":"deleteExtendedAccessList","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/aspathlists":{"get":{"tags":["ASPathList"],"operationId":"getASPathListList","responses":{"200":{"description":"","schema":{"type":"object","title":"ASPathListList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/ASPathListWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["ASPathList"],"operationId":"addASPathList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ASPathListWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ASPathList"}}]}},"/object/aspathlists/{objId}":{"get":{"tags":["ASPathList"],"operationId":"getASPathList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ASPathListWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["ASPathList"],"operationId":"editASPathList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ASPathListWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ASPathList"}}]},"delete":{"tags":["ASPathList"],"operationId":"deleteASPathList","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/routemaps":{"get":{"tags":["RouteMap"],"operationId":"getRouteMapList","responses":{"200":{"description":"","schema":{"type":"object","title":"RouteMapList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/RouteMapWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["RouteMap"],"operationId":"addRouteMap","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/RouteMapWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/RouteMap"}}]}},"/object/routemaps/{objId}":{"get":{"tags":["RouteMap"],"operationId":"getRouteMap","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/RouteMapWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["RouteMap"],"operationId":"editRouteMap","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/RouteMapWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/RouteMap"}}]},"delete":{"tags":["RouteMap"],"operationId":"deleteRouteMap","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/standardcommunitylists":{"get":{"tags":["StandardCommunityList"],"operationId":"getStandardCommunityListList","responses":{"200":{"description":"","schema":{"type":"object","title":"StandardCommunityListList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/StandardCommunityListWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["StandardCommunityList"],"operationId":"addStandardCommunityList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/StandardCommunityListWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/StandardCommunityList"}}]}},"/object/standardcommunitylists/{objId}":{"get":{"tags":["StandardCommunityList"],"operationId":"getStandardCommunityList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/StandardCommunityListWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["StandardCommunityList"],"operationId":"editStandardCommunityList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/StandardCommunityListWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/StandardCommunityList"}}]},"delete":{"tags":["StandardCommunityList"],"operationId":"deleteStandardCommunityList","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/expandedcommunitylists":{"get":{"tags":["ExpandedCommunityList"],"operationId":"getExpandedCommunityListList","responses":{"200":{"description":"","schema":{"type":"object","title":"ExpandedCommunityListList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/ExpandedCommunityListWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["ExpandedCommunityList"],"operationId":"addExpandedCommunityList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ExpandedCommunityListWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ExpandedCommunityList"}}]}},"/object/expandedcommunitylists/{objId}":{"get":{"tags":["ExpandedCommunityList"],"operationId":"getExpandedCommunityList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ExpandedCommunityListWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["ExpandedCommunityList"],"operationId":"editExpandedCommunityList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ExpandedCommunityListWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ExpandedCommunityList"}}]},"delete":{"tags":["ExpandedCommunityList"],"operationId":"deleteExpandedCommunityList","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/ipv4prefixlists":{"get":{"tags":["IPV4PrefixList"],"operationId":"getIPV4PrefixListList","responses":{"200":{"description":"","schema":{"type":"object","title":"IPV4PrefixListList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/IPV4PrefixListWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["IPV4PrefixList"],"operationId":"addIPV4PrefixList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IPV4PrefixListWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/IPV4PrefixList"}}]}},"/object/ipv4prefixlists/{objId}":{"get":{"tags":["IPV4PrefixList"],"operationId":"getIPV4PrefixList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IPV4PrefixListWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["IPV4PrefixList"],"operationId":"editIPV4PrefixList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IPV4PrefixListWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/IPV4PrefixList"}}]},"delete":{"tags":["IPV4PrefixList"],"operationId":"deleteIPV4PrefixList","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/ipv6prefixlists":{"get":{"tags":["IPV6PrefixList"],"operationId":"getIPV6PrefixListList","responses":{"200":{"description":"","schema":{"type":"object","title":"IPV6PrefixListList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/IPV6PrefixListWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["IPV6PrefixList"],"operationId":"addIPV6PrefixList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IPV6PrefixListWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/IPV6PrefixList"}}]}},"/object/ipv6prefixlists/{objId}":{"get":{"tags":["IPV6PrefixList"],"operationId":"getIPV6PrefixList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IPV6PrefixListWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["IPV6PrefixList"],"operationId":"editIPV6PrefixList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IPV6PrefixListWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/IPV6PrefixList"}}]},"delete":{"tags":["IPV6PrefixList"],"operationId":"deleteIPV6PrefixList","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/policylists":{"get":{"tags":["PolicyList"],"operationId":"getPolicyListList","responses":{"200":{"description":"","schema":{"type":"object","title":"PolicyListList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/PolicyListWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["PolicyList"],"operationId":"addPolicyList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/PolicyListWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PolicyList"}}]}},"/object/policylists/{objId}":{"get":{"tags":["PolicyList"],"operationId":"getPolicyList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/PolicyListWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["PolicyList"],"operationId":"editPolicyList","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/PolicyListWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PolicyList"}}]},"delete":{"tags":["PolicyList"],"operationId":"deletePolicyList","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/devices/default/interfaces":{"get":{"tags":["Interface"],"operationId":"getPhysicalInterfaceList","responses":{"200":{"description":"","schema":{"type":"object","title":"PhysicalInterfaceList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/PhysicalInterfaceWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/devices/default/interfaces/{objId}":{"get":{"tags":["Interface"],"operationId":"getPhysicalInterface","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/PhysicalInterfaceWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["Interface"],"operationId":"editPhysicalInterface","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/PhysicalInterfaceWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PhysicalInterface"}}]}},"/object/applications":{"get":{"tags":["Application"],"operationId":"getApplicationList","responses":{"200":{"description":"","schema":{"type":"object","title":"ApplicationList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/ApplicationWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/object/countries":{"get":{"tags":["Country"],"operationId":"getCountryList","responses":{"200":{"description":"","schema":{"type":"object","title":"CountryList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/CountryWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/object/countries/{objId}":{"get":{"tags":["Country"],"operationId":"getCountry","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/CountryWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/continents":{"get":{"tags":["Continent"],"operationId":"getContinentList","responses":{"200":{"description":"","schema":{"type":"object","title":"ContinentList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/ContinentWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/object/continents/{objId}":{"get":{"tags":["Continent"],"operationId":"getContinent","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ContinentWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/applicationtags":{"get":{"tags":["Application"],"operationId":"getApplicationTagList","responses":{"200":{"description":"","schema":{"type":"object","title":"ApplicationTagList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/ApplicationTagWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/object/applicationcategories":{"get":{"tags":["Application"],"operationId":"getApplicationCategoryList","responses":{"200":{"description":"","schema":{"type":"object","title":"ApplicationCategoryList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/ApplicationCategoryWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/object/urlcategories":{"get":{"tags":["URLCategory"],"operationId":"getURLCategoryList","responses":{"200":{"description":"","schema":{"type":"object","title":"URLCategoryList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/URLCategoryWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/object/urlreputation":{"get":{"tags":["URLReputation"],"operationId":"getURLReputationList","responses":{"200":{"description":"","schema":{"type":"object","title":"URLReputationList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/URLReputationWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/object/geolocations":{"get":{"tags":["GeoLocation"],"operationId":"getGeoLocationList","responses":{"200":{"description":"","schema":{"type":"object","title":"GeoLocationList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/GeoLocationWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["GeoLocation"],"operationId":"addGeoLocation","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/GeoLocationWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/GeoLocation"}}]}},"/object/geolocations/{objId}":{"get":{"tags":["GeoLocation"],"operationId":"getGeoLocation","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/GeoLocationWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["GeoLocation"],"operationId":"editGeoLocation","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/GeoLocationWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/GeoLocation"}}]},"delete":{"tags":["GeoLocation"],"operationId":"deleteGeoLocation","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/urls":{"get":{"tags":["URLObject"],"operationId":"getURLObjectList","responses":{"200":{"description":"","schema":{"type":"object","title":"URLObjectList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/URLObjectWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["URLObject"],"operationId":"addURLObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/URLObjectWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/URLObject"}}]}},"/object/urls/{objId}":{"get":{"tags":["URLObject"],"operationId":"getURLObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/URLObjectWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["URLObject"],"operationId":"editURLObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/URLObjectWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/URLObject"}}]},"delete":{"tags":["URLObject"],"operationId":"deleteURLObject","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/urlgroups":{"get":{"tags":["URLObject"],"operationId":"getURLObjectGroupList","responses":{"200":{"description":"","schema":{"type":"object","title":"URLObjectGroupList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/URLObjectGroupWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["URLObject"],"operationId":"addURLObjectGroup","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/URLObjectGroupWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/URLObjectGroup"}}]}},"/object/urlgroups/{objId}":{"get":{"tags":["URLObject"],"operationId":"getURLObjectGroup","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/URLObjectGroupWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["URLObject"],"operationId":"editURLObjectGroup","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/URLObjectGroupWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/URLObjectGroup"}}]},"delete":{"tags":["URLObject"],"operationId":"deleteURLObjectGroup","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/operational/deploy":{"get":{"tags":["Deployment"],"operationId":"getDeploymentList","responses":{"200":{"description":"","schema":{"type":"object","title":"DeploymentStatusList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/DeploymentStatusWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["Deployment"],"operationId":"addDeployment","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/DeploymentStatusWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[]}},"/operational/deploy/{objId}":{"get":{"tags":["Deployment"],"operationId":"getDeployment","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/DeploymentStatusWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"delete":{"tags":["Deployment"],"operationId":"deleteDeployment","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/devices/default/action/ha/join":{"get":{"tags":["JoinHAStatus"],"operationId":"getJoinHAStatusList","responses":{"200":{"description":"","schema":{"type":"object","title":"JoinHAStatusList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/JoinHAStatusWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["JoinHAStatus"],"operationId":"addJoinHAStatus","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/JoinHAStatusWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[]}},"/devices/default/action/ha/break":{"get":{"tags":["BreakHAStatus"],"operationId":"getBreakHAStatusList","responses":{"200":{"description":"","schema":{"type":"object","title":"BreakHAStatusList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/BreakHAStatusWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["BreakHAStatus"],"operationId":"addBreakHAStatus","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/BreakHAStatusWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"clearIntfs","in":"query","required":false,"type":"boolean"}]}},"/devices/default/action/ha/join/{objId}":{"get":{"tags":["JoinHAStatus"],"operationId":"getJoinHAStatus","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/JoinHAStatusWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/devices/default/action/ha/break/{objId}":{"get":{"tags":["BreakHAStatus"],"operationId":"getBreakHAStatus","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/BreakHAStatusWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/devices/default/action/ha/resume":{"post":{"tags":["HAAction"],"operationId":"startHAResume","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/HAStatusWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[]}},"/devices/default/action/ha/suspend":{"post":{"tags":["HAAction"],"operationId":"startHASuspend","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/HAStatusWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[]}},"/devices/default/action/ha/failover":{"post":{"tags":["HAAction"],"operationId":"startHAFailover","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/HAStatusWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[]}},"/devices/default/action/ha/reset":{"post":{"tags":["HAAction"],"operationId":"addHAStatus","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/HAStatusWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[]}},"/operational/deploymentdata/{objId}":{"get":{"tags":["DeploymentData"],"operationId":"getDeploymentData","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/DeploymentDataWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/operational/trafficinterruptionreasons/{objId}":{"get":{"tags":["TrafficInterruptionReasons"],"operationId":"getTrafficInterruptionReasons","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/TrafficInterruptionReasonsWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/operational/pendingchanges/clipboard/{objId}":{"get":{"tags":["Clipboard"],"operationId":"getClipboard","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ClipboardWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/action/downloadconfig/{objId}":{"get":{"tags":["Download"],"operationId":"getdownloadconfig","responses":{"200":{"description":"","schema":{"type":"file"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}],"produces":["application/octet-stream"]}},"/action/exportconfig":{"get":{"tags":["ScheduleExportConfig"],"operationId":"getScheduleExportConfigList","responses":{"200":{"description":"","schema":{"type":"object","title":"ScheduleExportConfigList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/ScheduleExportConfigWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["ScheduleExportConfig"],"operationId":"addScheduleExportConfig","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ScheduleExportConfigWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ScheduleExportConfig"}}]}},"/jobs/exportconfigjob":{"get":{"tags":["ExportConfigJobHistory"],"operationId":"getExportConfigJobHistoryList","responses":{"200":{"description":"","schema":{"type":"object","title":"ExportConfigJobHistoryList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/ExportConfigJobHistoryWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/action/pendingchanges/download/{objId}":{"get":{"tags":["Download"],"operationId":"getdownload","responses":{"200":{"description":"","schema":{"type":"file"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}],"produces":["application/octet-stream"]}},"/operational/pendingchanges":{"get":{"tags":["BaseEntityDiff"],"operationId":"getBaseEntityDiffList","responses":{"200":{"description":"","schema":{"type":"object","title":"BaseEntityDiffList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/BaseEntityDiffWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/operational/auditevents":{"get":{"tags":["AuditEvent"],"operationId":"getAuditEventList","responses":{"200":{"description":"","schema":{"type":"object","title":"AuditEventList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/AuditEventWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/operational/auditevents/{objId}":{"get":{"tags":["AuditEvent"],"operationId":"getAuditEvent","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/AuditEventWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/operational/auditevents/{parentId}/changes":{"get":{"tags":["AuditEntityChange"],"operationId":"getAuditEntityChangeList","responses":{"200":{"description":"","schema":{"type":"object","title":"AuditEntityChangeList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/AuditEntityChangeWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"},{"name":"parentId","in":"path","required":true,"type":"string"}]}},"/operational/deploymenterrors/{objId}":{"get":{"tags":["CliDeploymentError"],"operationId":"getCliDeploymentError","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/CliDeploymentErrorWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/action/backup":{"get":{"tags":["BackupImmediate"],"operationId":"getBackupImmediateList","responses":{"200":{"description":"","schema":{"type":"object","title":"BackupImmediateList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/BackupImmediateWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["BackupImmediate"],"operationId":"addBackupImmediate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/BackupImmediateWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/BackupImmediate"}}]}},"/action/backup/{objId}":{"get":{"tags":["BackupImmediate"],"operationId":"getBackupImmediate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/BackupImmediateWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["BackupImmediate"],"operationId":"editBackupImmediate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/BackupImmediateWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/BackupImmediate"}}]},"delete":{"tags":["BackupImmediate"],"operationId":"deleteBackupImmediate","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/action/scheduledbackup":{"get":{"tags":["BackupScheduled"],"operationId":"getBackupScheduledList","responses":{"200":{"description":"","schema":{"type":"object","title":"BackupScheduledList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/BackupScheduledWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["BackupScheduled"],"operationId":"addBackupScheduled","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/BackupScheduledWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/BackupScheduled"}}]}},"/action/scheduledbackup/{objId}":{"get":{"tags":["BackupScheduled"],"operationId":"getBackupScheduled","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/BackupScheduledWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["BackupScheduled"],"operationId":"editBackupScheduled","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/BackupScheduledWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/BackupScheduled"}}]},"delete":{"tags":["BackupScheduled"],"operationId":"deleteBackupScheduled","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/action/restore":{"get":{"tags":["RestoreImmediate"],"operationId":"getRestoreImmediateList","responses":{"200":{"description":"","schema":{"type":"object","title":"RestoreImmediateList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/RestoreImmediateWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["RestoreImmediate"],"operationId":"addRestoreImmediate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/RestoreImmediateWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/RestoreImmediate"}}]}},"/action/restore/{objId}":{"get":{"tags":["RestoreImmediate"],"operationId":"getRestoreImmediate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/RestoreImmediateWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["RestoreImmediate"],"operationId":"editRestoreImmediate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/RestoreImmediateWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/RestoreImmediate"}}]},"delete":{"tags":["RestoreImmediate"],"operationId":"deleteRestoreImmediate","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/managedentity/archivedbackups":{"get":{"tags":["ArchivedBackup"],"operationId":"getArchivedBackupList","responses":{"200":{"description":"","schema":{"type":"object","title":"ArchivedBackupList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/ArchivedBackupWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/managedentity/archivedbackups/{objId}":{"get":{"tags":["ArchivedBackup"],"operationId":"getArchivedBackup","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ArchivedBackupWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"delete":{"tags":["ArchivedBackup"],"operationId":"deleteArchivedBackup","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/devices/default/bridgegroupinterfaces":{"get":{"tags":["Interface"],"operationId":"getBridgeGroupInterfaceList","responses":{"200":{"description":"","schema":{"type":"object","title":"BridgeGroupInterfaceList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/BridgeGroupInterfaceWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["Interface"],"operationId":"addBridgeGroupInterface","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/BridgeGroupInterfaceWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/BridgeGroupInterface"}}]}},"/devices/default/bridgegroupinterfaces/{objId}":{"get":{"tags":["Interface"],"operationId":"getBridgeGroupInterface","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/BridgeGroupInterfaceWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["Interface"],"operationId":"editBridgeGroupInterface","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/BridgeGroupInterfaceWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/BridgeGroupInterface"}}]},"delete":{"tags":["Interface"],"operationId":"deleteBridgeGroupInterface","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/action/updategeolocation":{"get":{"tags":["GeolocationUpdateImmediate"],"operationId":"getGeolocationUpdateImmediateList","responses":{"200":{"description":"","schema":{"type":"object","title":"GeolocationUpdateImmediateList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/GeolocationUpdateImmediateWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["GeolocationUpdateImmediate"],"operationId":"addGeolocationUpdateImmediate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/GeolocationUpdateImmediateWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/GeolocationUpdateImmediate"}}]}},"/action/updategeolocation/{objId}":{"get":{"tags":["GeolocationUpdateImmediate"],"operationId":"getGeolocationUpdateImmediate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/GeolocationUpdateImmediateWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["GeolocationUpdateImmediate"],"operationId":"editGeolocationUpdateImmediate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/GeolocationUpdateImmediateWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/GeolocationUpdateImmediate"}}]},"delete":{"tags":["GeolocationUpdateImmediate"],"operationId":"deleteGeolocationUpdateImmediate","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/managedentity/geolocationupdateschedules":{"get":{"tags":["GeolocationUpdateSchedule"],"operationId":"getGeolocationUpdateScheduleList","responses":{"200":{"description":"","schema":{"type":"object","title":"GeolocationUpdateScheduleList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/GeolocationUpdateScheduleWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["GeolocationUpdateSchedule"],"operationId":"addGeolocationUpdateSchedule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/GeolocationUpdateScheduleWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/GeolocationUpdateSchedule"}}]}},"/managedentity/geolocationupdateschedules/{objId}":{"get":{"tags":["GeolocationUpdateSchedule"],"operationId":"getGeolocationUpdateSchedule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/GeolocationUpdateScheduleWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["GeolocationUpdateSchedule"],"operationId":"editGeolocationUpdateSchedule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/GeolocationUpdateScheduleWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/GeolocationUpdateSchedule"}}]},"delete":{"tags":["GeolocationUpdateSchedule"],"operationId":"deleteGeolocationUpdateSchedule","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/action/updatesru":{"get":{"tags":["SRUUpdateImmediate"],"operationId":"getSRUUpdateImmediateList","responses":{"200":{"description":"","schema":{"type":"object","title":"SRUUpdateImmediateList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/SRUUpdateImmediateWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["SRUUpdateImmediate"],"operationId":"addSRUUpdateImmediate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SRUUpdateImmediateWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SRUUpdateImmediate"}}]}},"/action/updatesru/{objId}":{"get":{"tags":["SRUUpdateImmediate"],"operationId":"getSRUUpdateImmediate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SRUUpdateImmediateWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["SRUUpdateImmediate"],"operationId":"editSRUUpdateImmediate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SRUUpdateImmediateWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SRUUpdateImmediate"}}]},"delete":{"tags":["SRUUpdateImmediate"],"operationId":"deleteSRUUpdateImmediate","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/managedentity/sruupdateschedules":{"get":{"tags":["SRUUpdateSchedule"],"operationId":"getSRUUpdateScheduleList","responses":{"200":{"description":"","schema":{"type":"object","title":"SRUUpdateScheduleList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/SRUUpdateScheduleWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["SRUUpdateSchedule"],"operationId":"addSRUUpdateSchedule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SRUUpdateScheduleWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SRUUpdateSchedule"}}]}},"/managedentity/sruupdateschedules/{objId}":{"get":{"tags":["SRUUpdateSchedule"],"operationId":"getSRUUpdateSchedule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SRUUpdateScheduleWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["SRUUpdateSchedule"],"operationId":"editSRUUpdateSchedule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SRUUpdateScheduleWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SRUUpdateSchedule"}}]},"delete":{"tags":["SRUUpdateSchedule"],"operationId":"deleteSRUUpdateSchedule","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/action/updatevdb":{"get":{"tags":["VDBUpdateImmediate"],"operationId":"getVDBUpdateImmediateList","responses":{"200":{"description":"","schema":{"type":"object","title":"VDBUpdateImmediateList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/VDBUpdateImmediateWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["VDBUpdateImmediate"],"operationId":"addVDBUpdateImmediate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/VDBUpdateImmediateWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/VDBUpdateImmediate"}}]}},"/action/updatevdb/{objId}":{"get":{"tags":["VDBUpdateImmediate"],"operationId":"getVDBUpdateImmediate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/VDBUpdateImmediateWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["VDBUpdateImmediate"],"operationId":"editVDBUpdateImmediate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/VDBUpdateImmediateWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/VDBUpdateImmediate"}}]},"delete":{"tags":["VDBUpdateImmediate"],"operationId":"deleteVDBUpdateImmediate","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/managedentity/vdbupdateschedules":{"get":{"tags":["VDBUpdateSchedule"],"operationId":"getVDBUpdateScheduleList","responses":{"200":{"description":"","schema":{"type":"object","title":"VDBUpdateScheduleList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/VDBUpdateScheduleWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["VDBUpdateSchedule"],"operationId":"addVDBUpdateSchedule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/VDBUpdateScheduleWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/VDBUpdateSchedule"}}]}},"/managedentity/vdbupdateschedules/{objId}":{"get":{"tags":["VDBUpdateSchedule"],"operationId":"getVDBUpdateSchedule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/VDBUpdateScheduleWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["VDBUpdateSchedule"],"operationId":"editVDBUpdateSchedule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/VDBUpdateScheduleWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/VDBUpdateSchedule"}}]},"delete":{"tags":["VDBUpdateSchedule"],"operationId":"deleteVDBUpdateSchedule","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/action/securityintelligenceupdatefeeds":{"get":{"tags":["SecurityIntelligenceUpdateFeedsImmediate"],"operationId":"getSecurityIntelligenceUpdateFeedsImmediateList","responses":{"200":{"description":"","schema":{"type":"object","title":"SecurityIntelligenceUpdateFeedsImmediateList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/SecurityIntelligenceUpdateFeedsImmediateWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["SecurityIntelligenceUpdateFeedsImmediate"],"operationId":"addSecurityIntelligenceUpdateFeedsImmediate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SecurityIntelligenceUpdateFeedsImmediateWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SecurityIntelligenceUpdateFeedsImmediate"}}]}},"/action/securityintelligenceupdatefeeds/{objId}":{"get":{"tags":["SecurityIntelligenceUpdateFeedsImmediate"],"operationId":"getSecurityIntelligenceUpdateFeedsImmediate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SecurityIntelligenceUpdateFeedsImmediateWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["SecurityIntelligenceUpdateFeedsImmediate"],"operationId":"editSecurityIntelligenceUpdateFeedsImmediate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SecurityIntelligenceUpdateFeedsImmediateWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SecurityIntelligenceUpdateFeedsImmediate"}}]},"delete":{"tags":["SecurityIntelligenceUpdateFeedsImmediate"],"operationId":"deleteSecurityIntelligenceUpdateFeedsImmediate","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/managedentity/securityintelligencefeedsupdateschedules":{"get":{"tags":["SecurityIntelligenceUpdateFeedsSchedule"],"operationId":"getSecurityIntelligenceUpdateFeedsScheduleList","responses":{"200":{"description":"","schema":{"type":"object","title":"SecurityIntelligenceUpdateFeedsScheduleList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/SecurityIntelligenceUpdateFeedsScheduleWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["SecurityIntelligenceUpdateFeedsSchedule"],"operationId":"addSecurityIntelligenceUpdateFeedsSchedule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SecurityIntelligenceUpdateFeedsScheduleWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SecurityIntelligenceUpdateFeedsSchedule"}}]}},"/managedentity/securityintelligencefeedsupdateschedules/{objId}":{"get":{"tags":["SecurityIntelligenceUpdateFeedsSchedule"],"operationId":"getSecurityIntelligenceUpdateFeedsSchedule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SecurityIntelligenceUpdateFeedsScheduleWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["SecurityIntelligenceUpdateFeedsSchedule"],"operationId":"editSecurityIntelligenceUpdateFeedsSchedule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SecurityIntelligenceUpdateFeedsScheduleWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SecurityIntelligenceUpdateFeedsSchedule"}}]},"delete":{"tags":["SecurityIntelligenceUpdateFeedsSchedule"],"operationId":"deleteSecurityIntelligenceUpdateFeedsSchedule","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/jobs":{"get":{"tags":["Job"],"operationId":"getJobHistoryEntityList","responses":{"200":{"description":"","schema":{"type":"object","title":"JobHistoryEntityList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/JobHistoryEntityWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/jobs/backups":{"get":{"tags":["Job"],"operationId":"getJobHistoryBackupList","responses":{"200":{"description":"","schema":{"type":"object","title":"JobHistoryBackupList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/JobHistoryBackupWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/jobs/backups/{objId}":{"get":{"tags":["Job"],"operationId":"getJobHistoryBackup","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/JobHistoryBackupWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"delete":{"tags":["Job"],"operationId":"deleteJobHistoryBackup","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/jobs/geolocationupdates":{"get":{"tags":["Job"],"operationId":"getJobHistoryGeolocationList","responses":{"200":{"description":"","schema":{"type":"object","title":"JobHistoryGeolocationList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/JobHistoryGeolocationWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/jobs/geolocationupdates/{objId}":{"get":{"tags":["Job"],"operationId":"getJobHistoryGeolocation","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/JobHistoryGeolocationWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"delete":{"tags":["Job"],"operationId":"deleteJobHistoryGeolocation","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/jobs/sruupdates":{"get":{"tags":["Job"],"operationId":"getJobHistorySruUpdateList","responses":{"200":{"description":"","schema":{"type":"object","title":"JobHistorySruUpdateList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/JobHistorySruUpdateWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/jobs/sruupdates/{objId}":{"get":{"tags":["Job"],"operationId":"getJobHistorySruUpdate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/JobHistorySruUpdateWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"delete":{"tags":["Job"],"operationId":"deleteJobHistorySruUpdate","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/jobs/vdbupdates":{"get":{"tags":["Job"],"operationId":"getJobHistoryVDBUpdateList","responses":{"200":{"description":"","schema":{"type":"object","title":"JobHistoryVDBUpdateList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/JobHistoryVDBUpdateWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/jobs/vdbupdates/{objId}":{"get":{"tags":["Job"],"operationId":"getJobHistoryVDBUpdate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/JobHistoryVDBUpdateWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"delete":{"tags":["Job"],"operationId":"deleteJobHistoryVDBUpdate","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/jobs/deployments":{"get":{"tags":["Job"],"operationId":"getJobHistoryDeploymentList","responses":{"200":{"description":"","schema":{"type":"object","title":"JobHistoryDeploymentList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/JobHistoryDeploymentWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/jobs/deployments/{objId}":{"get":{"tags":["Job"],"operationId":"getJobHistoryDeployment","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/JobHistoryDeploymentWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"delete":{"tags":["Job"],"operationId":"deleteJobHistoryDeployment","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/jobs/licenseregistrations":{"get":{"tags":["Job"],"operationId":"getLicenseJobHistoryList","responses":{"200":{"description":"","schema":{"type":"object","title":"LicenseJobHistoryList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/LicenseJobHistoryWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/jobs/licenseregistrations/{objId}":{"get":{"tags":["Job"],"operationId":"getLicenseJobHistory","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/LicenseJobHistoryWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"delete":{"tags":["Job"],"operationId":"deleteLicenseJobHistory","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/jobs/cloudmanagementupdates":{"get":{"tags":["Job"],"operationId":"getJobHistoryCloudManagementList","responses":{"200":{"description":"","schema":{"type":"object","title":"JobHistoryCloudManagementList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/JobHistoryCloudManagementWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/jobs/cloudmanagementupdates/{objId}":{"get":{"tags":["Job"],"operationId":"getJobHistoryCloudManagement","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/JobHistoryCloudManagementWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"delete":{"tags":["Job"],"operationId":"deleteJobHistoryCloudManagement","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/jobs/haconfigsync":{"get":{"tags":["Job"],"operationId":"getJobHistoryHaConfigSyncList","responses":{"200":{"description":"","schema":{"type":"object","title":"JobHistoryHaConfigSyncList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/JobHistoryHaConfigSyncWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/jobs/haconfigsync/{objId}":{"get":{"tags":["Job"],"operationId":"getJobHistoryHaConfigSync","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/JobHistoryHaConfigSyncWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"delete":{"tags":["Job"],"operationId":"deleteJobHistoryHaConfigSync","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/jobs/{objId}":{"get":{"tags":["Job"],"operationId":"getJobHistoryEntity","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/JobHistoryEntityWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"delete":{"tags":["Job"],"operationId":"deleteJobHistoryEntity","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/applicationfilters":{"get":{"tags":["Application"],"operationId":"getApplicationFilterList","responses":{"200":{"description":"","schema":{"type":"object","title":"ApplicationFilterList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/ApplicationFilterWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["Application"],"operationId":"addApplicationFilter","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ApplicationFilterWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ApplicationFilter"}}]}},"/object/applicationfilters/{objId}":{"get":{"tags":["Application"],"operationId":"getApplicationFilter","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ApplicationFilterWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["Application"],"operationId":"editApplicationFilter","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ApplicationFilterWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ApplicationFilter"}}]},"delete":{"tags":["Application"],"operationId":"deleteApplicationFilter","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/policy/filepolicies":{"get":{"tags":["FilePolicy"],"operationId":"getFilePolicyList","responses":{"200":{"description":"","schema":{"type":"object","title":"FilePolicyList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/FilePolicyWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/policy/filepolicies/{objId}":{"get":{"tags":["FilePolicy"],"operationId":"getFilePolicy","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/FilePolicyWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/policy/intrusionpolicies":{"get":{"tags":["IntrusionPolicy"],"operationId":"getIntrusionPolicyList","responses":{"200":{"description":"","schema":{"type":"object","title":"IntrusionPolicyList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/IntrusionPolicyWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/policy/intrusionpolicies/{objId}":{"get":{"tags":["IntrusionPolicy"],"operationId":"getIntrusionPolicy","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IntrusionPolicyWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/policy/intrusionpolicies/{parentId}/intrusionrules":{"get":{"tags":["IntrusionPolicy"],"operationId":"getIntrusionRuleList","responses":{"200":{"description":"","schema":{"type":"object","title":"IntrusionRuleList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/IntrusionRuleWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"},{"name":"parentId","in":"path","required":true,"type":"string"}]}},"/policy/intrusionpolicies/{parentId}/intrusionrules/{objId}":{"get":{"tags":["IntrusionPolicy"],"operationId":"getIntrusionRule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IntrusionRuleWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"parentId","in":"path","required":true,"type":"string"},{"name":"objId","in":"path","required":true,"type":"string"}]}},"/policy/intrusionpolicies/{objId}/ruleupdates":{"put":{"tags":["IntrusionPolicy"],"operationId":"editIntrusionPolicyRuleUpdate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IntrusionPolicyRuleUpdateWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/IntrusionPolicyRuleUpdate"}}]}},"/object/intrusionsettings":{"get":{"tags":["IntrusionSettings"],"operationId":"getIntrusionSettingsList","responses":{"200":{"description":"","schema":{"type":"object","title":"IntrusionSettingsList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/IntrusionSettingsWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/object/intrusionsettings/{objId}":{"get":{"tags":["IntrusionSettings"],"operationId":"getIntrusionSettings","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IntrusionSettingsWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["IntrusionSettings"],"operationId":"editIntrusionSettings","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IntrusionSettingsWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/IntrusionSettings"}}]}},"/policy/accesspolicies/{parentId}/accessrules":{"get":{"tags":["AccessPolicy"],"operationId":"getAccessRuleList","responses":{"200":{"description":"","schema":{"type":"object","title":"AccessRuleList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/AccessRuleWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"},{"name":"parentId","in":"path","required":true,"type":"string"}]},"post":{"tags":["AccessPolicy"],"operationId":"addAccessRule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/AccessRuleWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"at","in":"query","required":false,"type":"integer"},{"name":"parentId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/AccessRule"}}]}},"/policy/accesspolicies/{parentId}/accessrules/{objId}":{"get":{"tags":["AccessPolicy"],"operationId":"getAccessRule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/AccessRuleWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"parentId","in":"path","required":true,"type":"string"},{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["AccessPolicy"],"operationId":"editAccessRule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/AccessRuleWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"at","in":"query","required":false,"type":"integer"},{"name":"parentId","in":"path","required":true,"type":"string"},{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/AccessRule"}}]},"delete":{"tags":["AccessPolicy"],"operationId":"deleteAccessRule","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"parentId","in":"path","required":true,"type":"string"},{"name":"objId","in":"path","required":true,"type":"string"}]}},"/policy/accesspolicies":{"get":{"tags":["AccessPolicy"],"operationId":"getAccessPolicyList","responses":{"200":{"description":"","schema":{"type":"object","title":"AccessPolicyList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/AccessPolicyWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/policy/accesspolicies/{objId}":{"get":{"tags":["AccessPolicy"],"operationId":"getAccessPolicy","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/AccessPolicyWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["AccessPolicy"],"operationId":"editAccessPolicy","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/AccessPolicyWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/AccessPolicy"}}]}},"/policy/manualnatpolicies/{parentId}/manualnatrules":{"get":{"tags":["NAT"],"operationId":"getManualNatRuleList","responses":{"200":{"description":"","schema":{"type":"object","title":"ManualNatRuleList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/ManualNatRuleWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"},{"name":"parentId","in":"path","required":true,"type":"string"}]},"post":{"tags":["NAT"],"operationId":"addManualNatRule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ManualNatRuleWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"at","in":"query","required":false,"type":"integer"},{"name":"parentId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ManualNatRule"}}]}},"/policy/manualnatpolicies/{parentId}/manualnatrules/{objId}":{"get":{"tags":["NAT"],"operationId":"getManualNatRule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ManualNatRuleWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"parentId","in":"path","required":true,"type":"string"},{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["NAT"],"operationId":"editManualNatRule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ManualNatRuleWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"at","in":"query","required":false,"type":"integer"},{"name":"parentId","in":"path","required":true,"type":"string"},{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ManualNatRule"}}]},"delete":{"tags":["NAT"],"operationId":"deleteManualNatRule","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"parentId","in":"path","required":true,"type":"string"},{"name":"objId","in":"path","required":true,"type":"string"}]}},"/policy/manualnatpolicies":{"get":{"tags":["NAT"],"operationId":"getManualNatRuleContainerList","responses":{"200":{"description":"","schema":{"type":"object","title":"ManualNatRuleContainerList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/ManualNatRuleContainerWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/policy/manualnatpolicies/{objId}":{"get":{"tags":["NAT"],"operationId":"getManualNatRuleContainer","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ManualNatRuleContainerWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/policy/objectnatpolicies/{parentId}/objectnatrules":{"get":{"tags":["NAT"],"operationId":"getObjectNatRuleList","responses":{"200":{"description":"","schema":{"type":"object","title":"ObjectNatRuleList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/ObjectNatRuleWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"},{"name":"parentId","in":"path","required":true,"type":"string"}]},"post":{"tags":["NAT"],"operationId":"addObjectNatRule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ObjectNatRuleWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"at","in":"query","required":false,"type":"integer"},{"name":"parentId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ObjectNatRule"}}]}},"/policy/objectnatpolicies/{parentId}/objectnatrules/{objId}":{"get":{"tags":["NAT"],"operationId":"getObjectNatRule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ObjectNatRuleWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"parentId","in":"path","required":true,"type":"string"},{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["NAT"],"operationId":"editObjectNatRule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ObjectNatRuleWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"at","in":"query","required":false,"type":"integer"},{"name":"parentId","in":"path","required":true,"type":"string"},{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ObjectNatRule"}}]},"delete":{"tags":["NAT"],"operationId":"deleteObjectNatRule","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"parentId","in":"path","required":true,"type":"string"},{"name":"objId","in":"path","required":true,"type":"string"}]}},"/policy/objectnatpolicies":{"get":{"tags":["NAT"],"operationId":"getObjectNatRuleContainerList","responses":{"200":{"description":"","schema":{"type":"object","title":"ObjectNatRuleContainerList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/ObjectNatRuleContainerWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/policy/objectnatpolicies/{objId}":{"get":{"tags":["NAT"],"operationId":"getObjectNatRuleContainer","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ObjectNatRuleContainerWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/devices/default/interfaces/{parentId}/subinterfaces":{"get":{"tags":["Interface"],"operationId":"getSubInterfaceList","responses":{"200":{"description":"","schema":{"type":"object","title":"SubInterfaceList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/SubInterfaceWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"},{"name":"parentId","in":"path","required":true,"type":"string"}]},"post":{"tags":["Interface"],"operationId":"addSubInterface","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SubInterfaceWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"at","in":"query","required":false,"type":"integer"},{"name":"parentId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SubInterface"}}]}},"/devices/default/interfaces/{parentId}/subinterfaces/{objId}":{"get":{"tags":["Interface"],"operationId":"getSubInterface","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SubInterfaceWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"parentId","in":"path","required":true,"type":"string"},{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["Interface"],"operationId":"editSubInterface","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SubInterfaceWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"at","in":"query","required":false,"type":"integer"},{"name":"parentId","in":"path","required":true,"type":"string"},{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SubInterface"}}]},"delete":{"tags":["Interface"],"operationId":"deleteSubInterface","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"parentId","in":"path","required":true,"type":"string"},{"name":"objId","in":"path","required":true,"type":"string"}]}},"/action/uploaddiskfile":{"post":{"tags":["Upload"],"operationId":"postuploaddiskfile","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/FileUploadStatusWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"formData","name":"fileToUpload","type":"file"}],"consumes":["multipart/form-data"]}},"/action/downloaddiskfile/{objId}":{"get":{"tags":["Download"],"operationId":"getdownloaddiskfile","responses":{"200":{"description":"","schema":{"type":"file"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}],"produces":["application/octet-stream"]}},"/object/anyconnectclientprofiles":{"get":{"tags":["AnyConnectClientProfile"],"operationId":"getAnyConnectClientProfileList","responses":{"200":{"description":"","schema":{"type":"object","title":"AnyConnectClientProfileList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/AnyConnectClientProfileWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["AnyConnectClientProfile"],"operationId":"addAnyConnectClientProfile","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/AnyConnectClientProfileWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/AnyConnectClientProfile"}}]}},"/object/anyconnectclientprofiles/{objId}":{"get":{"tags":["AnyConnectClientProfile"],"operationId":"getAnyConnectClientProfile","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/AnyConnectClientProfileWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["AnyConnectClientProfile"],"operationId":"editAnyConnectClientProfile","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/AnyConnectClientProfileWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/AnyConnectClientProfile"}}]},"delete":{"tags":["AnyConnectClientProfile"],"operationId":"deleteAnyConnectClientProfile","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/devices/default/anyconnectpackagefiles":{"get":{"tags":["AnyConnectVpnConnection"],"operationId":"getAnyConnectPackageFileList","responses":{"200":{"description":"","schema":{"type":"object","title":"AnyConnectPackageFileList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/AnyConnectPackageFileWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["AnyConnectVpnConnection"],"operationId":"addAnyConnectPackageFile","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/AnyConnectPackageFileWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/AnyConnectPackageFile"}}]}},"/devices/default/anyconnectpackagefiles/{objId}":{"get":{"tags":["AnyConnectVpnConnection"],"operationId":"getAnyConnectPackageFile","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/AnyConnectPackageFileWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["AnyConnectVpnConnection"],"operationId":"editAnyConnectPackageFile","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/AnyConnectPackageFileWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/AnyConnectPackageFile"}}]},"delete":{"tags":["AnyConnectVpnConnection"],"operationId":"deleteAnyConnectPackageFile","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/devices/default/anyconnectpackages":{"get":{"tags":["AnyConnectVpnConnection"],"operationId":"getAnyConnectPackagesList","responses":{"200":{"description":"","schema":{"type":"object","title":"AnyConnectPackagesList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/AnyConnectPackagesWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["AnyConnectVpnConnection"],"operationId":"addAnyConnectPackages","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/AnyConnectPackagesWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/AnyConnectPackages"}}]}},"/devices/default/anyconnectpackages/{objId}":{"get":{"tags":["AnyConnectVpnConnection"],"operationId":"getAnyConnectPackages","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/AnyConnectPackagesWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["AnyConnectVpnConnection"],"operationId":"editAnyConnectPackages","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/AnyConnectPackagesWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/AnyConnectPackages"}}]},"delete":{"tags":["AnyConnectVpnConnection"],"operationId":"deleteAnyConnectPackages","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/devices/default/anyconnectprofiles":{"get":{"tags":["AnyConnectVpnConnection"],"operationId":"getAnyConnectProfileList","responses":{"200":{"description":"","schema":{"type":"object","title":"AnyConnectProfileList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/AnyConnectProfileWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/devices/default/anyconnectprofiles/{objId}":{"get":{"tags":["AnyConnectVpnConnection"],"operationId":"getAnyConnectProfile","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/AnyConnectProfileWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"delete":{"tags":["AnyConnectVpnConnection"],"operationId":"deleteAnyConnectProfile","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/devices/default/anyconnectgrouppolicies":{"get":{"tags":["AnyConnectVpnConnection"],"operationId":"getAnyConnectGroupPolicyList","responses":{"200":{"description":"","schema":{"type":"object","title":"AnyConnectGroupPolicyList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/AnyConnectGroupPolicyWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/devices/default/anyconnectgrouppolicies/{objId}":{"get":{"tags":["AnyConnectVpnConnection"],"operationId":"getAnyConnectGroupPolicy","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/AnyConnectGroupPolicyWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"delete":{"tags":["AnyConnectVpnConnection"],"operationId":"deleteAnyConnectGroupPolicy","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/devices/default/anyconnectvpnconnections":{"get":{"tags":["AnyConnectVpnConnection"],"operationId":"getAnyConnectVpnConnectionList","responses":{"200":{"description":"","schema":{"type":"object","title":"AnyConnectVpnConnectionList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/AnyConnectVpnConnectionWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["AnyConnectVpnConnection"],"operationId":"addAnyConnectVpnConnection","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/AnyConnectVpnConnectionWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/AnyConnectVpnConnectionUncompressedModel"}}]}},"/devices/default/anyconnectvpnconnections/{objId}":{"get":{"tags":["AnyConnectVpnConnection"],"operationId":"getAnyConnectVpnConnection","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/AnyConnectVpnConnectionWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["AnyConnectVpnConnection"],"operationId":"editAnyConnectVpnConnection","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/AnyConnectVpnConnectionWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/AnyConnectVpnConnectionUncompressedModel"}}]},"delete":{"tags":["AnyConnectVpnConnection"],"operationId":"deleteAnyConnectVpnConnection","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/ikev1policies":{"get":{"tags":["IkevOnePolicy"],"operationId":"getIkevOnePolicyList","responses":{"200":{"description":"","schema":{"type":"object","title":"IkevOnePolicyList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/IkevOnePolicyWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["IkevOnePolicy"],"operationId":"addIkevOnePolicy","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IkevOnePolicyWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/IkevOnePolicy"}}]}},"/object/ikev1policies/{objId}":{"get":{"tags":["IkevOnePolicy"],"operationId":"getIkevOnePolicy","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IkevOnePolicyWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["IkevOnePolicy"],"operationId":"editIkevOnePolicy","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IkevOnePolicyWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/IkevOnePolicy"}}]},"delete":{"tags":["IkevOnePolicy"],"operationId":"deleteIkevOnePolicy","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/ikev1proposals":{"get":{"tags":["IkevOneProposal"],"operationId":"getIkevOneProposalList","responses":{"200":{"description":"","schema":{"type":"object","title":"IkevOneProposalList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/IkevOneProposalWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["IkevOneProposal"],"operationId":"addIkevOneProposal","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IkevOneProposalWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/IkevOneProposal"}}]}},"/object/ikev1proposals/{objId}":{"get":{"tags":["IkevOneProposal"],"operationId":"getIkevOneProposal","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IkevOneProposalWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["IkevOneProposal"],"operationId":"editIkevOneProposal","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IkevOneProposalWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/IkevOneProposal"}}]},"delete":{"tags":["IkevOneProposal"],"operationId":"deleteIkevOneProposal","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/ikev2policies":{"get":{"tags":["IkevTwoPolicy"],"operationId":"getIkevTwoPolicyList","responses":{"200":{"description":"","schema":{"type":"object","title":"IkevTwoPolicyList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/IkevTwoPolicyWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["IkevTwoPolicy"],"operationId":"addIkevTwoPolicy","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IkevTwoPolicyWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/IkevTwoPolicy"}}]}},"/object/ikev2policies/{objId}":{"get":{"tags":["IkevTwoPolicy"],"operationId":"getIkevTwoPolicy","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IkevTwoPolicyWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["IkevTwoPolicy"],"operationId":"editIkevTwoPolicy","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IkevTwoPolicyWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/IkevTwoPolicy"}}]},"delete":{"tags":["IkevTwoPolicy"],"operationId":"deleteIkevTwoPolicy","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/ikev2proposals":{"get":{"tags":["IkevTwoProposal"],"operationId":"getIkevTwoProposalList","responses":{"200":{"description":"","schema":{"type":"object","title":"IkevTwoProposalList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/IkevTwoProposalWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["IkevTwoProposal"],"operationId":"addIkevTwoProposal","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IkevTwoProposalWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/IkevTwoProposal"}}]}},"/object/ikev2proposals/{objId}":{"get":{"tags":["IkevTwoProposal"],"operationId":"getIkevTwoProposal","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IkevTwoProposalWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["IkevTwoProposal"],"operationId":"editIkevTwoProposal","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IkevTwoProposalWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/IkevTwoProposal"}}]},"delete":{"tags":["IkevTwoProposal"],"operationId":"deleteIkevTwoProposal","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/devices/default/s2sconnectionprofiles":{"get":{"tags":["SToSConnectionProfile"],"operationId":"getSToSConnectionProfileList","responses":{"200":{"description":"","schema":{"type":"object","title":"SToSConnectionProfileList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/SToSConnectionProfileWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["SToSConnectionProfile"],"operationId":"addSToSConnectionProfile","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SToSConnectionProfileWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SToSConnectionProfile"}}]}},"/devices/default/s2sconnectionprofiles/{objId}":{"get":{"tags":["SToSConnectionProfile"],"operationId":"getSToSConnectionProfile","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SToSConnectionProfileWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["SToSConnectionProfile"],"operationId":"editSToSConnectionProfile","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SToSConnectionProfileWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SToSConnectionProfile"}}]},"delete":{"tags":["SToSConnectionProfile"],"operationId":"deleteSToSConnectionProfile","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/users":{"get":{"tags":["User"],"operationId":"getUserList","responses":{"200":{"description":"","schema":{"type":"object","title":"UserList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/UserWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["User"],"operationId":"addUser","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/UserWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/User"}}]}},"/object/users/{objId}":{"get":{"tags":["User"],"operationId":"getUser","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/UserWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["User"],"operationId":"editUser","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/UserWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/User"}}]},"delete":{"tags":["User"],"operationId":"deleteUser","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/devicesettings/default/ntp":{"get":{"tags":["NTP"],"operationId":"getNTPList","responses":{"200":{"description":"","schema":{"type":"object","title":"NTPList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/NTPWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/devicesettings/default/ntp/{objId}":{"get":{"tags":["NTP"],"operationId":"getNTP","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/NTPWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["NTP"],"operationId":"editNTP","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/NTPWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/NTP"}}]}},"/devicesettings/default/logsettings":{"get":{"tags":["DeviceLogSettings"],"operationId":"getDeviceLogSettingsList","responses":{"200":{"description":"","schema":{"type":"object","title":"DeviceLogSettingsList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/DeviceLogSettingsWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/devicesettings/default/logsettings/{objId}":{"get":{"tags":["DeviceLogSettings"],"operationId":"getDeviceLogSettings","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/DeviceLogSettingsWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["DeviceLogSettings"],"operationId":"editDeviceLogSettings","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/DeviceLogSettingsWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/DeviceLogSettings"}}]}},"/object/syslogalerts":{"get":{"tags":["SyslogServer"],"operationId":"getSyslogServerList","responses":{"200":{"description":"","schema":{"type":"object","title":"SyslogServerList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/SyslogServerWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["SyslogServer"],"operationId":"addSyslogServer","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SyslogServerWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SyslogServer"}}]}},"/object/syslogalerts/{objId}":{"get":{"tags":["SyslogServer"],"operationId":"getSyslogServer","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SyslogServerWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["SyslogServer"],"operationId":"editSyslogServer","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SyslogServerWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SyslogServer"}}]},"delete":{"tags":["SyslogServer"],"operationId":"deleteSyslogServer","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/operational/timezones/{objId}":{"get":{"tags":["TimeZones"],"operationId":"getTimeZones","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/TimeZonesWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/operational/diskusage/{objId}":{"get":{"tags":["DiskUsage"],"operationId":"getDiskUsage","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/DiskUsageWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/monitor/trendingreports/{objId}":{"get":{"tags":["TrendingReport"],"operationId":"getTrendingReport","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/TrendingReportWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"time_duration","in":"query","required":false,"type":"integer"},{"name":"objId","in":"path","required":true,"type":"string"}]}},"/devices/default/mgmtdnssettings":{"get":{"tags":["DNS"],"operationId":"getDeviceDNSSettingsList","responses":{"200":{"description":"","schema":{"type":"object","title":"DeviceDNSSettingsList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/DeviceDNSSettingsWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/devices/default/mgmtdnssettings/{objId}":{"get":{"tags":["DNS"],"operationId":"getDeviceDNSSettings","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/DeviceDNSSettingsWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["DNS"],"operationId":"editDeviceDNSSettings","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/DeviceDNSSettingsWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/DeviceDNSSettings"}}]}},"/devices/default/datadnssettings":{"get":{"tags":["DNS"],"operationId":"getDataDNSSettingsList","responses":{"200":{"description":"","schema":{"type":"object","title":"DataDNSSettingsList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/DataDNSSettingsWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/devices/default/datadnssettings/{objId}":{"get":{"tags":["DNS"],"operationId":"getDataDNSSettings","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/DataDNSSettingsWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["DNS"],"operationId":"editDataDNSSettings","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/DataDNSSettingsWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/DataDNSSettings"}}]}},"/object/dnsservergroups":{"get":{"tags":["DNS"],"operationId":"getDNSServerGroupList","responses":{"200":{"description":"","schema":{"type":"object","title":"DNSServerGroupList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/DNSServerGroupWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["DNS"],"operationId":"addDNSServerGroup","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/DNSServerGroupWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/DNSServerGroup"}}]}},"/object/dnsservergroups/{objId}":{"get":{"tags":["DNS"],"operationId":"getDNSServerGroup","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/DNSServerGroupWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["DNS"],"operationId":"editDNSServerGroup","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/DNSServerGroupWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/DNSServerGroup"}}]},"delete":{"tags":["DNS"],"operationId":"deleteDNSServerGroup","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/policy/identitypolicies/{parentId}/identityrules":{"get":{"tags":["IdentityPolicy"],"operationId":"getIdentityRuleList","responses":{"200":{"description":"","schema":{"type":"object","title":"IdentityRuleList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/IdentityRuleWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"},{"name":"parentId","in":"path","required":true,"type":"string"}]},"post":{"tags":["IdentityPolicy"],"operationId":"addIdentityRule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IdentityRuleWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"at","in":"query","required":false,"type":"integer"},{"name":"parentId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/IdentityRule"}}]}},"/policy/identitypolicies/{parentId}/identityrules/{objId}":{"get":{"tags":["IdentityPolicy"],"operationId":"getIdentityRule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IdentityRuleWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"parentId","in":"path","required":true,"type":"string"},{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["IdentityPolicy"],"operationId":"editIdentityRule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IdentityRuleWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"at","in":"query","required":false,"type":"integer"},{"name":"parentId","in":"path","required":true,"type":"string"},{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/IdentityRule"}}]},"delete":{"tags":["IdentityPolicy"],"operationId":"deleteIdentityRule","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"parentId","in":"path","required":true,"type":"string"},{"name":"objId","in":"path","required":true,"type":"string"}]}},"/policy/identitypolicies":{"get":{"tags":["IdentityPolicy"],"operationId":"getIdentityPolicyList","responses":{"200":{"description":"","schema":{"type":"object","title":"IdentityPolicyList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/IdentityPolicyWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/policy/identitypolicies/{objId}":{"get":{"tags":["IdentityPolicy"],"operationId":"getIdentityPolicy","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IdentityPolicyWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["IdentityPolicy"],"operationId":"editIdentityPolicy","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/IdentityPolicyWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/IdentityPolicy"}}]}},"/object/internalcertificates":{"get":{"tags":["Certificate"],"operationId":"getInternalCertificateList","responses":{"200":{"description":"","schema":{"type":"object","title":"InternalCertificateList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/InternalCertificateWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["Certificate"],"operationId":"addInternalCertificate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/InternalCertificateWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/InternalCertificate"}}]}},"/object/internalcertificates/{objId}":{"get":{"tags":["Certificate"],"operationId":"getInternalCertificate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/InternalCertificateWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["Certificate"],"operationId":"editInternalCertificate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/InternalCertificateWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/InternalCertificate"}}]},"delete":{"tags":["Certificate"],"operationId":"deleteInternalCertificate","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/internalcacertificates":{"get":{"tags":["Certificate"],"operationId":"getInternalCACertificateList","responses":{"200":{"description":"","schema":{"type":"object","title":"InternalCACertificateList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/InternalCACertificateWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["Certificate"],"operationId":"addInternalCACertificate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/InternalCACertificateWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/InternalCACertificate"}}]}},"/object/internalcacertificates/{objId}":{"get":{"tags":["Certificate"],"operationId":"getInternalCACertificate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/InternalCACertificateWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["Certificate"],"operationId":"editInternalCACertificate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/InternalCACertificateWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/InternalCACertificate"}}]},"delete":{"tags":["Certificate"],"operationId":"deleteInternalCACertificate","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/action/downloadinternalcacertificate/{objId}":{"get":{"tags":["Download"],"operationId":"getdownloadinternalcacertificate","responses":{"200":{"description":"","schema":{"type":"file"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}],"produces":["application/octet-stream"]}},"/object/externalcertificates":{"get":{"tags":["Certificate"],"operationId":"getExternalCertificateList","responses":{"200":{"description":"","schema":{"type":"object","title":"ExternalCertificateList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/ExternalCertificateWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["Certificate"],"operationId":"addExternalCertificate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ExternalCertificateWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ExternalCertificate"}}]}},"/object/externalcertificates/{objId}":{"get":{"tags":["Certificate"],"operationId":"getExternalCertificate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ExternalCertificateWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["Certificate"],"operationId":"editExternalCertificate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ExternalCertificateWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ExternalCertificate"}}]},"delete":{"tags":["Certificate"],"operationId":"deleteExternalCertificate","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/externalcacertificates":{"get":{"tags":["Certificate"],"operationId":"getExternalCACertificateList","responses":{"200":{"description":"","schema":{"type":"object","title":"ExternalCACertificateList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/ExternalCACertificateWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["Certificate"],"operationId":"addExternalCACertificate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ExternalCACertificateWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ExternalCACertificate"}}]}},"/object/externalcacertificates/{objId}":{"get":{"tags":["Certificate"],"operationId":"getExternalCACertificate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ExternalCACertificateWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["Certificate"],"operationId":"editExternalCACertificate","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ExternalCACertificateWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ExternalCACertificate"}}]},"delete":{"tags":["Certificate"],"operationId":"deleteExternalCACertificate","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/realms":{"get":{"tags":["ActiveDirectoryRealm"],"operationId":"getActiveDirectoryRealmList","responses":{"200":{"description":"","schema":{"type":"object","title":"ActiveDirectoryRealmList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/ActiveDirectoryRealmWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["ActiveDirectoryRealm"],"operationId":"addActiveDirectoryRealm","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ActiveDirectoryRealmWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ActiveDirectoryRealm"}}]}},"/object/realms/{objId}":{"get":{"tags":["ActiveDirectoryRealm"],"operationId":"getActiveDirectoryRealm","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ActiveDirectoryRealmWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["ActiveDirectoryRealm"],"operationId":"editActiveDirectoryRealm","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ActiveDirectoryRealmWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ActiveDirectoryRealm"}}]}},"/object/specialrealms":{"get":{"tags":["SpecialRealm"],"operationId":"getSpecialRealmList","responses":{"200":{"description":"","schema":{"type":"object","title":"SpecialRealmList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/SpecialRealmWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/object/specialrealms/{objId}":{"get":{"tags":["SpecialRealm"],"operationId":"getSpecialRealm","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SpecialRealmWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/realms/{parentId}/trafficusers":{"get":{"tags":["TrafficUser"],"operationId":"getRealmTrafficUserList","responses":{"200":{"description":"","schema":{"type":"object","title":"RealmTrafficUserList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/TrafficUserWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"},{"name":"parentId","in":"path","required":true,"type":"string"}]}},"/object/realms/{parentId}/trafficusers/{objId}":{"get":{"tags":["TrafficUser"],"operationId":"getRealmTrafficUser","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/TrafficUserWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"parentId","in":"path","required":true,"type":"string"},{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/specialrealms/{parentId}/trafficusers":{"get":{"tags":["TrafficUser"],"operationId":"getSpecialRealmTrafficUserList","responses":{"200":{"description":"","schema":{"type":"object","title":"SpecialRealmTrafficUserList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/TrafficUserWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"},{"name":"parentId","in":"path","required":true,"type":"string"}]}},"/object/specialrealms/{parentId}/trafficusers/{objId}":{"get":{"tags":["TrafficUser"],"operationId":"getSpecialRealmTrafficUser","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/TrafficUserWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"parentId","in":"path","required":true,"type":"string"},{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/realms/{parentId}/trafficusergroups":{"get":{"tags":["TrafficUserGroup"],"operationId":"getTrafficUserGroupList","responses":{"200":{"description":"","schema":{"type":"object","title":"TrafficUserGroupList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/TrafficUserGroupWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"},{"name":"parentId","in":"path","required":true,"type":"string"}]}},"/object/realms/{parentId}/trafficusergroups/{objId}":{"get":{"tags":["TrafficUserGroup"],"operationId":"getTrafficUserGroup","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/TrafficUserGroupWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"parentId","in":"path","required":true,"type":"string"},{"name":"objId","in":"path","required":true,"type":"string"}]}},"/devices/default/routing/{parentId}/staticrouteentries":{"get":{"tags":["StaticRouteEntry"],"operationId":"getStaticRouteEntryList","responses":{"200":{"description":"","schema":{"type":"object","title":"StaticRouteEntryList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/StaticRouteEntryWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"},{"name":"parentId","in":"path","required":true,"type":"string"}]},"post":{"tags":["StaticRouteEntry"],"operationId":"addStaticRouteEntry","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/StaticRouteEntryWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"at","in":"query","required":false,"type":"integer"},{"name":"parentId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/StaticRouteEntry"}}]}},"/devices/default/routing/{parentId}/staticrouteentries/{objId}":{"get":{"tags":["StaticRouteEntry"],"operationId":"getStaticRouteEntry","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/StaticRouteEntryWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"parentId","in":"path","required":true,"type":"string"},{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["StaticRouteEntry"],"operationId":"editStaticRouteEntry","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/StaticRouteEntryWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"at","in":"query","required":false,"type":"integer"},{"name":"parentId","in":"path","required":true,"type":"string"},{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/StaticRouteEntry"}}]},"delete":{"tags":["StaticRouteEntry"],"operationId":"deleteStaticRouteEntry","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"parentId","in":"path","required":true,"type":"string"},{"name":"objId","in":"path","required":true,"type":"string"}]}},"/devices/default/routing":{"get":{"tags":["StaticRouteEntryContainer"],"operationId":"getStaticRouteEntryContainerList","responses":{"200":{"description":"","schema":{"type":"object","title":"StaticRouteEntryContainerList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/StaticRouteEntryContainerWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/devices/default/routing/{objId}":{"get":{"tags":["StaticRouteEntryContainer"],"operationId":"getStaticRouteEntryContainer","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/StaticRouteEntryContainerWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/action/connecttest/{objId}":{"get":{"tags":["ConnectTest"],"operationId":"getConnectTest","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ConnectTestWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/action/downloadtroubleshoot/{objId}":{"get":{"tags":["Download"],"operationId":"getdownloadtroubleshoot","responses":{"200":{"description":"","schema":{"type":"file"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}],"produces":["application/octet-stream"]}},"/action/troubleshoot":{"get":{"tags":["ScheduleTroubleshoot"],"operationId":"getScheduleTroubleshootList","responses":{"200":{"description":"","schema":{"type":"object","title":"ScheduleTroubleshootList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/ScheduleTroubleshootWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["ScheduleTroubleshoot"],"operationId":"addScheduleTroubleshoot","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ScheduleTroubleshootWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ScheduleTroubleshoot"}}]}},"/managedentity/jobs/troubleshootjob":{"get":{"tags":["TroubleshootJobHistory"],"operationId":"getTroubleshootJobHistoryList","responses":{"200":{"description":"","schema":{"type":"object","title":"TroubleshootJobHistoryList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/TroubleshootJobHistoryWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/action/troubleshoot/{objId}":{"get":{"tags":["ScheduleTroubleshoot"],"operationId":"getScheduleTroubleshoot","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ScheduleTroubleshootWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["ScheduleTroubleshoot"],"operationId":"editScheduleTroubleshoot","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ScheduleTroubleshootWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ScheduleTroubleshoot"}}]},"delete":{"tags":["ScheduleTroubleshoot"],"operationId":"deleteScheduleTroubleshoot","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/managedentity/upgradefiles":{"get":{"tags":["UpgradeFile"],"operationId":"getUpgradeFileList","responses":{"200":{"description":"","schema":{"type":"object","title":"UpgradeFileList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/UpgradeFileWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/managedentity/upgradefiles/{objId}":{"get":{"tags":["UpgradeFile"],"operationId":"getUpgradeFile","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/UpgradeFileWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"delete":{"tags":["UpgradeFile"],"operationId":"deleteUpgradeFile","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/action/upgrade":{"post":{"tags":["Upgrade"],"operationId":"startUpgrade","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}}}},"/devicesettings/default/dhcpservercontainers":{"get":{"tags":["DHCPServerContainer"],"operationId":"getDHCPServerContainerList","responses":{"200":{"description":"","schema":{"type":"object","title":"DHCPServerContainerList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/DHCPServerContainerWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/devicesettings/default/dhcpservercontainers/{objId}":{"get":{"tags":["DHCPServerContainer"],"operationId":"getDHCPServerContainer","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/DHCPServerContainerWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["DHCPServerContainer"],"operationId":"editDHCPServerContainer","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/DHCPServerContainerWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/DHCPServerContainer"}}]}},"/devicesettings/default/cloudconfig":{"get":{"tags":["CloudConfig"],"operationId":"getCloudConfigList","responses":{"200":{"description":"","schema":{"type":"object","title":"CloudConfigList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/CloudConfigWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/devicesettings/default/cloudconfig/{objId}":{"get":{"tags":["CloudConfig"],"operationId":"getCloudConfig","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/CloudConfigWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["CloudConfig"],"operationId":"editCloudConfig","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/CloudConfigWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/CloudConfig"}}]}},"/action/uploadcert":{"post":{"tags":["CertFileUploadStatus"],"operationId":"postuploadcert","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/CertFileUploadStatusWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"formData","name":"fileToUpload","type":"file"}],"consumes":["multipart/form-data"]}},"/license/smartagentconnections":{"get":{"tags":["SmartLicensing"],"operationId":"getSmartAgentConnectionList","responses":{"200":{"description":"","schema":{"type":"object","title":"SmartAgentConnectionList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/SmartAgentConnectionWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["SmartLicensing"],"operationId":"addSmartAgentConnection","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SmartAgentConnectionWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SmartAgentConnection"}}]}},"/license/smartagentconnections/{objId}":{"get":{"tags":["SmartLicensing"],"operationId":"getSmartAgentConnection","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SmartAgentConnectionWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["SmartLicensing"],"operationId":"editSmartAgentConnection","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SmartAgentConnectionWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SmartAgentConnection"}}]},"delete":{"tags":["SmartLicensing"],"operationId":"deleteSmartAgentConnection","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/license/smartagentstatuses":{"get":{"tags":["SmartLicensing"],"operationId":"getSmartAgentStatusList","responses":{"200":{"description":"","schema":{"type":"object","title":"SmartAgentStatusList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/SmartAgentStatusWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/license/smartagentstatuses/{objId}":{"get":{"tags":["SmartLicensing"],"operationId":"getSmartAgentStatus","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SmartAgentStatusWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/license/smartlicenses":{"get":{"tags":["SmartLicensing"],"operationId":"getLicenseList","responses":{"200":{"description":"","schema":{"type":"object","title":"LicenseList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/LicenseWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["SmartLicensing"],"operationId":"addLicense","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/LicenseWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/License"}}]}},"/license/smartlicenses/{objId}":{"get":{"tags":["SmartLicensing"],"operationId":"getLicense","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/LicenseWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"delete":{"tags":["SmartLicensing"],"operationId":"deleteLicense","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/license/smartagentsyncrequests":{"get":{"tags":["SmartLicensing"],"operationId":"getSmartAgentSyncRequestList","responses":{"200":{"description":"","schema":{"type":"object","title":"SmartAgentSyncRequestList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/SmartAgentSyncRequestWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["SmartLicensing"],"operationId":"addSmartAgentSyncRequest","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SmartAgentSyncRequestWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SmartAgentSyncRequest"}}]}},"/license/smartagentsyncrequests/{objId}":{"get":{"tags":["SmartLicensing"],"operationId":"getSmartAgentSyncRequest","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SmartAgentSyncRequestWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/action/uploadbackup":{"post":{"tags":["Upload"],"operationId":"postuploadbackup","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/FileUploadStatusWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"formData","name":"fileToUpload","type":"file"}],"consumes":["multipart/form-data"]}},"/action/downloadbackup/{objId}":{"get":{"tags":["Download"],"operationId":"getdownloadbackup","responses":{"200":{"description":"","schema":{"type":"file"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}],"produces":["application/octet-stream"]}},"/action/testrealm":{"post":{"tags":["TestDirectory"],"operationId":"addTestDirectory","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/TestDirectoryWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/TestDirectory"}}]}},"/action/testidentityservicesengineconnectivity":{"post":{"tags":["TestIdentityServicesEngineConnectivity"],"operationId":"addTestIdentityServicesEngineConnectivity","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/TestIdentityServicesEngineConnectivityWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/TestIdentityServicesEngineConnectivity"}}]}},"/operational/ntpstatus/{objId}":{"get":{"tags":["NTPStatus"],"operationId":"getNTPStatus","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/NTPStatusWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/operational/interfaceinfo/{objId}":{"get":{"tags":["InterfaceInfo"],"operationId":"getInterfaceInfo","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/InterfaceInfoWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/action/uploadupgrade":{"post":{"tags":["Upload"],"operationId":"postuploadupgrade","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/FileUploadStatusWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"formData","name":"fileToUpload","type":"file"}],"consumes":["multipart/form-data"]}},"/action/cloudmanagement":{"get":{"tags":["CloudManagement"],"operationId":"getCloudManagementList","responses":{"200":{"description":"","schema":{"type":"object","title":"CloudManagementList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/CloudManagementWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["CloudManagement"],"operationId":"addCloudManagement","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/CloudManagementWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/CloudManagement"}}]}},"/action/cloudmanagement/{objId}":{"get":{"tags":["CloudManagement"],"operationId":"getCloudManagement","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/CloudManagementWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["CloudManagement"],"operationId":"editCloudManagement","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/CloudManagementWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/CloudManagement"}}]},"delete":{"tags":["CloudManagement"],"operationId":"deleteCloudManagement","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/policy/sslpolicies":{"get":{"tags":["SSLPolicy"],"operationId":"getSSLPolicyList","responses":{"200":{"description":"","schema":{"type":"object","title":"SSLPolicyList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/SSLPolicyWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/policy/sslpolicies/{objId}":{"get":{"tags":["SSLPolicy"],"operationId":"getSSLPolicy","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SSLPolicyWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["SSLPolicy"],"operationId":"editSSLPolicy","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SSLPolicyWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SSLPolicy"}}]}},"/policy/sslpolicies/{parentId}/sslrules":{"get":{"tags":["SSLPolicy"],"operationId":"getSSLRuleList","responses":{"200":{"description":"","schema":{"type":"object","title":"SSLRuleList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/SSLRuleWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"},{"name":"parentId","in":"path","required":true,"type":"string"}]},"post":{"tags":["SSLPolicy"],"operationId":"addSSLRule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SSLRuleWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"at","in":"query","required":false,"type":"integer"},{"name":"parentId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SSLRule"}}]}},"/policy/sslpolicies/{parentId}/sslrules/{objId}":{"get":{"tags":["SSLPolicy"],"operationId":"getSSLRule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SSLRuleWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"parentId","in":"path","required":true,"type":"string"},{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["SSLPolicy"],"operationId":"editSSLRule","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SSLRuleWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"at","in":"query","required":false,"type":"integer"},{"name":"parentId","in":"path","required":true,"type":"string"},{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SSLRule"}}]},"delete":{"tags":["SSLPolicy"],"operationId":"deleteSSLRule","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"parentId","in":"path","required":true,"type":"string"},{"name":"objId","in":"path","required":true,"type":"string"}]}},"/policy/securityintelligencepolicies":{"get":{"tags":["SecurityIntelligence"],"operationId":"getSecurityIntelligencePolicyList","responses":{"200":{"description":"","schema":{"type":"object","title":"SecurityIntelligencePolicyList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/SecurityIntelligencePolicyWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/policy/securityintelligencepolicies/{objId}":{"get":{"tags":["SecurityIntelligence"],"operationId":"getSecurityIntelligencePolicy","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SecurityIntelligencePolicyWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["SecurityIntelligence"],"operationId":"editSecurityIntelligencePolicy","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SecurityIntelligencePolicyWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SecurityIntelligencePolicy"}}]}},"/policy/securityintelligencenetworkpolicies":{"get":{"tags":["SecurityIntelligence"],"operationId":"getSecurityIntelligenceNetworkPolicyList","responses":{"200":{"description":"","schema":{"type":"object","title":"SecurityIntelligenceNetworkPolicyList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/SecurityIntelligenceNetworkPolicyWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/policy/securityintelligencenetworkpolicies/{objId}":{"get":{"tags":["SecurityIntelligence"],"operationId":"getSecurityIntelligenceNetworkPolicy","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SecurityIntelligenceNetworkPolicyWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["SecurityIntelligence"],"operationId":"editSecurityIntelligenceNetworkPolicy","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SecurityIntelligenceNetworkPolicyWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SecurityIntelligenceNetworkPolicy"}}]}},"/policy/securityintelligenceurlpolicies":{"get":{"tags":["SecurityIntelligence"],"operationId":"getSecurityIntelligenceURLPolicyList","responses":{"200":{"description":"","schema":{"type":"object","title":"SecurityIntelligenceURLPolicyList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/SecurityIntelligenceURLPolicyWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/policy/securityintelligenceurlpolicies/{objId}":{"get":{"tags":["SecurityIntelligence"],"operationId":"getSecurityIntelligenceURLPolicy","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SecurityIntelligenceURLPolicyWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["SecurityIntelligence"],"operationId":"editSecurityIntelligenceURLPolicy","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SecurityIntelligenceURLPolicyWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SecurityIntelligenceURLPolicy"}}]}},"/managemententity/postupgradeflags":{"get":{"tags":["PostUpgradeFlags"],"operationId":"getPostUpgradeFlagsList","responses":{"200":{"description":"","schema":{"type":"object","title":"PostUpgradeFlagsList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/PostUpgradeFlagsWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/managemententity/postupgradeflags/{objId}":{"get":{"tags":["PostUpgradeFlags"],"operationId":"getPostUpgradeFlags","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/PostUpgradeFlagsWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["PostUpgradeFlags"],"operationId":"editPostUpgradeFlags","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/PostUpgradeFlagsWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PostUpgradeFlags"}}]}},"/devices/default/routing/virtualrouters/default/ospf":{"get":{"tags":["OSPF"],"operationId":"getOSPFList","responses":{"200":{"description":"","schema":{"type":"object","title":"OSPFList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/OSPFWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["OSPF"],"operationId":"addOSPF","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/OSPFWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/OSPF"}}]}},"/devices/default/routing/virtualrouters/default/ospf/{objId}":{"get":{"tags":["OSPF"],"operationId":"getOSPF","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/OSPFWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["OSPF"],"operationId":"editOSPF","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/OSPFWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/OSPF"}}]},"delete":{"tags":["OSPF"],"operationId":"deleteOSPF","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/devices/default/routing/virtualrouters/default/ospfinterfacesettings":{"get":{"tags":["OSPFInterfaceSettings"],"operationId":"getOSPFInterfaceSettingsList","responses":{"200":{"description":"","schema":{"type":"object","title":"OSPFInterfaceSettingsList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/OSPFInterfaceSettingsWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["OSPFInterfaceSettings"],"operationId":"addOSPFInterfaceSettings","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/OSPFInterfaceSettingsWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/OSPFInterfaceSettings"}}]}},"/devices/default/routing/virtualrouters/default/ospfinterfacesettings/{objId}":{"get":{"tags":["OSPFInterfaceSettings"],"operationId":"getOSPFInterfaceSettings","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/OSPFInterfaceSettingsWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["OSPFInterfaceSettings"],"operationId":"editOSPFInterfaceSettings","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/OSPFInterfaceSettingsWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/OSPFInterfaceSettings"}}]},"delete":{"tags":["OSPFInterfaceSettings"],"operationId":"deleteOSPFInterfaceSettings","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/devices/default/routing/virtualrouters/default/bgp":{"get":{"tags":["BGP"],"operationId":"getBGPList","responses":{"200":{"description":"","schema":{"type":"object","title":"BGPList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/BGPWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["BGP"],"operationId":"addBGP","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/BGPWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/BGP"}}]}},"/devices/default/routing/virtualrouters/default/bgp/{objId}":{"get":{"tags":["BGP"],"operationId":"getBGP","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/BGPWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["BGP"],"operationId":"editBGP","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/BGPWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/BGP"}}]},"delete":{"tags":["BGP"],"operationId":"deleteBGP","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/flexconfigobjects":{"get":{"tags":["FlexConfigObject"],"operationId":"getFlexConfigObjectList","responses":{"200":{"description":"","schema":{"type":"object","title":"FlexConfigObjectList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/FlexConfigObjectWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["FlexConfigObject"],"operationId":"addFlexConfigObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/FlexConfigObjectWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/FlexConfigObject"}}]}},"/object/flexconfigobjects/{objId}":{"get":{"tags":["FlexConfigObject"],"operationId":"getFlexConfigObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/FlexConfigObjectWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["FlexConfigObject"],"operationId":"editFlexConfigObject","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/FlexConfigObjectWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/FlexConfigObject"}}]},"delete":{"tags":["FlexConfigObject"],"operationId":"deleteFlexConfigObject","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/flexconfigpolicies":{"get":{"tags":["FlexConfigPolicy"],"operationId":"getFlexConfigPolicyList","responses":{"200":{"description":"","schema":{"type":"object","title":"FlexConfigPolicyList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/FlexConfigPolicyWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["FlexConfigPolicy"],"operationId":"addFlexConfigPolicy","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/FlexConfigPolicyWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/FlexConfigPolicy"}}]}},"/object/flexconfigpolicies/{objId}":{"get":{"tags":["FlexConfigPolicy"],"operationId":"getFlexConfigPolicy","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/FlexConfigPolicyWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["FlexConfigPolicy"],"operationId":"editFlexConfigPolicy","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/FlexConfigPolicyWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/FlexConfigPolicy"}}]},"delete":{"tags":["FlexConfigPolicy"],"operationId":"deleteFlexConfigPolicy","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/secrets":{"get":{"tags":["Secret"],"operationId":"getSecretList","responses":{"200":{"description":"","schema":{"type":"object","title":"SecretList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/SecretWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["Secret"],"operationId":"addSecret","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SecretWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/Secret"}}]}},"/object/secrets/{objId}":{"get":{"tags":["Secret"],"operationId":"getSecret","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SecretWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["Secret"],"operationId":"editSecret","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/SecretWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/Secret"}}]},"delete":{"tags":["Secret"],"operationId":"deleteSecret","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/operational/cloudservicesinfo/{objId}":{"get":{"tags":["CloudServicesInfo"],"operationId":"getCloudServicesInfo","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/CloudServicesInfoWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/devices/default/ha/configurations":{"get":{"tags":["HAConfiguration"],"operationId":"getHAConfigurationList","responses":{"200":{"description":"","schema":{"type":"object","title":"HAConfigurationList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/HAConfigurationWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/devices/default/ha/configurations/{objId}":{"get":{"tags":["HAConfiguration"],"operationId":"getHAConfiguration","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/HAConfigurationWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["HAConfiguration"],"operationId":"editHAConfiguration","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/HAConfigurationWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/HAConfiguration"}}]}},"/devices/default/ha/failoverconfigurations":{"get":{"tags":["HAFailoverConfiguration"],"operationId":"getHAFailoverConfigurationList","responses":{"200":{"description":"","schema":{"type":"object","title":"HAFailoverConfigurationList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/HAFailoverConfigurationWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/devices/default/ha/failoverconfigurations/{objId}":{"get":{"tags":["HAFailoverConfiguration"],"operationId":"getHAFailoverConfiguration","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/HAFailoverConfigurationWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["HAFailoverConfiguration"],"operationId":"editHAFailoverConfiguration","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/HAFailoverConfigurationWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/HAFailoverConfiguration"}}]}},"/devices/default/operational/ha/status/{objId}":{"get":{"tags":["HAStatus"],"operationId":"getHAStatus","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/HAStatusWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/radiusidentitysources":{"get":{"tags":["RadiusIdentitySource"],"operationId":"getRadiusIdentitySourceList","responses":{"200":{"description":"","schema":{"type":"object","title":"RadiusIdentitySourceList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/RadiusIdentitySourceWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["RadiusIdentitySource"],"operationId":"addRadiusIdentitySource","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/RadiusIdentitySourceWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/RadiusIdentitySource"}}]}},"/object/radiusidentitysources/{objId}":{"get":{"tags":["RadiusIdentitySource"],"operationId":"getRadiusIdentitySource","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/RadiusIdentitySourceWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["RadiusIdentitySource"],"operationId":"editRadiusIdentitySource","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/RadiusIdentitySourceWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/RadiusIdentitySource"}}]},"delete":{"tags":["RadiusIdentitySource"],"operationId":"deleteRadiusIdentitySource","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/object/localidentitysources":{"get":{"tags":["LocalIdentitySource"],"operationId":"getLocalIdentitySourceList","responses":{"200":{"description":"","schema":{"type":"object","title":"LocalIdentitySourceList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/LocalIdentitySourceWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/object/localidentitysources/{objId}":{"get":{"tags":["LocalIdentitySource"],"operationId":"getLocalIdentitySource","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/LocalIdentitySourceWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/action/testidentitysource":{"post":{"tags":["TestIdentitySource"],"operationId":"addTestIdentitySource","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/TestIdentitySourceWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/TestIdentitySource"}}]}},"/action/activeusersessions":{"get":{"tags":["ActiveUserSessions"],"operationId":"getActiveUserSessionsList","responses":{"200":{"description":"","schema":{"type":"object","title":"ActiveUserSessionsList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/ActiveUserSessionsWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/action/activeusersessions/{objId}":{"get":{"tags":["ActiveUserSessions"],"operationId":"getActiveUserSessions","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/ActiveUserSessionsWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"delete":{"tags":["ActiveUserSessions"],"operationId":"deleteActiveUserSessions","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/devicesettings/default/aaasettings":{"get":{"tags":["AAASetting"],"operationId":"getAAASettingList","responses":{"200":{"description":"","schema":{"type":"object","title":"AAASettingList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/AAASettingWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/devicesettings/default/aaasettings/{objId}":{"get":{"tags":["AAASetting"],"operationId":"getAAASetting","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/AAASettingWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["AAASetting"],"operationId":"editAAASetting","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/AAASettingWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/AAASetting"}}]}},"/object/radiusidentitysourcegroups":{"get":{"tags":["RadiusIdentitySourceGroup"],"operationId":"getRadiusIdentitySourceGroupList","responses":{"200":{"description":"","schema":{"type":"object","title":"RadiusIdentitySourceGroupList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/RadiusIdentitySourceGroupWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["RadiusIdentitySourceGroup"],"operationId":"addRadiusIdentitySourceGroup","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/RadiusIdentitySourceGroupWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/RadiusIdentitySourceGroup"}}]}},"/object/radiusidentitysourcegroups/{objId}":{"get":{"tags":["RadiusIdentitySourceGroup"],"operationId":"getRadiusIdentitySourceGroup","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/RadiusIdentitySourceGroupWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["RadiusIdentitySourceGroup"],"operationId":"editRadiusIdentitySourceGroup","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/RadiusIdentitySourceGroupWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/RadiusIdentitySourceGroup"}}]},"delete":{"tags":["RadiusIdentitySourceGroup"],"operationId":"deleteRadiusIdentitySourceGroup","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/operational/rolepermissions":{"get":{"tags":["RolePermission"],"operationId":"getRolePermissionList","responses":{"200":{"description":"","schema":{"type":"object","title":"RolePermissionList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/RolePermissionWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/operational/rolepermissions/{objId}":{"get":{"tags":["RolePermission"],"operationId":"getRolePermission","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/RolePermissionWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/devicesettings/default/webanalyticssettings":{"get":{"tags":["WebAnalyticsSetting"],"operationId":"getWebAnalyticsSettingList","responses":{"200":{"description":"","schema":{"type":"object","title":"WebAnalyticsSettingList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/WebAnalyticsSettingWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]}},"/devicesettings/default/webanalyticssettings/{objId}":{"get":{"tags":["WebAnalyticsSetting"],"operationId":"getWebAnalyticsSetting","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/WebAnalyticsSettingWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["WebAnalyticsSetting"],"operationId":"editWebAnalyticsSetting","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/WebAnalyticsSettingWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/WebAnalyticsSetting"}}]}},"/devices/default/action/provision":{"get":{"tags":["UnlockBox"],"operationId":"getInitialProvisionList","responses":{"200":{"description":"","schema":{"type":"object","title":"InitialProvisionList","properties":{"items":{"type":"array","items":{"$ref":"#/definitions/InitialProvisionWrapper"}},"paging":{"$ref":"#/definitions/Paging"}},"required":["items","paging"]}}},"parameters":[{"name":"offset","in":"query","required":false,"type":"integer"},{"name":"limit","in":"query","required":false,"type":"integer"},{"name":"sort","in":"query","required":false,"type":"string"},{"name":"filter","in":"query","required":false,"type":"string"}]},"post":{"tags":["UnlockBox"],"operationId":"addInitialProvision","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/InitialProvisionWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/InitialProvision"}}]}},"/devices/default/action/provision/{objId}":{"get":{"tags":["InitialProvision"],"operationId":"getInitialProvision","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/InitialProvisionWrapper"}},"404":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]},"put":{"tags":["InitialProvision"],"operationId":"editInitialProvision","responses":{"200":{"description":"","schema":{"type":"object","$ref":"#/definitions/InitialProvisionWrapper"}},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/InitialProvision"}}]},"delete":{"tags":["InitialProvision"],"operationId":"deleteInitialProvision","responses":{"204":{"description":""},"422":{"description":"","schema":{"type":"object","$ref":"#/definitions/ErrorWrapper"}}},"parameters":[{"name":"objId","in":"path","required":true,"type":"string"}]}},"/fdm/token":{"post":{"operationId":"token","tags":["Token"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/TokenPayloadUnion"}}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TokenResponseUnion","type":"object"}},"400":{"description":"","schema":{"$ref":"#/definitions/TokenStatus","type":"object"}}}}}}}
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/test_device.py.disabled b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/test_device.py.disabled new file mode 100644 index 000000000..cef7a7abe --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/test_device.py.disabled @@ -0,0 +1,148 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +import pytest + +pytest.importorskip("kick") + +from ansible_collections.community.network.plugins.module_utils.network.ftd.device import FtdPlatformFactory, FtdModel, FtdAsa5500xPlatform, \ + Ftd2100Platform, AbstractFtdPlatform +from ansible_collections.community.network.tests.unit.plugins.modules.network.ftd.test_ftd_install import DEFAULT_MODULE_PARAMS + + +class TestFtdModel(object): + + def test_has_value_should_return_true_for_existing_models(self): + assert FtdModel.FTD_2120 in FtdModel.supported_models() + assert FtdModel.FTD_ASA5516_X in FtdModel.supported_models() + + def test_has_value_should_return_false_for_non_existing_models(self): + assert 'nonExistingModel' not in FtdModel.supported_models() + assert None not in FtdModel.supported_models() + + +class TestFtdPlatformFactory(object): + + @pytest.fixture(autouse=True) + def mock_devices(self, mocker): + mocker.patch('ansible_collections.community.network.plugins.module_utils.network.ftd.device.Kp') + mocker.patch('ansible_collections.community.network.plugins.module_utils.network.ftd.device.Ftd5500x') + + def test_factory_should_return_corresponding_platform(self): + ftd_platform = FtdPlatformFactory.create(FtdModel.FTD_ASA5508_X, dict(DEFAULT_MODULE_PARAMS)) + assert type(ftd_platform) is FtdAsa5500xPlatform + ftd_platform = FtdPlatformFactory.create(FtdModel.FTD_2130, dict(DEFAULT_MODULE_PARAMS)) + assert type(ftd_platform) is Ftd2100Platform + + def test_factory_should_raise_error_with_not_supported_model(self): + with pytest.raises(ValueError) as ex: + FtdPlatformFactory.create('nonExistingModel', dict(DEFAULT_MODULE_PARAMS)) + assert "FTD model 'nonExistingModel' is not supported by this module." == ex.value.args[0] + + +class TestAbstractFtdPlatform(object): + + def test_install_ftd_image_raise_error_on_abstract_class(self): + with pytest.raises(NotImplementedError): + AbstractFtdPlatform().install_ftd_image(dict(DEFAULT_MODULE_PARAMS)) + + def test_supports_ftd_model_should_return_true_for_supported_models(self): + assert Ftd2100Platform.supports_ftd_model(FtdModel.FTD_2120) + assert FtdAsa5500xPlatform.supports_ftd_model(FtdModel.FTD_ASA5516_X) + + def test_supports_ftd_model_should_return_false_for_non_supported_models(self): + assert not AbstractFtdPlatform.supports_ftd_model(FtdModel.FTD_2120) + assert not Ftd2100Platform.supports_ftd_model(FtdModel.FTD_ASA5508_X) + assert not FtdAsa5500xPlatform.supports_ftd_model(FtdModel.FTD_2120) + + def test_parse_rommon_file_location(self): + server, path = AbstractFtdPlatform.parse_rommon_file_location('tftp://1.2.3.4/boot/rommon-boot.foo') + assert '1.2.3.4' == server + assert '/boot/rommon-boot.foo' == path + + def test_parse_rommon_file_location_should_fail_for_non_tftp_protocol(self): + with pytest.raises(ValueError) as ex: + AbstractFtdPlatform.parse_rommon_file_location('http://1.2.3.4/boot/rommon-boot.foo') + assert 'The ROMMON image must be downloaded from TFTP server' in str(ex.value) + + +class TestFtd2100Platform(object): + + @pytest.fixture + def kp_mock(self, mocker): + return mocker.patch('ansible_collections.community.network.plugins.module_utils.network.ftd.device.Kp') + + @pytest.fixture + def module_params(self): + return dict(DEFAULT_MODULE_PARAMS) + + def test_install_ftd_image_should_call_kp_module(self, kp_mock, module_params): + ftd = FtdPlatformFactory.create(FtdModel.FTD_2110, module_params) + ftd.install_ftd_image(module_params) + + assert kp_mock.called + assert kp_mock.return_value.ssh_console.called + ftd_line = kp_mock.return_value.ssh_console.return_value + assert ftd_line.baseline_fp2k_ftd.called + assert ftd_line.disconnect.called + + def test_install_ftd_image_should_call_disconnect_when_install_fails(self, kp_mock, module_params): + ftd_line = kp_mock.return_value.ssh_console.return_value + ftd_line.baseline_fp2k_ftd.side_effect = Exception('Something went wrong') + + ftd = FtdPlatformFactory.create(FtdModel.FTD_2120, module_params) + with pytest.raises(Exception): + ftd.install_ftd_image(module_params) + + assert ftd_line.baseline_fp2k_ftd.called + assert ftd_line.disconnect.called + + +class TestFtdAsa5500xPlatform(object): + + @pytest.fixture + def asa5500x_mock(self, mocker): + return mocker.patch('ansible_collections.community.network.plugins.module_utils.network.ftd.device.Ftd5500x') + + @pytest.fixture + def module_params(self): + return dict(DEFAULT_MODULE_PARAMS) + + def test_install_ftd_image_should_call_kp_module(self, asa5500x_mock, module_params): + ftd = FtdPlatformFactory.create(FtdModel.FTD_ASA5508_X, module_params) + ftd.install_ftd_image(module_params) + + assert asa5500x_mock.called + assert asa5500x_mock.return_value.ssh_console.called + ftd_line = asa5500x_mock.return_value.ssh_console.return_value + assert ftd_line.rommon_to_new_image.called + assert ftd_line.disconnect.called + + def test_install_ftd_image_should_call_disconnect_when_install_fails(self, asa5500x_mock, module_params): + ftd_line = asa5500x_mock.return_value.ssh_console.return_value + ftd_line.rommon_to_new_image.side_effect = Exception('Something went wrong') + + ftd = FtdPlatformFactory.create(FtdModel.FTD_ASA5516_X, module_params) + with pytest.raises(Exception): + ftd.install_ftd_image(module_params) + + assert ftd_line.rommon_to_new_image.called + assert ftd_line.disconnect.called diff --git a/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/test_fdm_swagger_parser.py b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/test_fdm_swagger_parser.py new file mode 100644 index 000000000..e2efe0c98 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/test_fdm_swagger_parser.py @@ -0,0 +1,382 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +import copy +import os +import unittest + +from ansible_collections.community.network.plugins.module_utils.network.ftd.common import HTTPMethod +from ansible_collections.community.network.plugins.module_utils.network.ftd.fdm_swagger_client import FdmSwaggerParser + +DIR_PATH = os.path.dirname(os.path.realpath(__file__)) +TEST_DATA_FOLDER = os.path.join(DIR_PATH, 'test_data') + +base = { + 'basePath': "/api/fdm/v2", + 'definitions': {"NetworkObject": {"type": "object", + "properties": {"version": {"type": "string"}, "name": {"type": "string"}, + "description": {"type": "string"}, + "subType": {"type": "object", + "$ref": "#/definitions/NetworkObjectType"}, + "value": {"type": "string"}, + "isSystemDefined": {"type": "boolean"}, + "dnsResolution": {"type": "object", + "$ref": "#/definitions/FQDNDNSResolution"}, + "id": {"type": "string"}, + "type": {"type": "string", "default": "networkobject"}}, + "required": ["subType", "type", "value", "name"]}, + "NetworkObjectWrapper": { + "allOf": [{"$ref": "#/definitions/NetworkObject"}, {"$ref": "#/definitions/LinksWrapper"}]} + }, + 'paths': { + "/object/networks": { + "get": {"tags": ["NetworkObject"], + "operationId": "getNetworkObjectList", + "responses": { + "200": { + "description": "", + "schema": {"type": "object", + "title": "NetworkObjectList", + "properties": { + "items": { + "type": "array", + "items": {"$ref": "#/definitions/NetworkObjectWrapper"}}, + "paging": { + "$ref": "#/definitions/Paging"}}, + "required": ["items", "paging"]}}}, + "parameters": [ + {"name": "offset", "in": "query", "required": False, "type": "integer"}, + {"name": "limit", "in": "query", "required": False, "type": "integer"}, + {"name": "sort", "in": "query", "required": False, "type": "string"}, + {"name": "filter", "in": "query", "required": False, "type": "string"}]}, + "post": {"tags": ["NetworkObject"], "operationId": "addNetworkObject", + "responses": { + "200": {"description": "", + "schema": {"type": "object", + "$ref": "#/definitions/NetworkObjectWrapper"}}, + "422": {"description": "", + "schema": {"type": "object", "$ref": "#/definitions/ErrorWrapper"}}}, + "parameters": [{"in": "body", "name": "body", + "required": True, + "schema": {"$ref": "#/definitions/NetworkObject"}}]} + }, + "/object/networks/{objId}": { + "get": {"tags": ["NetworkObject"], "operationId": "getNetworkObject", + "responses": {"200": {"description": "", + "schema": {"type": "object", + "$ref": "#/definitions/NetworkObjectWrapper"}}, + "404": {"description": "", + "schema": {"type": "object", + "$ref": "#/definitions/ErrorWrapper"}}}, + "parameters": [{"name": "objId", "in": "path", "required": True, + "type": "string"}]}, + + "put": {"tags": ["NetworkObject"], "operationId": "editNetworkObject", + "responses": {"200": {"description": "", + "schema": {"type": "object", + "$ref": "#/definitions/NetworkObjectWrapper"}}, + "422": {"description": "", + "schema": {"type": "object", + "$ref": "#/definitions/ErrorWrapper"}}}, + "parameters": [{"name": "objId", "in": "path", "required": True, + "type": "string"}, + {"in": "body", "name": "body", "required": True, + "schema": {"$ref": "#/definitions/NetworkObject"}}]}, + "delete": {"tags": ["NetworkObject"], "operationId": "deleteNetworkObject", + "responses": {"204": {"description": ""}, + "422": {"description": "", + "schema": {"type": "object", + "$ref": "#/definitions/ErrorWrapper"}}}, + "parameters": [{"name": "objId", "in": "path", "required": True, + "type": "string"}]}}} +} + + +def _get_objects(base_object, key_names): + return dict((_key, base_object[_key]) for _key in key_names) + + +class TestFdmSwaggerParser(unittest.TestCase): + + def test_simple_object(self): + self._data = copy.deepcopy(base) + + self.fdm_data = FdmSwaggerParser().parse_spec(self._data) + + expected_operations = { + 'getNetworkObjectList': { + 'method': HTTPMethod.GET, + 'url': '/api/fdm/v2/object/networks', + 'modelName': 'NetworkObject', + 'parameters': { + 'path': {}, + 'query': { + 'offset': { + 'required': False, + 'type': 'integer' + }, + 'limit': { + 'required': False, + 'type': 'integer' + }, + 'sort': { + 'required': False, + 'type': 'string' + }, + 'filter': { + 'required': False, + 'type': 'string' + } + } + }, + 'returnMultipleItems': True, + "tags": ["NetworkObject"] + }, + 'addNetworkObject': { + 'method': HTTPMethod.POST, + 'url': '/api/fdm/v2/object/networks', + 'modelName': 'NetworkObject', + 'parameters': {'path': {}, + 'query': {}}, + 'returnMultipleItems': False, + "tags": ["NetworkObject"] + }, + 'getNetworkObject': { + 'method': HTTPMethod.GET, + 'url': '/api/fdm/v2/object/networks/{objId}', + 'modelName': 'NetworkObject', + 'parameters': { + 'path': { + 'objId': { + 'required': True, + 'type': "string" + } + }, + 'query': {} + }, + 'returnMultipleItems': False, + "tags": ["NetworkObject"] + }, + 'editNetworkObject': { + 'method': HTTPMethod.PUT, + 'url': '/api/fdm/v2/object/networks/{objId}', + 'modelName': 'NetworkObject', + 'parameters': { + 'path': { + 'objId': { + 'required': True, + 'type': "string" + } + }, + 'query': {} + }, + 'returnMultipleItems': False, + "tags": ["NetworkObject"] + }, + 'deleteNetworkObject': { + 'method': HTTPMethod.DELETE, + 'url': '/api/fdm/v2/object/networks/{objId}', + 'modelName': 'NetworkObject', + 'parameters': { + 'path': { + 'objId': { + 'required': True, + 'type': "string" + } + }, + 'query': {} + }, + 'returnMultipleItems': False, + "tags": ["NetworkObject"] + } + } + assert sorted(['NetworkObject', 'NetworkObjectWrapper']) == sorted(self.fdm_data['models'].keys()) + assert expected_operations == self.fdm_data['operations'] + assert {'NetworkObject': expected_operations} == self.fdm_data['model_operations'] + + def test_simple_object_with_documentation(self): + api_spec = copy.deepcopy(base) + docs = { + 'definitions': { + 'NetworkObject': { + 'description': 'Description for Network Object', + 'properties': {'name': 'Description for name field'} + } + }, + 'paths': { + '/object/networks': { + 'get': { + 'description': 'Description for getNetworkObjectList operation', + 'parameters': [{'name': 'offset', 'description': 'Description for offset field'}] + }, + 'post': {'description': 'Description for addNetworkObject operation'} + } + } + } + + self.fdm_data = FdmSwaggerParser().parse_spec(api_spec, docs) + + assert 'Description for Network Object' == self.fdm_data['models']['NetworkObject']['description'] + assert '' == self.fdm_data['models']['NetworkObjectWrapper']['description'] + network_properties = self.fdm_data['models']['NetworkObject']['properties'] + assert '' == network_properties['id']['description'] + assert not network_properties['id']['required'] + assert 'Description for name field' == network_properties['name']['description'] + assert network_properties['name']['required'] + + ops = self.fdm_data['operations'] + assert 'Description for getNetworkObjectList operation' == ops['getNetworkObjectList']['description'] + assert 'Description for addNetworkObject operation' == ops['addNetworkObject']['description'] + assert '' == ops['deleteNetworkObject']['description'] + + get_op_params = ops['getNetworkObjectList']['parameters'] + assert 'Description for offset field' == get_op_params['query']['offset']['description'] + assert '' == get_op_params['query']['limit']['description'] + + def test_model_operations_should_contain_all_operations(self): + data = { + 'basePath': '/v2/', + 'definitions': { + 'Model1': {"type": "object"}, + 'Model2': {"type": "object"}, + 'Model3': {"type": "object"} + }, + 'paths': { + 'path1': { + 'get': { + 'operationId': 'getSomeModelList', + "responses": { + "200": {"description": "", + "schema": {"type": "object", + "title": "NetworkObjectList", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/Model1" + } + } + }} + } + } + }, + "post": { + "operationId": "addSomeModel", + "parameters": [{"in": "body", + "name": "body", + "schema": {"$ref": "#/definitions/Model2"} + }]} + }, + 'path2/{id}': { + "get": {"operationId": "getSomeModel", + "responses": {"200": {"description": "", + "schema": {"type": "object", + "$ref": "#/definitions/Model3"}}, + } + }, + "put": {"operationId": "editSomeModel", + "parameters": [{"in": "body", + "name": "body", + "schema": {"$ref": "#/definitions/Model1"}} + ]}, + "delete": { + "operationId": "deleteModel3", + }}, + 'path3': { + "delete": { + "operationId": "deleteNoneModel", + } + } + } + } + + expected_operations = { + 'getSomeModelList': { + 'method': HTTPMethod.GET, + 'url': '/v2/path1', + 'modelName': 'Model1', + 'returnMultipleItems': True, + 'tags': [] + }, + 'addSomeModel': { + 'method': HTTPMethod.POST, + 'url': '/v2/path1', + 'modelName': 'Model2', + 'parameters': { + 'path': {}, + 'query': {} + }, + 'returnMultipleItems': False, + 'tags': [] + }, + 'getSomeModel': { + 'method': HTTPMethod.GET, + 'url': '/v2/path2/{id}', + 'modelName': 'Model3', + 'returnMultipleItems': False, + 'tags': [] + }, + 'editSomeModel': { + 'method': HTTPMethod.PUT, + 'url': '/v2/path2/{id}', + 'modelName': 'Model1', + 'parameters': { + 'path': {}, + 'query': {} + }, + 'returnMultipleItems': False, + 'tags': [] + }, + 'deleteModel3': { + 'method': HTTPMethod.DELETE, + 'url': '/v2/path2/{id}', + 'modelName': 'Model3', + 'returnMultipleItems': False, + 'tags': [] + }, + 'deleteNoneModel': { + 'method': HTTPMethod.DELETE, + 'url': '/v2/path3', + 'modelName': None, + 'returnMultipleItems': False, + 'tags': [] + } + } + + fdm_data = FdmSwaggerParser().parse_spec(data) + assert sorted(['Model1', 'Model2', 'Model3']) == sorted(fdm_data['models'].keys()) + assert expected_operations == fdm_data['operations'] + assert { + 'Model1': { + 'getSomeModelList': expected_operations['getSomeModelList'], + 'editSomeModel': expected_operations['editSomeModel'], + }, + 'Model2': { + 'addSomeModel': expected_operations['addSomeModel'] + }, + 'Model3': { + 'getSomeModel': expected_operations['getSomeModel'], + 'deleteModel3': expected_operations['deleteModel3'] + }, + None: { + 'deleteNoneModel': expected_operations['deleteNoneModel'] + } + } == fdm_data['model_operations'] diff --git a/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/test_fdm_swagger_validator.py b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/test_fdm_swagger_validator.py new file mode 100644 index 000000000..2ab3412fa --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/test_fdm_swagger_validator.py @@ -0,0 +1,1124 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +import copy +import os +import unittest + +import pytest +from ansible_collections.community.network.plugins.module_utils.network.ftd.fdm_swagger_client import FdmSwaggerValidator, IllegalArgumentException + +DIR_PATH = os.path.dirname(os.path.realpath(__file__)) +TEST_DATA_FOLDER = os.path.join(DIR_PATH, 'test_data') + +mock_data = { + 'models': { + 'ReferenceModel': {'type': 'object', 'required': ['id', 'type'], + 'properties': {'id': {'type': 'string'}, 'type': {'type': 'string'}, + 'version': {'type': 'string'}, 'name': {'type': 'string'}}}, + 'FQDNDNSResolution': {'type': 'string', 'enum': ['IPV4_ONLY', 'IPV6_ONLY', 'IPV4_AND_IPV6']}, + 'NetworkObjectType': {'type': 'string', 'enum': ['HOST', 'NETWORK', 'IPRANGE', 'FQDN']}, + 'NetworkObject': {'type': 'object', + 'properties': {'version': {'type': 'string'}, + 'name': {'type': 'string'}, + 'description': {'type': 'string'}, + 'subType': {'type': 'object', + '$ref': '#/definitions/NetworkObjectType'}, + 'value': {'type': 'string'}, + 'isSystemDefined': {'type': 'boolean'}, + 'dnsResolution': {'type': 'object', + '$ref': '#/definitions/FQDNDNSResolution'}, + 'objects': {'type': 'array', + 'items': {'type': 'object', + '$ref': '#/definitions/ReferenceModel'}}, + 'id': {'type': 'string'}, + 'type': {'type': 'string', + 'default': 'networkobject'}}, + 'required': ['subType', 'type', 'value']} + }, + 'operations': { + 'getNetworkObjectList': { + 'method': 'get', + 'url': '/api/fdm/v2/object/networks', + 'modelName': 'NetworkObject', + 'parameters': { + 'path': { + 'objId': { + 'required': True, + 'type': "string" + } + }, + 'query': { + 'offset': { + 'required': False, + 'type': 'integer' + }, + 'limit': { + 'required': True, + 'type': 'integer' + }, + 'sort': { + 'required': False, + 'type': 'string' + }, + 'filter': { + 'required': False, + 'type': 'string' + } + } + } + } + } +} + +nested_mock_data1 = { + 'models': { + 'model1': { + 'type': 'object', + 'properties': { + 'f_string': {'type': 'string'}, + 'f_number': {'type': 'number'}, + 'f_boolean': {'type': 'boolean'}, + 'f_integer': {'type': 'integer'} + }, + 'required': ['f_string'] + }, + 'TestModel': { + 'type': 'object', + 'properties': { + 'nested_model': {'type': 'object', + '$ref': '#/definitions/model1'}, + 'f_integer': {'type': 'integer'} + }, + 'required': ['nested_model'] + } + }, + 'operations': { + 'getdata': { + 'modelName': 'TestModel' + } + } +} + + +def sort_validator_rez(data): + if 'required' in data: + data['required'] = sorted(data['required']) + if 'invalid_type' in data: + data['invalid_type'] = sorted(data['invalid_type'], + key=lambda k: '{0}{1}{2}'.format(k['path'], ['expected_type'], + ['actually_value'])) + + return data + + +class TestFdmSwaggerValidator(unittest.TestCase): + + @staticmethod + def check_illegal_argument_exception(cb, msg): + with pytest.raises(IllegalArgumentException) as ctx: + cb() + assert msg == str(ctx.value) + + def test_path_params_valid(self): + self.url_data_valid(method='validate_path_params', parameters_type='path') + + def test_query_params_valid(self): + self.url_data_valid(method='validate_query_params', parameters_type='query') + + @staticmethod + def url_data_valid(method, parameters_type): + local_mock_spec = { + 'models': {}, + 'operations': { + 'getNetwork': { + 'method': 'get', + 'parameters': { + parameters_type: { + 'objId': { + 'required': True, + 'type': "string" + }, + 'p_integer': { + 'required': False, + 'type': "integer" + }, + 'p_boolean': { + 'required': False, + 'type': "boolean" + }, + 'p_number': { + 'required': False, + 'type': "number" + } + } + } + } + } + } + data = { + 'objId': "value1", + 'p_integer': 1, + 'p_boolean': True, + 'p_number': 2.3 + } + validator = FdmSwaggerValidator(local_mock_spec) + valid, rez = getattr(validator, method)('getNetwork', data) + assert valid + assert rez is None + + def test_path_params_required_fields(self): + self.url_data_required_fields(method='validate_path_params', parameters_type='path') + + def test_query_params_required_fields(self): + self.url_data_required_fields(method='validate_query_params', parameters_type='query') + + @staticmethod + def url_data_required_fields(method, parameters_type): + local_mock_spec = { + 'models': {}, + 'operations': { + 'getNetwork': { + 'method': 'get', + 'parameters': { + parameters_type: { + 'objId': { + 'required': True, + 'type': "string" + }, + 'parentId': { + 'required': True, + 'type': "string" + }, + 'someParam': { + 'required': False, + 'type': "string" + }, + 'p_integer': { + 'required': False, + 'type': "integer" + }, + 'p_boolean': { + 'required': False, + 'type': "boolean" + }, + 'p_number': { + 'required': False, + 'type': "number" + } + } + } + } + } + } + validator = FdmSwaggerValidator(local_mock_spec) + valid, rez = getattr(validator, method)('getNetwork', None) + assert not valid + assert sort_validator_rez({ + 'required': ['objId', 'parentId'] + }) == sort_validator_rez(rez) + valid, rez = getattr(validator, method)('getNetwork', {}) + assert not valid + assert sort_validator_rez({ + 'required': ['objId', 'parentId'] + }) == sort_validator_rez(rez) + data = { + 'someParam': "test" + } + valid, rez = getattr(validator, method)('getNetwork', data) + assert not valid + assert sort_validator_rez({ + 'required': ['objId', 'parentId'] + }) == sort_validator_rez(rez) + + def test_path_params_invalid_params(self): + self.url_params_invalid_params(method='validate_path_params', parameters_type='path') + + def test_query_params_invalid_params(self): + self.url_params_invalid_params(method='validate_query_params', parameters_type='query') + + @staticmethod + def url_params_invalid_params(method, parameters_type): + local_mock_spec = { + 'models': {}, + 'operations': { + 'getNetwork': { + 'method': 'get', + 'parameters': { + parameters_type: { + 'objId': { + 'required': True, + 'type': "string" + }, + 'parentId': { + 'required': True, + 'type': "string" + }, + 'someParam': { + 'required': False, + 'type': "string" + }, + 'p_integer': { + 'required': False, + 'type': "integer" + }, + 'p_boolean': { + 'required': False, + 'type': "boolean" + }, + 'p_number': { + 'required': False, + 'type': "number" + } + } + } + } + } + } + validator = FdmSwaggerValidator(local_mock_spec) + data = { + 'objId': 1, + 'parentId': True, + 'someParam': [], + 'p_integer': 1.2, + 'p_boolean': 0, + 'p_number': False + } + valid, rez = getattr(validator, method)('getNetwork', data) + assert not valid + assert sort_validator_rez({ + 'invalid_type': [ + { + 'path': 'objId', + 'expected_type': 'string', + 'actually_value': 1 + }, + { + 'path': 'parentId', + 'expected_type': 'string', + 'actually_value': True + }, + { + 'path': 'someParam', + 'expected_type': 'string', + 'actually_value': [] + }, + { + 'path': 'p_integer', + 'expected_type': 'integer', + 'actually_value': 1.2 + }, + { + 'path': 'p_boolean', + 'expected_type': 'boolean', + 'actually_value': 0 + }, + { + 'path': 'p_number', + 'expected_type': 'number', + 'actually_value': False + } + ] + }) == sort_validator_rez(rez) + data = { + 'objId': {}, + 'parentId': 0, + 'someParam': 1.2, + 'p_integer': True, + 'p_boolean': 1, + 'p_number': True + } + valid, rez = getattr(validator, method)('getNetwork', data) + assert not valid + assert sort_validator_rez({ + 'invalid_type': [ + { + 'path': 'objId', + 'expected_type': 'string', + 'actually_value': {} + }, + { + 'path': 'parentId', + 'expected_type': 'string', + 'actually_value': 0 + }, + { + 'path': 'someParam', + 'expected_type': 'string', + 'actually_value': 1.2 + }, + { + 'path': 'p_integer', + 'expected_type': 'integer', + 'actually_value': True + }, + { + 'path': 'p_boolean', + 'expected_type': 'boolean', + 'actually_value': 1 + }, + { + 'path': 'p_number', + 'expected_type': 'number', + 'actually_value': True + } + ] + }) == sort_validator_rez(rez) + data = { + 'objId': {}, + 'parentId': 0, + 'someParam': 1.2, + 'p_integer': "1", + 'p_boolean': "", + 'p_number': "2.1" + } + valid, rez = getattr(validator, method)('getNetwork', data) + assert not valid + assert sort_validator_rez({ + 'invalid_type': [ + { + 'path': 'objId', + 'expected_type': 'string', + 'actually_value': {} + }, + { + 'path': 'parentId', + 'expected_type': 'string', + 'actually_value': 0 + }, + { + 'path': 'someParam', + 'expected_type': 'string', + 'actually_value': 1.2 + }, + { + 'path': 'p_boolean', + 'expected_type': 'boolean', + 'actually_value': "" + } + ] + }) == sort_validator_rez(rez) + + data = { + 'objId': "123", + 'parentId': "1", + 'someParam': None, + 'p_integer': None + } + valid, rez = getattr(validator, method)('getNetwork', data) + assert not valid + assert sort_validator_rez({ + 'invalid_type': [ + { + 'path': 'someParam', + 'expected_type': 'string', + 'actually_value': None + }, + { + 'path': 'p_integer', + 'expected_type': 'integer', + 'actually_value': None + } + ] + }) == sort_validator_rez(rez) + + def test_validate_path_params_method_with_empty_data(self): + self.validate_url_data_with_empty_data(method='validate_path_params', parameters_type='path') + + def test_validate_query_params_method_with_empty_data(self): + self.validate_url_data_with_empty_data(method='validate_query_params', parameters_type='query') + + def validate_url_data_with_empty_data(self, method, parameters_type): + local_mock_spec = { + 'models': {}, + 'operations': { + 'getNetwork': { + 'method': 'get', + 'parameters': { + parameters_type: { + 'objId': { + 'required': True, + 'type': "string" + } + } + } + } + } + } + validator = FdmSwaggerValidator(local_mock_spec) + valid, rez = getattr(validator, method)('getNetwork', None) + assert not valid + assert {'required': ['objId']} == rez + + self.check_illegal_argument_exception(lambda: getattr(validator, method)('getNetwork', ''), + "The params parameter must be a dict") + + self.check_illegal_argument_exception(lambda: getattr(validator, method)('getNetwork', []), + "The params parameter must be a dict") + + valid, rez = getattr(validator, method)('getNetwork', {}) + assert not valid + assert {'required': ['objId']} == rez + + self.check_illegal_argument_exception(lambda: getattr(validator, method)(None, {'name': 'test'}), + "The operation_name parameter must be a non-empty string") + + self.check_illegal_argument_exception(lambda: getattr(validator, method)('', {'name': 'test'}), + "The operation_name parameter must be a non-empty string") + + self.check_illegal_argument_exception(lambda: getattr(validator, method)([], {'name': 'test'}), + "The operation_name parameter must be a non-empty string") + + self.check_illegal_argument_exception(lambda: getattr(validator, method)({}, {'name': 'test'}), + "The operation_name parameter must be a non-empty string") + + self.check_illegal_argument_exception( + lambda: getattr(validator, method)('operation_does_not_exist', {'name': 'test'}), + "operation_does_not_exist operation does not support") + + def test_validate_data_method_with_empty_data(self): + validator = FdmSwaggerValidator(mock_data) + valid, rez = validator.validate_data('getNetworkObjectList', None) + assert not valid + assert sort_validator_rez({ + 'required': ['subType', 'type', 'value'] + }) == sort_validator_rez(rez) + + self.check_illegal_argument_exception(lambda: validator.validate_data('getNetworkObjectList', ''), + "The data parameter must be a dict") + + self.check_illegal_argument_exception(lambda: validator.validate_data('getNetworkObjectList', []), + "The data parameter must be a dict") + valid, rez = validator.validate_data('getNetworkObjectList', {}) + assert not valid + assert sort_validator_rez({ + 'required': ['subType', 'type', 'value'] + }) == sort_validator_rez(rez) + + self.check_illegal_argument_exception(lambda: validator.validate_data(None, {'name': 'test'}), + "The operation_name parameter must be a non-empty string") + + self.check_illegal_argument_exception(lambda: validator.validate_data('', {'name': 'test'}), + "The operation_name parameter must be a non-empty string") + + self.check_illegal_argument_exception(lambda: validator.validate_data([], {'name': 'test'}), + "The operation_name parameter must be a non-empty string") + + self.check_illegal_argument_exception(lambda: validator.validate_data({}, {'name': 'test'}), + "The operation_name parameter must be a non-empty string") + + self.check_illegal_argument_exception( + lambda: validator.validate_data('operation_does_not_exist', {'name': 'test'}), + "operation_does_not_exist operation does not support") + + def test_errors_for_required_fields(self): + data = { + 'name': 'test' + } + valid, rez = FdmSwaggerValidator(mock_data).validate_data('getNetworkObjectList', data) + assert not valid + assert sort_validator_rez({ + 'required': ['subType', 'type', 'value'] + }) == sort_validator_rez(rez) + + def test_errors_if_no_data_was_passed(self): + data = {} + valid, rez = FdmSwaggerValidator(mock_data).validate_data('getNetworkObjectList', data) + assert not valid + assert sort_validator_rez({ + 'required': ['subType', 'type', 'value'] + }) == sort_validator_rez(rez) + + def test_errors_if_one_required_field_is_empty(self): + data = { + 'subType': 'NETWORK', + 'value': '1.1.1.1' + } + valid, rez = FdmSwaggerValidator(mock_data).validate_data('getNetworkObjectList', data) + assert not valid + assert {'required': ['type']} == rez + + def test_types_of_required_fields_are_incorrect(self): + data = { + 'subType': True, + 'type': 1, + 'value': False + } + valid, rez = FdmSwaggerValidator(mock_data).validate_data('getNetworkObjectList', data) + assert not valid + assert sort_validator_rez({ + 'invalid_type': [ + { + 'path': 'subType', + 'expected_type': 'enum', + 'actually_value': True + }, + { + 'path': 'value', + 'expected_type': 'string', + 'actually_value': False + }, + { + 'path': 'type', + 'expected_type': 'string', + 'actually_value': 1 + } + ] + }) == sort_validator_rez(rez) + data = { + 'subType': {}, + 'type': [], + 'value': {} + } + valid, rez = FdmSwaggerValidator(mock_data).validate_data('getNetworkObjectList', data) + assert not valid + assert sort_validator_rez({ + 'invalid_type': [ + { + 'path': 'subType', + 'expected_type': 'enum', + 'actually_value': {} + }, + { + 'path': 'value', + 'expected_type': 'string', + 'actually_value': {} + }, + { + 'path': 'type', + 'expected_type': 'string', + 'actually_value': [] + } + ] + }) == sort_validator_rez(rez) + + def test_pass_only_required_fields(self): + data = { + 'subType': 'NETWORK', + 'type': 'networkobject', + 'value': '1.1.1.1' + } + valid, rez = FdmSwaggerValidator(mock_data).validate_data('getNetworkObjectList', data) + assert valid + assert rez is None + + def test_pass_only_required_fields_with_none_values(self): + data = { + 'subType': 'NETWORK', + 'type': 'networkobject', + 'value': None + } + valid, rez = FdmSwaggerValidator(mock_data).validate_data('getNetworkObjectList', data) + assert not valid + assert {'required': ['value']} == rez + + def test_pass_no_data_with_no_required_fields(self): + spec = copy.deepcopy(mock_data) + del spec['models']['NetworkObject']['required'] + + valid, rez = FdmSwaggerValidator(spec).validate_data('getNetworkObjectList', {}) + + assert valid + assert rez is None + + def test_pass_all_fields_with_correct_data(self): + data = { + 'id': 'id-di', + 'version': 'v', + 'name': 'test_name', + 'subType': 'NETWORK', + 'type': 'networkobject', + 'value': '1.1.1.1', + 'description': 'des', + 'isSystemDefined': False, + 'dnsResolution': 'IPV4_ONLY', + 'objects': [{ + 'type': 'port', + 'id': 'fs-sf' + }] + } + valid, rez = FdmSwaggerValidator(mock_data).validate_data('getNetworkObjectList', data) + assert valid + assert rez is None + + def test_array_data_is_not_correct(self): + data = { + 'name': 'test_name', + 'subType': 'NETWORK', + 'type': 'networkobject', + 'value': '1.1.1.1', + 'objects': [ + { + 'id': 'fs-sf' + }, + { + 'type': 'type' + }, + {}, + { + 'id': 1, + 'type': True + }, + [], + 'test' + ] + } + valid, rez = FdmSwaggerValidator(mock_data).validate_data('getNetworkObjectList', data) + assert not valid + assert sort_validator_rez({ + 'required': ['objects[0].type', 'objects[1].id', 'objects[2].id', 'objects[2].type'], + 'invalid_type': [ + { + 'path': 'objects[3].id', + 'expected_type': 'string', + 'actually_value': 1 + }, + { + 'path': 'objects[3].type', + 'expected_type': 'string', + 'actually_value': True + }, + { + 'path': 'objects[4]', + 'expected_type': 'object', + 'actually_value': [] + }, + { + 'path': 'objects[5]', + 'expected_type': 'object', + 'actually_value': 'test' + } + ] + }) == sort_validator_rez(rez) + + def test_simple_types(self): + local_mock_data = { + 'models': { + 'TestModel': { + 'type': 'object', + 'properties': { + 'f_string': {'type': 'string'}, + 'f_number': {'type': 'number'}, + 'f_boolean': {'type': 'boolean'}, + 'f_integer': {'type': 'integer'} + }, + 'required': [] + } + }, + 'operations': { + 'getdata': { + 'modelName': 'TestModel' + } + } + } + valid_data = { + "f_string": "test", + "f_number": 2.2, + "f_boolean": False, + "f_integer": 1 + } + + valid, rez = FdmSwaggerValidator(local_mock_data).validate_data('getdata', valid_data) + assert valid + assert rez is None + + valid_data = { + "f_string": "", + "f_number": 0, + "f_boolean": True, + "f_integer": 0 + } + + valid, rez = FdmSwaggerValidator(local_mock_data).validate_data('getdata', valid_data) + assert valid + assert rez is None + + valid_data = { + "f_string": "0", + "f_number": 100, + "f_boolean": True, + "f_integer": 2 + } + + valid, rez = FdmSwaggerValidator(local_mock_data).validate_data('getdata', valid_data) + assert valid + assert rez is None + + valid_data = { + "f_string": None, + "f_number": None, + "f_boolean": None, + "f_integer": None + } + + valid, rez = FdmSwaggerValidator(local_mock_data).validate_data('getdata', valid_data) + assert valid + assert rez is None + + def test_invalid_simple_types(self): + local_mock_data = { + 'models': { + 'TestModel': { + 'type': 'object', + 'properties': { + 'f_string': {'type': 'string'}, + 'f_number': {'type': 'number'}, + 'f_boolean': {'type': 'boolean'}, + 'f_integer': {'type': 'integer'} + }, + 'required': [] + } + }, + 'operations': { + 'getdata': { + 'modelName': 'TestModel' + } + } + } + invalid_data = { + "f_string": True, + "f_number": True, + "f_boolean": 1, + "f_integer": True + } + + valid, rez = FdmSwaggerValidator(local_mock_data).validate_data('getdata', invalid_data) + assert not valid + assert sort_validator_rez({ + 'invalid_type': [ + { + 'path': 'f_string', + 'expected_type': 'string', + 'actually_value': True + }, + { + 'path': 'f_number', + 'expected_type': 'number', + 'actually_value': True + }, + { + 'path': 'f_boolean', + 'expected_type': 'boolean', + 'actually_value': 1 + }, + { + 'path': 'f_integer', + 'expected_type': 'integer', + 'actually_value': True + } + ] + }) == sort_validator_rez(rez) + + invalid_data = { + "f_string": 1, + "f_number": False, + "f_boolean": 0, + "f_integer": "test" + } + + valid, rez = FdmSwaggerValidator(local_mock_data).validate_data('getdata', invalid_data) + assert not valid + assert sort_validator_rez({ + 'invalid_type': [ + { + 'path': 'f_string', + 'expected_type': 'string', + 'actually_value': 1 + }, + { + 'path': 'f_number', + 'expected_type': 'number', + 'actually_value': False + }, + { + 'path': 'f_boolean', + 'expected_type': 'boolean', + 'actually_value': 0 + }, + { + 'path': 'f_integer', + 'expected_type': 'integer', + 'actually_value': "test" + } + ] + }) == sort_validator_rez(rez) + + invalid_data = { + "f_string": False, + "f_number": "1", + "f_boolean": "", + "f_integer": "1.2" + } + + valid, rez = FdmSwaggerValidator(local_mock_data).validate_data('getdata', invalid_data) + assert not valid + assert sort_validator_rez({ + 'invalid_type': [ + { + 'path': 'f_string', + 'expected_type': 'string', + 'actually_value': False + }, + { + 'path': 'f_boolean', + 'expected_type': 'boolean', + 'actually_value': "" + }, + { + 'path': 'f_integer', + 'expected_type': 'integer', + 'actually_value': '1.2' + } + ] + }) == sort_validator_rez(rez) + + def test_nested_required_fields(self): + valid_data = { + 'nested_model': { + 'f_string': "test" + } + } + + valid, rez = FdmSwaggerValidator(nested_mock_data1).validate_data('getdata', valid_data) + assert valid + assert rez is None + + def test_invalid_nested_required_fields(self): + invalid_data = { + 'f_integer': 2 + } + + valid, rez = FdmSwaggerValidator(nested_mock_data1).validate_data('getdata', invalid_data) + assert not valid + assert {'required': ['nested_model']} == rez + + invalid_data = { + 'nested_model': { + 'f_number': 1.2 + } + } + + valid, rez = FdmSwaggerValidator(nested_mock_data1).validate_data('getdata', invalid_data) + assert not valid + assert {'required': ['nested_model.f_string']} == rez + + def test_invalid_type_in_nested_fields(self): + invalid_data = { + 'nested_model': { + "f_string": 1, + "f_number": "ds", + "f_boolean": 1.3, + "f_integer": True + } + } + + valid, rez = FdmSwaggerValidator(nested_mock_data1).validate_data('getdata', invalid_data) + assert not valid + assert sort_validator_rez({ + 'invalid_type': [ + { + 'path': 'nested_model.f_string', + 'expected_type': 'string', + 'actually_value': 1 + }, + { + 'path': 'nested_model.f_number', + 'expected_type': 'number', + 'actually_value': "ds" + }, + { + 'path': 'nested_model.f_boolean', + 'expected_type': 'boolean', + 'actually_value': 1.3 + }, + { + 'path': 'nested_model.f_integer', + 'expected_type': 'integer', + 'actually_value': True + } + ] + + }) == sort_validator_rez(rez) + + def test_few_levels_nested_fields(self): + local_mock_data = { + 'models': { + 'Model2': { + 'type': 'object', + 'required': ['ms', 'ts'], + 'properties': { + 'ms': {'type': 'array', + 'items': { + 'type': 'object', + '$ref': '#/definitions/ReferenceModel'}}, + 'ts': {'type': 'array', + 'items': { + 'type': 'object', + '$ref': '#/definitions/ReferenceModel'}} + } + }, + 'NetworkObjectType': {'type': 'string', 'enum': ['HOST', 'NETWORK', 'IPRANGE', 'FQDN']}, + 'Fragment': {'type': 'object', + 'required': ['type', 'objects', 'subType', 'object'], + 'properties': { + 'objects': {'type': 'array', + 'items': { + 'type': 'object', + '$ref': '#/definitions/ReferenceModel'}}, + 'object': {'type': 'object', + '$ref': '#/definitions/Model2'}, + 'subType': {'type': 'object', + '$ref': '#/definitions/NetworkObjectType'}, + 'type': {'type': 'string'}, + 'value': {'type': 'number'}, + 'name': {'type': 'string'}}}, + 'ReferenceModel': {'type': 'object', 'required': ['id', 'type'], + 'properties': { + 'id': {'type': 'string'}, + 'type': {'type': 'string'}, + 'version': {'type': 'string'}, + 'name': {'type': 'string'}}}, + 'model1': { + 'type': 'object', + 'properties': { + 'f_string': {'type': 'string'}, + 'f_number': {'type': 'number'}, + 'f_boolean': {'type': 'boolean'}, + 'f_integer': {'type': 'integer'}, + 'objects': {'type': 'array', + 'items': { + 'type': 'object', + '$ref': '#/definitions/ReferenceModel'}}, + 'fragments': {'type': 'array', + 'items': { + 'type': 'object', + '$ref': '#/definitions/Fragment'}} + }, + 'required': ['f_string', 'objects', 'fragments'] + }, + 'TestModel': { + 'type': 'object', + 'properties': { + 'nested_model': {'type': 'object', + '$ref': '#/definitions/model1'}, + 'f_integer': {'type': 'integer'} + }, + 'required': ['nested_model'] + } + }, + 'operations': { + 'getdata': { + 'modelName': 'TestModel' + } + } + } + + valid_data = { + "nested_model": { + 'objects': [{ + 'type': 't1', + 'id': 'id1' + }], + 'fragments': [{ + 'type': "test", + 'subType': 'NETWORK', + 'object': { + 'ts': [], + 'ms': [{ + 'type': "tt", + 'id': 'id' + }] + }, + 'objects': [{ + 'type': 't', + 'id': 'id' + }] + }], + 'f_string': '1' + } + } + + valid, rez = FdmSwaggerValidator(local_mock_data).validate_data('getdata', valid_data) + assert valid + assert rez is None + + valid_data = { + "nested_model": { + 'objects': [{ + 'type': 't1', + 'id': 'id1' + }], + 'fragments': [{ + 'type': "test", + 'subType': 'NETWORK', + 'object': { + 'ms': {} + }, + 'objects': [{ + 'type': 't', + 'id': 'id' + }] + }], + 'f_string': '1' + } + } + + valid, rez = FdmSwaggerValidator(local_mock_data).validate_data('getdata', valid_data) + assert not valid + assert sort_validator_rez({ + 'required': ['nested_model.fragments[0].object.ts'], + 'invalid_type': [{ + 'path': 'nested_model.fragments[0].object.ms', + 'expected_type': 'array', + 'actually_value': {} + }] + }) == sort_validator_rez(rez) + + valid_data = { + "nested_model": { + 'objects': [{ + 'type': 't1', + 'id': 'id1' + }], + 'fragments': [{ + 'type': "test", + 'subType': 'NETWORK', + 'object': [], + 'objects': {} + }], + 'f_string': '1' + } + } + + valid, rez = FdmSwaggerValidator(local_mock_data).validate_data('getdata', valid_data) + assert not valid + assert sort_validator_rez({ + 'invalid_type': [ + { + 'path': 'nested_model.fragments[0].objects', + 'expected_type': 'array', + 'actually_value': {} + }, + { + 'path': 'nested_model.fragments[0].object', + 'expected_type': 'object', + 'actually_value': []} + ]}) == sort_validator_rez(rez) diff --git a/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/test_fdm_swagger_with_real_data.py b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/test_fdm_swagger_with_real_data.py new file mode 100644 index 000000000..ac92c0632 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/test_fdm_swagger_with_real_data.py @@ -0,0 +1,78 @@ +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +import json +import os +import unittest + +from ansible_collections.community.network.plugins.module_utils.network.ftd.fdm_swagger_client import FdmSwaggerValidator, FdmSwaggerParser +DIR_PATH = os.path.dirname(os.path.realpath(__file__)) +TEST_DATA_FOLDER = os.path.join(DIR_PATH, 'test_data') + + +class TestFdmSwagger(unittest.TestCase): + + def setUp(self): + self.init_mock_data() + + def init_mock_data(self): + with open(os.path.join(TEST_DATA_FOLDER, 'ngfw_with_ex.json'), 'rb') as f: + self.base_data = json.loads(f.read().decode('utf-8')) + + def test_with_all_data(self): + fdm_data = FdmSwaggerParser().parse_spec(self.base_data) + validator = FdmSwaggerValidator(fdm_data) + models = fdm_data['models'] + operations = fdm_data['operations'] + + invalid = set({}) + for operation in operations: + model_name = operations[operation]['modelName'] + method = operations[operation]['method'] + if method != 'get' and model_name in models: + if 'example' in models[model_name]: + example = models[model_name]['example'] + try: + valid, rez = validator.validate_data(operation, example) + assert valid + except Exception: + invalid.add(model_name) + assert invalid == set(['TCPPortObject', + 'UDPPortObject', + 'ICMPv4PortObject', + 'ICMPv6PortObject', + 'StandardAccessList', + 'ExtendedAccessList', + 'ASPathList', + 'RouteMap', + 'StandardCommunityList', + 'ExpandedCommunityList', + 'IPV4PrefixList', + 'IPV6PrefixList', + 'PolicyList', + 'SyslogServer', + 'HAConfiguration', + 'TestIdentitySource']) + + def test_parse_all_data(self): + self.fdm_data = FdmSwaggerParser().parse_spec(self.base_data) + operations = self.fdm_data['operations'] + without_model_name = [] + expected_operations_counter = 0 + for key in self.base_data['paths']: + operation = self.base_data['paths'][key] + for dummy in operation: + expected_operations_counter += 1 + + for key in operations: + operation = operations[key] + if not operation['modelName']: + without_model_name.append(operation['url']) + + if operation['modelName'] == '_File' and 'download' not in operation['url']: + self.fail('File type can be defined for download operation only') + + assert sorted(['/api/fdm/v2/operational/deploy/{objId}', '/api/fdm/v2/action/upgrade']) == sorted( + without_model_name) + assert sorted(self.fdm_data['model_operations'][None].keys()) == sorted(['deleteDeployment', 'startUpgrade']) + assert expected_operations_counter == len(operations) diff --git a/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/test_upsert_functionality.py b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/test_upsert_functionality.py new file mode 100644 index 000000000..9d13d0636 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/ftd/test_upsert_functionality.py @@ -0,0 +1,887 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +import copy +import json +import unittest + +import pytest +from ansible_collections.community.network.tests.unit.compat import mock + +from ansible_collections.community.network.plugins.module_utils.network.ftd.common import FtdServerError, HTTPMethod, ResponseParams, FtdConfigurationError +from ansible_collections.community.network.plugins.module_utils.network.ftd.configuration import DUPLICATE_NAME_ERROR_MESSAGE, UNPROCESSABLE_ENTITY_STATUS, \ + MULTIPLE_DUPLICATES_FOUND_ERROR, BaseConfigurationResource, FtdInvalidOperationNameError, QueryParams, \ + ADD_OPERATION_NOT_SUPPORTED_ERROR, ParamName +from ansible_collections.community.network.plugins.module_utils.network.ftd.fdm_swagger_client import ValidationError + +ADD_RESPONSE = {'status': 'Object added'} +EDIT_RESPONSE = {'status': 'Object edited'} +DELETE_RESPONSE = {'status': 'Object deleted'} +GET_BY_FILTER_RESPONSE = [{'name': 'foo', 'description': 'bar'}] +ARBITRARY_RESPONSE = {'status': 'Arbitrary request sent'} + + +class TestUpsertOperationUnitTests(unittest.TestCase): + + @mock.patch.object(BaseConfigurationResource, '_fetch_system_info') + def setUp(self, fetch_system_info_mock): + self._conn = mock.MagicMock() + self._resource = BaseConfigurationResource(self._conn) + fetch_system_info_mock.return_value = { + 'databaseInfo': { + 'buildVersion': '6.3.0' + } + } + + def test_get_operation_name(self): + operation_a = mock.MagicMock() + operation_b = mock.MagicMock() + + def checker_wrapper(expected_object): + def checker(obj, *args, **kwargs): + return obj == expected_object + + return checker + + operations = { + operation_a: "spec", + operation_b: "spec" + } + + assert operation_a == self._resource._get_operation_name(checker_wrapper(operation_a), operations) + assert operation_b == self._resource._get_operation_name(checker_wrapper(operation_b), operations) + assert self._resource._get_operation_name(checker_wrapper(None), operations) is None + + @mock.patch.object(BaseConfigurationResource, "_get_operation_name") + @mock.patch.object(BaseConfigurationResource, "add_object") + def test_add_upserted_object(self, add_object_mock, get_operation_mock): + model_operations = mock.MagicMock() + params = mock.MagicMock() + add_op_name = get_operation_mock.return_value + + assert add_object_mock.return_value == self._resource._add_upserted_object(model_operations, params) + + get_operation_mock.assert_called_once_with( + self._resource._operation_checker.is_add_operation, + model_operations) + add_object_mock.assert_called_once_with(add_op_name, params) + + @mock.patch.object(BaseConfigurationResource, "_get_operation_name") + @mock.patch.object(BaseConfigurationResource, "add_object") + def test_add_upserted_object_with_no_add_operation(self, add_object_mock, get_operation_mock): + model_operations = mock.MagicMock() + get_operation_mock.return_value = None + + with pytest.raises(FtdConfigurationError) as exc_info: + self._resource._add_upserted_object(model_operations, mock.MagicMock()) + assert ADD_OPERATION_NOT_SUPPORTED_ERROR in str(exc_info.value) + + get_operation_mock.assert_called_once_with(self._resource._operation_checker.is_add_operation, model_operations) + add_object_mock.assert_not_called() + + @mock.patch.object(BaseConfigurationResource, "_get_operation_name") + @mock.patch.object(BaseConfigurationResource, "edit_object") + @mock.patch('ansible_collections.community.network.plugins.module_utils.network.ftd.configuration.copy_identity_properties') + @mock.patch('ansible_collections.community.network.plugins.module_utils.network.ftd.configuration._set_default') + def test_edit_upserted_object(self, _set_default_mock, copy_properties_mock, edit_object_mock, get_operation_mock): + model_operations = mock.MagicMock() + existing_object = mock.MagicMock() + params = { + 'path_params': {}, + 'data': {} + } + + result = self._resource._edit_upserted_object(model_operations, existing_object, params) + + assert result == edit_object_mock.return_value + + _set_default_mock.assert_has_calls([ + mock.call(params, 'path_params', {}), + mock.call(params, 'data', {}) + ]) + get_operation_mock.assert_called_once_with( + self._resource._operation_checker.is_edit_operation, + model_operations + ) + copy_properties_mock.assert_called_once_with( + existing_object, + params['data'] + ) + edit_object_mock.assert_called_once_with( + get_operation_mock.return_value, + params + ) + + @mock.patch('ansible_collections.community.network.plugins.module_utils.network.ftd.configuration.OperationChecker.is_upsert_operation_supported') + @mock.patch.object(BaseConfigurationResource, "get_operation_specs_by_model_name") + @mock.patch.object(BaseConfigurationResource, "_find_object_matching_params") + @mock.patch.object(BaseConfigurationResource, "_add_upserted_object") + @mock.patch.object(BaseConfigurationResource, "_edit_upserted_object") + def test_upsert_object_successfully_added(self, edit_mock, add_mock, find_object, get_operation_mock, + is_upsert_supported_mock): + params = mock.MagicMock() + + is_upsert_supported_mock.return_value = True + find_object.return_value = None + + result = self._resource.upsert_object('upsertFoo', params) + + assert result == add_mock.return_value + self._conn.get_model_spec.assert_called_once_with('Foo') + is_upsert_supported_mock.assert_called_once_with(get_operation_mock.return_value) + get_operation_mock.assert_called_once_with('Foo') + find_object.assert_called_once_with('Foo', params) + add_mock.assert_called_once_with(get_operation_mock.return_value, params) + edit_mock.assert_not_called() + + @mock.patch('ansible_collections.community.network.plugins.module_utils.network.ftd.configuration.equal_objects') + @mock.patch('ansible_collections.community.network.plugins.module_utils.network.ftd.configuration.OperationChecker.is_upsert_operation_supported') + @mock.patch.object(BaseConfigurationResource, "get_operation_specs_by_model_name") + @mock.patch.object(BaseConfigurationResource, "_find_object_matching_params") + @mock.patch.object(BaseConfigurationResource, "_add_upserted_object") + @mock.patch.object(BaseConfigurationResource, "_edit_upserted_object") + def test_upsert_object_successfully_edited(self, edit_mock, add_mock, find_object, get_operation_mock, + is_upsert_supported_mock, equal_objects_mock): + params = mock.MagicMock() + existing_obj = mock.MagicMock() + + is_upsert_supported_mock.return_value = True + find_object.return_value = existing_obj + equal_objects_mock.return_value = False + + result = self._resource.upsert_object('upsertFoo', params) + + assert result == edit_mock.return_value + self._conn.get_model_spec.assert_called_once_with('Foo') + get_operation_mock.assert_called_once_with('Foo') + is_upsert_supported_mock.assert_called_once_with(get_operation_mock.return_value) + add_mock.assert_not_called() + equal_objects_mock.assert_called_once_with(existing_obj, params[ParamName.DATA]) + edit_mock.assert_called_once_with(get_operation_mock.return_value, existing_obj, params) + + @mock.patch('ansible_collections.community.network.plugins.module_utils.network.ftd.configuration.equal_objects') + @mock.patch('ansible_collections.community.network.plugins.module_utils.network.ftd.configuration.OperationChecker.is_upsert_operation_supported') + @mock.patch.object(BaseConfigurationResource, "get_operation_specs_by_model_name") + @mock.patch.object(BaseConfigurationResource, "_find_object_matching_params") + @mock.patch.object(BaseConfigurationResource, "_add_upserted_object") + @mock.patch.object(BaseConfigurationResource, "_edit_upserted_object") + def test_upsert_object_returned_without_modifications(self, edit_mock, add_mock, find_object, get_operation_mock, + is_upsert_supported_mock, equal_objects_mock): + params = mock.MagicMock() + existing_obj = mock.MagicMock() + + is_upsert_supported_mock.return_value = True + find_object.return_value = existing_obj + equal_objects_mock.return_value = True + + result = self._resource.upsert_object('upsertFoo', params) + + assert result == existing_obj + self._conn.get_model_spec.assert_called_once_with('Foo') + get_operation_mock.assert_called_once_with('Foo') + is_upsert_supported_mock.assert_called_once_with(get_operation_mock.return_value) + add_mock.assert_not_called() + equal_objects_mock.assert_called_once_with(existing_obj, params[ParamName.DATA]) + edit_mock.assert_not_called() + + @mock.patch('ansible_collections.community.network.plugins.module_utils.network.ftd.configuration.OperationChecker.is_upsert_operation_supported') + @mock.patch.object(BaseConfigurationResource, "get_operation_specs_by_model_name") + @mock.patch.object(BaseConfigurationResource, "_find_object_matching_params") + @mock.patch.object(BaseConfigurationResource, "_add_upserted_object") + @mock.patch.object(BaseConfigurationResource, "_edit_upserted_object") + def test_upsert_object_not_supported(self, edit_mock, add_mock, find_object, get_operation_mock, + is_upsert_supported_mock): + params = mock.MagicMock() + + is_upsert_supported_mock.return_value = False + + self.assertRaises( + FtdInvalidOperationNameError, + self._resource.upsert_object, 'upsertFoo', params + ) + + self._conn.get_model_spec.assert_called_once_with('Foo') + get_operation_mock.assert_called_once_with('Foo') + is_upsert_supported_mock.assert_called_once_with(get_operation_mock.return_value) + find_object.assert_not_called() + add_mock.assert_not_called() + edit_mock.assert_not_called() + + @mock.patch('ansible_collections.community.network.plugins.module_utils.network.ftd.configuration.OperationChecker.is_upsert_operation_supported') + @mock.patch.object(BaseConfigurationResource, "get_operation_specs_by_model_name") + @mock.patch.object(BaseConfigurationResource, "_find_object_matching_params") + @mock.patch.object(BaseConfigurationResource, "_add_upserted_object") + @mock.patch.object(BaseConfigurationResource, "_edit_upserted_object") + def test_upsert_object_when_model_not_supported(self, edit_mock, add_mock, find_object, get_operation_mock, + is_upsert_supported_mock): + params = mock.MagicMock() + self._conn.get_model_spec.return_value = None + + self.assertRaises( + FtdInvalidOperationNameError, + self._resource.upsert_object, 'upsertNonExisting', params + ) + + self._conn.get_model_spec.assert_called_once_with('NonExisting') + get_operation_mock.assert_not_called() + is_upsert_supported_mock.assert_not_called() + find_object.assert_not_called() + add_mock.assert_not_called() + edit_mock.assert_not_called() + + @mock.patch('ansible_collections.community.network.plugins.module_utils.network.ftd.configuration.equal_objects') + @mock.patch('ansible_collections.community.network.plugins.module_utils.network.ftd.configuration.OperationChecker.is_upsert_operation_supported') + @mock.patch.object(BaseConfigurationResource, "get_operation_specs_by_model_name") + @mock.patch.object(BaseConfigurationResource, "_find_object_matching_params") + @mock.patch.object(BaseConfigurationResource, "_add_upserted_object") + @mock.patch.object(BaseConfigurationResource, "_edit_upserted_object") + def test_upsert_object_with_fatal_error_during_edit(self, edit_mock, add_mock, find_object, get_operation_mock, + is_upsert_supported_mock, equal_objects_mock): + params = mock.MagicMock() + existing_obj = mock.MagicMock() + + is_upsert_supported_mock.return_value = True + find_object.return_value = existing_obj + equal_objects_mock.return_value = False + edit_mock.side_effect = FtdConfigurationError("Some object edit error") + + self.assertRaises( + FtdConfigurationError, + self._resource.upsert_object, 'upsertFoo', params + ) + + is_upsert_supported_mock.assert_called_once_with(get_operation_mock.return_value) + self._conn.get_model_spec.assert_called_once_with('Foo') + get_operation_mock.assert_called_once_with('Foo') + find_object.assert_called_once_with('Foo', params) + add_mock.assert_not_called() + edit_mock.assert_called_once_with(get_operation_mock.return_value, existing_obj, params) + + @mock.patch('ansible_collections.community.network.plugins.module_utils.network.ftd.configuration.OperationChecker.is_upsert_operation_supported') + @mock.patch.object(BaseConfigurationResource, "get_operation_specs_by_model_name") + @mock.patch.object(BaseConfigurationResource, "_find_object_matching_params") + @mock.patch.object(BaseConfigurationResource, "_add_upserted_object") + @mock.patch.object(BaseConfigurationResource, "_edit_upserted_object") + def test_upsert_object_with_fatal_error_during_add(self, edit_mock, add_mock, find_object, get_operation_mock, + is_upsert_supported_mock): + params = mock.MagicMock() + + is_upsert_supported_mock.return_value = True + find_object.return_value = None + + error = FtdConfigurationError("Obj duplication error") + add_mock.side_effect = error + + self.assertRaises( + FtdConfigurationError, + self._resource.upsert_object, 'upsertFoo', params + ) + + is_upsert_supported_mock.assert_called_once_with(get_operation_mock.return_value) + self._conn.get_model_spec.assert_called_once_with('Foo') + get_operation_mock.assert_called_once_with('Foo') + find_object.assert_called_once_with('Foo', params) + add_mock.assert_called_once_with(get_operation_mock.return_value, params) + edit_mock.assert_not_called() + + +# functional tests below +class TestUpsertOperationFunctionalTests(object): + + @pytest.fixture(autouse=True) + def connection_mock(self, mocker): + connection_class_mock = mocker.patch('ansible_collections.community.network.plugins.modules.ftd_configuration.Connection') + connection_instance = connection_class_mock.return_value + connection_instance.validate_data.return_value = True, None + connection_instance.validate_query_params.return_value = True, None + connection_instance.validate_path_params.return_value = True, None + return connection_instance + + def test_module_should_create_object_when_upsert_operation_and_object_does_not_exist(self, connection_mock): + url = '/test' + + operations = { + 'getObjectList': { + 'method': HTTPMethod.GET, + 'url': url, + 'modelName': 'Object', + 'returnMultipleItems': True}, + 'addObject': { + 'method': HTTPMethod.POST, + 'modelName': 'Object', + 'url': url}, + 'editObject': { + 'method': HTTPMethod.PUT, + 'modelName': 'Object', + 'url': '/test/{objId}'}, + 'otherObjectOperation': { + 'method': HTTPMethod.GET, + 'modelName': 'Object', + 'url': '/test/{objId}', + 'returnMultipleItems': False + } + } + + def get_operation_spec(name): + return operations[name] + + def request_handler(url_path=None, http_method=None, body_params=None, path_params=None, query_params=None): + if http_method == HTTPMethod.POST: + assert url_path == url + assert body_params == params['data'] + assert query_params == {} + assert path_params == params['path_params'] + return { + ResponseParams.SUCCESS: True, + ResponseParams.RESPONSE: ADD_RESPONSE + } + elif http_method == HTTPMethod.GET: + return { + ResponseParams.SUCCESS: True, + ResponseParams.RESPONSE: {'items': []} + } + else: + assert False + + connection_mock.get_operation_spec = get_operation_spec + + connection_mock.get_operation_specs_by_model_name.return_value = operations + connection_mock.send_request = request_handler + params = { + 'operation': 'upsertObject', + 'data': {'id': '123', 'name': 'testObject', 'type': 'object'}, + 'path_params': {'objId': '123'}, + 'register_as': 'test_var' + } + + result = self._resource_execute_operation(params, connection=connection_mock) + + assert ADD_RESPONSE == result + + def test_module_should_fail_when_no_model(self, connection_mock): + connection_mock.get_model_spec.return_value = None + params = { + 'operation': 'upsertObject', + 'data': {'id': '123', 'name': 'testObject', 'type': 'object'}, + 'path_params': {'objId': '123'}, + 'register_as': 'test_var' + } + + with pytest.raises(FtdInvalidOperationNameError) as exc_info: + self._resource_execute_operation(params, connection=connection_mock) + assert 'upsertObject' == exc_info.value.operation_name + + def test_module_should_fail_when_no_add_operation_and_no_object(self, connection_mock): + url = '/test' + + operations = { + 'getObjectList': { + 'method': HTTPMethod.GET, + 'url': url, + 'modelName': 'Object', + 'returnMultipleItems': True}, + 'editObject': { + 'method': HTTPMethod.PUT, + 'modelName': 'Object', + 'url': '/test/{objId}'}, + 'otherObjectOperation': { + 'method': HTTPMethod.GET, + 'modelName': 'Object', + 'url': '/test/{objId}', + 'returnMultipleItems': False + }} + + def get_operation_spec(name): + return operations[name] + + connection_mock.get_operation_spec = get_operation_spec + + connection_mock.get_operation_specs_by_model_name.return_value = operations + connection_mock.send_request.return_value = { + ResponseParams.SUCCESS: True, + ResponseParams.RESPONSE: {'items': []} + } + params = { + 'operation': 'upsertObject', + 'data': {'id': '123', 'name': 'testObject', 'type': 'object'}, + 'path_params': {'objId': '123'}, + 'register_as': 'test_var' + } + + with pytest.raises(FtdConfigurationError) as exc_info: + self._resource_execute_operation(params, connection=connection_mock) + assert ADD_OPERATION_NOT_SUPPORTED_ERROR in str(exc_info.value) + + # test when object exists but with different fields(except id) + def test_module_should_update_object_when_upsert_operation_and_object_exists(self, connection_mock): + url = '/test' + obj_id = '456' + version = 'test_version' + url_with_id_templ = '{0}/{1}'.format(url, '{objId}') + + new_value = '0000' + old_value = '1111' + params = { + 'operation': 'upsertObject', + 'data': {'name': 'testObject', 'value': new_value, 'type': 'object'}, + 'register_as': 'test_var' + } + + def request_handler(url_path=None, http_method=None, body_params=None, path_params=None, query_params=None): + if http_method == HTTPMethod.POST: + assert url_path == url + assert body_params == params['data'] + assert query_params == {} + assert path_params == {} + return { + ResponseParams.SUCCESS: False, + ResponseParams.RESPONSE: DUPLICATE_NAME_ERROR_MESSAGE, + ResponseParams.STATUS_CODE: UNPROCESSABLE_ENTITY_STATUS + } + elif http_method == HTTPMethod.GET: + is_get_list_req = url_path == url + is_get_req = url_path == url_with_id_templ + assert is_get_req or is_get_list_req + + if is_get_list_req: + assert body_params == {} + assert query_params == {QueryParams.FILTER: 'name:testObject', 'limit': 10, 'offset': 0} + assert path_params == {} + elif is_get_req: + assert body_params == {} + assert query_params == {} + assert path_params == {'objId': obj_id} + + return { + ResponseParams.SUCCESS: True, + ResponseParams.RESPONSE: { + 'items': [ + {'name': 'testObject', 'value': old_value, 'type': 'object', 'id': obj_id, + 'version': version} + ] + } + } + elif http_method == HTTPMethod.PUT: + assert url_path == url_with_id_templ + return { + ResponseParams.SUCCESS: True, + ResponseParams.RESPONSE: body_params + } + else: + assert False + + operations = { + 'getObjectList': {'method': HTTPMethod.GET, 'url': url, 'modelName': 'Object', 'returnMultipleItems': True}, + 'addObject': {'method': HTTPMethod.POST, 'modelName': 'Object', 'url': url}, + 'editObject': {'method': HTTPMethod.PUT, 'modelName': 'Object', 'url': url_with_id_templ}, + 'otherObjectOperation': { + 'method': HTTPMethod.GET, + 'modelName': 'Object', + 'url': url_with_id_templ, + 'returnMultipleItems': False} + } + + def get_operation_spec(name): + return operations[name] + + connection_mock.get_operation_spec = get_operation_spec + connection_mock.get_operation_specs_by_model_name.return_value = operations + + connection_mock.send_request = request_handler + expected_val = {'name': 'testObject', 'value': new_value, 'type': 'object', 'id': obj_id, 'version': version} + + result = self._resource_execute_operation(params, connection=connection_mock) + + assert expected_val == result + + # test when object exists and all fields have the same value + def test_module_should_not_update_object_when_upsert_operation_and_object_exists_with_the_same_fields( + self, connection_mock): + url = '/test' + url_with_id_templ = '{0}/{1}'.format(url, '{objId}') + + params = { + 'operation': 'upsertObject', + 'data': {'name': 'testObject', 'value': '3333', 'type': 'object'}, + 'register_as': 'test_var' + } + + expected_val = copy.deepcopy(params['data']) + expected_val['version'] = 'test_version' + expected_val['id'] = 'test_id' + + def request_handler(url_path=None, http_method=None, body_params=None, path_params=None, query_params=None): + if http_method == HTTPMethod.POST: + assert url_path == url + assert body_params == params['data'] + assert query_params == {} + assert path_params == {} + return { + ResponseParams.SUCCESS: False, + ResponseParams.RESPONSE: DUPLICATE_NAME_ERROR_MESSAGE, + ResponseParams.STATUS_CODE: UNPROCESSABLE_ENTITY_STATUS + } + elif http_method == HTTPMethod.GET: + assert url_path == url + assert body_params == {} + assert query_params == {QueryParams.FILTER: 'name:testObject', 'limit': 10, 'offset': 0} + assert path_params == {} + + return { + ResponseParams.SUCCESS: True, + ResponseParams.RESPONSE: { + 'items': [expected_val] + } + } + else: + assert False + + operations = { + 'getObjectList': {'method': HTTPMethod.GET, 'modelName': 'Object', 'url': url, 'returnMultipleItems': True}, + 'addObject': {'method': HTTPMethod.POST, 'modelName': 'Object', 'url': url}, + 'editObject': {'method': HTTPMethod.PUT, 'modelName': 'Object', 'url': url_with_id_templ}, + 'otherObjectOperation': { + 'method': HTTPMethod.GET, + 'modelName': 'Object', + 'url': url_with_id_templ, + 'returnMultipleItems': False} + } + + def get_operation_spec(name): + return operations[name] + + connection_mock.get_operation_spec = get_operation_spec + connection_mock.get_operation_specs_by_model_name.return_value = operations + connection_mock.send_request = request_handler + + result = self._resource_execute_operation(params, connection=connection_mock) + + assert expected_val == result + + def test_module_should_fail_when_upsert_operation_is_not_supported(self, connection_mock): + connection_mock.get_operation_specs_by_model_name.return_value = { + 'addObject': {'method': HTTPMethod.POST, 'modelName': 'Object', 'url': '/test'}, + 'editObject': {'method': HTTPMethod.PUT, 'modelName': 'Object', 'url': '/test/{objId}'}, + 'otherObjectOperation': { + 'method': HTTPMethod.GET, + 'modelName': 'Object', + 'url': '/test/{objId}', + 'returnMultipleItems': False} + } + operation_name = 'upsertObject' + params = { + 'operation': operation_name, + 'data': {'id': '123', 'name': 'testObject', 'type': 'object'}, + 'path_params': {'objId': '123'}, + 'register_as': 'test_var' + } + + result = self._resource_execute_operation_with_expected_failure( + expected_exception_class=FtdInvalidOperationNameError, + params=params, connection=connection_mock) + + connection_mock.send_request.assert_not_called() + assert operation_name == result.operation_name + + # when create operation raised FtdConfigurationError exception without id and version + def test_module_should_fail_when_upsert_operation_and_failed_create_without_id_and_version(self, connection_mock): + url = '/test' + url_with_id_templ = '{0}/{1}'.format(url, '{objId}') + + params = { + 'operation': 'upsertObject', + 'data': {'name': 'testObject', 'value': '3333', 'type': 'object'}, + 'register_as': 'test_var' + } + + def request_handler(url_path=None, http_method=None, body_params=None, path_params=None, query_params=None): + if http_method == HTTPMethod.POST: + assert url_path == url + assert body_params == params['data'] + assert query_params == {} + assert path_params == {} + return { + ResponseParams.SUCCESS: False, + ResponseParams.RESPONSE: DUPLICATE_NAME_ERROR_MESSAGE, + ResponseParams.STATUS_CODE: UNPROCESSABLE_ENTITY_STATUS + } + elif http_method == HTTPMethod.GET: + assert url_path == url + assert body_params == {} + assert query_params == {QueryParams.FILTER: 'name:testObject', 'limit': 10, 'offset': 0} + assert path_params == {} + + return { + ResponseParams.SUCCESS: True, + ResponseParams.RESPONSE: { + 'items': [] + } + } + else: + assert False + + operations = { + 'getObjectList': {'method': HTTPMethod.GET, 'modelName': 'Object', 'url': url, 'returnMultipleItems': True}, + 'addObject': {'method': HTTPMethod.POST, 'modelName': 'Object', 'url': url}, + 'editObject': {'method': HTTPMethod.PUT, 'modelName': 'Object', 'url': url_with_id_templ}, + 'otherObjectOperation': { + 'method': HTTPMethod.GET, + 'modelName': 'Object', + 'url': url_with_id_templ, + 'returnMultipleItems': False} + } + + def get_operation_spec(name): + return operations[name] + + connection_mock.get_operation_spec = get_operation_spec + connection_mock.get_operation_specs_by_model_name.return_value = operations + connection_mock.send_request = request_handler + + result = self._resource_execute_operation_with_expected_failure( + expected_exception_class=FtdServerError, + params=params, connection=connection_mock) + + assert result.code == 422 + assert result.response == 'Validation failed due to a duplicate name' + + def test_module_should_fail_when_upsert_operation_and_failed_update_operation(self, connection_mock): + url = '/test' + obj_id = '456' + version = 'test_version' + url_with_id_templ = '{0}/{1}'.format(url, '{objId}') + + error_code = 404 + + new_value = '0000' + old_value = '1111' + params = { + 'operation': 'upsertObject', + 'data': {'name': 'testObject', 'value': new_value, 'type': 'object'}, + 'register_as': 'test_var' + } + + error_msg = 'test error' + + def request_handler(url_path=None, http_method=None, body_params=None, path_params=None, query_params=None): + if http_method == HTTPMethod.POST: + assert url_path == url + assert body_params == params['data'] + assert query_params == {} + assert path_params == {} + return { + ResponseParams.SUCCESS: False, + ResponseParams.RESPONSE: DUPLICATE_NAME_ERROR_MESSAGE, + ResponseParams.STATUS_CODE: UNPROCESSABLE_ENTITY_STATUS + } + elif http_method == HTTPMethod.GET: + is_get_list_req = url_path == url + is_get_req = url_path == url_with_id_templ + assert is_get_req or is_get_list_req + + if is_get_list_req: + assert body_params == {} + assert query_params == {QueryParams.FILTER: 'name:testObject', 'limit': 10, 'offset': 0} + elif is_get_req: + assert body_params == {} + assert query_params == {} + assert path_params == {'objId': obj_id} + + return { + ResponseParams.SUCCESS: True, + ResponseParams.RESPONSE: { + 'items': [ + {'name': 'testObject', 'value': old_value, 'type': 'object', 'id': obj_id, + 'version': version} + ] + } + } + elif http_method == HTTPMethod.PUT: + assert url_path == url_with_id_templ + raise FtdServerError(error_msg, error_code) + else: + assert False + + operations = { + 'getObjectList': {'method': HTTPMethod.GET, 'modelName': 'Object', 'url': url, 'returnMultipleItems': True}, + 'addObject': {'method': HTTPMethod.POST, 'modelName': 'Object', 'url': url}, + 'editObject': {'method': HTTPMethod.PUT, 'modelName': 'Object', 'url': url_with_id_templ}, + 'otherObjectOperation': { + 'method': HTTPMethod.GET, + 'modelName': 'Object', + 'url': url_with_id_templ, + 'returnMultipleItems': False} + } + + def get_operation_spec(name): + return operations[name] + + connection_mock.get_operation_spec = get_operation_spec + connection_mock.get_operation_specs_by_model_name.return_value = operations + connection_mock.send_request = request_handler + + result = self._resource_execute_operation_with_expected_failure( + expected_exception_class=FtdServerError, + params=params, connection=connection_mock) + + assert result.code == error_code + assert result.response == error_msg + + def test_module_should_fail_when_upsert_operation_and_invalid_data_for_create_operation(self, connection_mock): + new_value = '0000' + params = { + 'operation': 'upsertObject', + 'data': {'name': 'testObject', 'value': new_value, 'type': 'object'}, + 'register_as': 'test_var' + } + + connection_mock.send_request.assert_not_called() + + operations = { + 'getObjectList': { + 'method': HTTPMethod.GET, + 'modelName': 'Object', + 'url': 'sd', + 'returnMultipleItems': True}, + 'addObject': {'method': HTTPMethod.POST, 'modelName': 'Object', 'url': 'sdf'}, + 'editObject': {'method': HTTPMethod.PUT, 'modelName': 'Object', 'url': 'sadf'}, + 'otherObjectOperation': { + 'method': HTTPMethod.GET, + 'modelName': 'Object', + 'url': 'sdfs', + 'returnMultipleItems': False} + } + + def get_operation_spec(name): + return operations[name] + + connection_mock.get_operation_spec = get_operation_spec + connection_mock.get_operation_specs_by_model_name.return_value = operations + + report = { + 'required': ['objects[0].type'], + 'invalid_type': [ + { + 'path': 'objects[3].id', + 'expected_type': 'string', + 'actually_value': 1 + } + ] + } + connection_mock.validate_data.return_value = (False, json.dumps(report, sort_keys=True, indent=4)) + key = 'Invalid data provided' + + result = self._resource_execute_operation_with_expected_failure( + expected_exception_class=ValidationError, + params=params, connection=connection_mock) + + assert len(result.args) == 1 + assert key in result.args[0] + assert json.loads(result.args[0][key]) == { + 'invalid_type': [{'actually_value': 1, 'expected_type': 'string', 'path': 'objects[3].id'}], + 'required': ['objects[0].type'] + } + + def test_module_should_fail_when_upsert_operation_and_few_objects_found_by_filter(self, connection_mock): + url = '/test' + url_with_id_templ = '{0}/{1}'.format(url, '{objId}') + + sample_obj = {'name': 'testObject', 'value': '3333', 'type': 'object'} + params = { + 'operation': 'upsertObject', + 'data': sample_obj, + 'register_as': 'test_var' + } + + def request_handler(url_path=None, http_method=None, body_params=None, path_params=None, query_params=None): + if http_method == HTTPMethod.POST: + assert url_path == url + assert body_params == params['data'] + assert query_params == {} + assert path_params == {} + return { + ResponseParams.SUCCESS: False, + ResponseParams.RESPONSE: DUPLICATE_NAME_ERROR_MESSAGE, + ResponseParams.STATUS_CODE: UNPROCESSABLE_ENTITY_STATUS + } + elif http_method == HTTPMethod.GET: + assert url_path == url + assert body_params == {} + assert query_params == {QueryParams.FILTER: 'name:testObject', 'limit': 10, 'offset': 0} + assert path_params == {} + + return { + ResponseParams.SUCCESS: True, + ResponseParams.RESPONSE: { + 'items': [sample_obj, sample_obj] + } + } + else: + assert False + + operations = { + 'getObjectList': {'method': HTTPMethod.GET, 'modelName': 'Object', 'url': url, 'returnMultipleItems': True}, + 'addObject': {'method': HTTPMethod.POST, 'modelName': 'Object', 'url': url}, + 'editObject': {'method': HTTPMethod.PUT, 'modelName': 'Object', 'url': url_with_id_templ}, + 'otherObjectOperation': { + 'method': HTTPMethod.GET, + 'modelName': 'Object', + 'url': url_with_id_templ, + 'returnMultipleItems': False} + } + + def get_operation_spec(name): + return operations[name] + + connection_mock.get_operation_spec = get_operation_spec + connection_mock.get_operation_specs_by_model_name.return_value = operations + connection_mock.send_request = request_handler + + result = self._resource_execute_operation_with_expected_failure( + expected_exception_class=FtdConfigurationError, + params=params, connection=connection_mock) + + assert result.msg is MULTIPLE_DUPLICATES_FOUND_ERROR + assert result.obj is None + + @staticmethod + def _resource_execute_operation(params, connection): + + with mock.patch.object(BaseConfigurationResource, '_fetch_system_info') as fetch_system_info_mock: + fetch_system_info_mock.return_value = { + 'databaseInfo': { + 'buildVersion': '6.3.0' + } + } + resource = BaseConfigurationResource(connection) + op_name = params['operation'] + + resp = resource.execute_operation(op_name, params) + + return resp + + def _resource_execute_operation_with_expected_failure(self, expected_exception_class, params, connection): + with pytest.raises(expected_exception_class) as ex: + self._resource_execute_operation(params, connection) + # 'ex' here is the instance of '_pytest._code.code.ExceptionInfo' but not <expected_exception_class> + # actual instance of <expected_exception_class> is in the value attribute of 'ex'. That's why we should return + # 'ex.value' here, so it can be checked in a test later. + return ex.value diff --git a/ansible_collections/community/network/tests/unit/plugins/module_utils/network/netscaler/__init__.py b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/netscaler/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/netscaler/__init__.py diff --git a/ansible_collections/community/network/tests/unit/plugins/module_utils/network/netscaler/test_netscaler.py b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/netscaler/test_netscaler.py new file mode 100644 index 000000000..87c35a1b5 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/netscaler/test_netscaler.py @@ -0,0 +1,179 @@ + +# Copyright (c) 2017 Citrix Systems +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat import unittest +from ansible_collections.community.network.tests.unit.compat.mock import Mock + + +from ansible_collections.community.network.plugins.module_utils.network.netscaler.netscaler import (ConfigProxy, get_immutables_intersection, + ensure_feature_is_enabled, log, loglines) + + +class TestNetscalerConfigProxy(unittest.TestCase): + + def test_values_copied_to_actual(self): + actual = Mock() + client = Mock() + values = { + 'some_key': 'some_value', + } + ConfigProxy( + actual=actual, + client=client, + attribute_values_dict=values, + readwrite_attrs=['some_key'] + ) + self.assertEqual(actual.some_key, values['some_key'], msg='Failed to pass correct value from values dict') + + def test_none_values_not_copied_to_actual(self): + actual = Mock() + client = Mock() + actual.key_for_none = 'initial' + print('actual %s' % actual.key_for_none) + values = { + 'key_for_none': None, + } + print('value %s' % actual.key_for_none) + ConfigProxy( + actual=actual, + client=client, + attribute_values_dict=values, + readwrite_attrs=['key_for_none'] + ) + self.assertEqual(actual.key_for_none, 'initial') + + def test_missing_from_values_dict_not_copied_to_actual(self): + actual = Mock() + client = Mock() + values = { + 'irrelevant_key': 'irrelevant_value', + } + print('value %s' % actual.key_for_none) + ConfigProxy( + actual=actual, + client=client, + attribute_values_dict=values, + readwrite_attrs=['key_for_none'] + ) + print('none %s' % getattr(actual, 'key_for_none')) + self.assertIsInstance(actual.key_for_none, Mock) + + def test_bool_yes_no_transform(self): + actual = Mock() + client = Mock() + values = { + 'yes_key': True, + 'no_key': False, + } + transforms = { + 'yes_key': ['bool_yes_no'], + 'no_key': ['bool_yes_no'] + } + ConfigProxy( + actual=actual, + client=client, + attribute_values_dict=values, + readwrite_attrs=['yes_key', 'no_key'], + transforms=transforms, + ) + actual_values = [actual.yes_key, actual.no_key] + self.assertListEqual(actual_values, ['YES', 'NO']) + + def test_bool_on_off_transform(self): + actual = Mock() + client = Mock() + values = { + 'on_key': True, + 'off_key': False, + } + transforms = { + 'on_key': ['bool_on_off'], + 'off_key': ['bool_on_off'] + } + ConfigProxy( + actual=actual, + client=client, + attribute_values_dict=values, + readwrite_attrs=['on_key', 'off_key'], + transforms=transforms, + ) + actual_values = [actual.on_key, actual.off_key] + self.assertListEqual(actual_values, ['ON', 'OFF']) + + def test_callable_transform(self): + actual = Mock() + client = Mock() + values = { + 'transform_key': 'hello', + 'transform_chain': 'hello', + } + transforms = { + 'transform_key': [lambda v: v.upper()], + 'transform_chain': [lambda v: v.upper(), lambda v: v[:4]] + } + ConfigProxy( + actual=actual, + client=client, + attribute_values_dict=values, + readwrite_attrs=['transform_key', 'transform_chain'], + transforms=transforms, + ) + actual_values = [actual.transform_key, actual.transform_chain] + self.assertListEqual(actual_values, ['HELLO', 'HELL']) + + +class TestNetscalerModuleUtils(unittest.TestCase): + + def test_immutables_intersection(self): + actual = Mock() + client = Mock() + values = { + 'mutable_key': 'some value', + 'immutable_key': 'some other value', + } + proxy = ConfigProxy( + actual=actual, + client=client, + attribute_values_dict=values, + readwrite_attrs=['mutable_key', 'immutable_key'], + immutable_attrs=['immutable_key'], + ) + keys_to_check = ['mutable_key', 'immutable_key', 'non_existant_key'] + result = get_immutables_intersection(proxy, keys_to_check) + self.assertListEqual(result, ['immutable_key']) + + def test_ensure_feature_is_enabled(self): + client = Mock() + attrs = {'get_enabled_features.return_value': ['GSLB']} + client.configure_mock(**attrs) + ensure_feature_is_enabled(client, 'GSLB') + ensure_feature_is_enabled(client, 'LB') + client.enable_features.assert_called_once_with('LB') + + def test_log_function(self): + messages = [ + 'First message', + 'Second message', + ] + log(messages[0]) + log(messages[1]) + self.assertListEqual(messages, loglines, msg='Log messages not recorded correctly') diff --git a/ansible_collections/community/network/tests/unit/plugins/module_utils/network/nos/__init__.py b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/nos/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/nos/__init__.py diff --git a/ansible_collections/community/network/tests/unit/plugins/module_utils/network/nos/test_nos.py b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/nos/test_nos.py new file mode 100644 index 000000000..bf309481f --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/nos/test_nos.py @@ -0,0 +1,148 @@ +# +# (c) 2018 Extreme Networks Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import json + +from mock import MagicMock, patch, call + +from ansible_collections.community.network.tests.unit.compat import unittest +from ansible_collections.community.network.plugins.module_utils.network.nos import nos + + +class TestPluginCLIConfNOS(unittest.TestCase): + """ Test class for NOS CLI Conf Methods + """ + + def test_get_connection_established(self): + """ Test get_connection with established connection + """ + module = MagicMock() + connection = nos.get_connection(module) + self.assertEqual(connection, module.nos_connection) + + @patch('ansible_collections.community.network.plugins.module_utils.network.nos.nos.Connection') + def test_get_connection_new(self, connection): + """ Test get_connection with new connection + """ + socket_path = "little red riding hood" + module = MagicMock(spec=[ + 'fail_json', + ]) + module._socket_path = socket_path + + connection().get_capabilities.return_value = '{"network_api": "cliconf"}' + returned_connection = nos.get_connection(module) + connection.assert_called_with(socket_path) + self.assertEqual(returned_connection, module.nos_connection) + + @patch('ansible_collections.community.network.plugins.module_utils.network.nos.nos.Connection') + def test_get_connection_incorrect_network_api(self, connection): + """ Test get_connection with incorrect network_api response + """ + socket_path = "little red riding hood" + module = MagicMock(spec=[ + 'fail_json', + ]) + module._socket_path = socket_path + module.fail_json.side_effect = TypeError + + connection().get_capabilities.return_value = '{"network_api": "nope"}' + + with self.assertRaises(TypeError): + nos.get_connection(module) + + @patch('ansible_collections.community.network.plugins.module_utils.network.nos.nos.Connection') + def test_get_capabilities(self, connection): + """ Test get_capabilities + """ + socket_path = "little red riding hood" + module = MagicMock(spec=[ + 'fail_json', + ]) + module._socket_path = socket_path + module.fail_json.side_effect = TypeError + + capabilities = {'network_api': 'cliconf'} + + connection().get_capabilities.return_value = json.dumps(capabilities) + + capabilities_returned = nos.get_capabilities(module) + + self.assertEqual(capabilities, capabilities_returned) + + @patch('ansible_collections.community.network.plugins.module_utils.network.nos.nos.Connection') + def test_run_commands(self, connection): + """ Test get_capabilities + """ + module = MagicMock() + + commands = [ + 'hello', + 'dolly', + 'well hello', + 'dolly', + 'its so nice to have you back', + 'where you belong', + ] + + responses = [ + 'Dolly, never go away again1', + 'Dolly, never go away again2', + 'Dolly, never go away again3', + 'Dolly, never go away again4', + 'Dolly, never go away again5', + 'Dolly, never go away again6', + ] + + module.nos_connection.get.side_effect = responses + + run_command_responses = nos.run_commands(module, commands) + + calls = [] + + for command in commands: + calls.append(call( + command, + None, + None + )) + + module.nos_connection.get.assert_has_calls(calls) + + self.assertEqual(responses, run_command_responses) + + @patch('ansible_collections.community.network.plugins.module_utils.network.nos.nos.Connection') + def test_load_config(self, connection): + """ Test load_config + """ + module = MagicMock() + + commands = [ + 'what does it take', + 'to be', + 'number one?', + 'two is not a winner', + 'and three nobody remember', + ] + + nos.load_config(module, commands) + + module.nos_connection.edit_config.assert_called_once_with(commands) diff --git a/ansible_collections/community/network/tests/unit/plugins/module_utils/network/slxos/__init__.py b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/slxos/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/slxos/__init__.py diff --git a/ansible_collections/community/network/tests/unit/plugins/module_utils/network/slxos/test_slxos.py b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/slxos/test_slxos.py new file mode 100644 index 000000000..9ab7ae614 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/module_utils/network/slxos/test_slxos.py @@ -0,0 +1,148 @@ +# +# (c) 2018 Extreme Networks Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import json + +from mock import MagicMock, patch, call + +from ansible_collections.community.network.tests.unit.compat import unittest +from ansible_collections.community.network.plugins.module_utils.network.slxos import slxos + + +class TestPluginCLIConfSLXOS(unittest.TestCase): + """ Test class for SLX-OS CLI Conf Methods + """ + + def test_get_connection_established(self): + """ Test get_connection with established connection + """ + module = MagicMock() + connection = slxos.get_connection(module) + self.assertEqual(connection, module.slxos_connection) + + @patch('ansible_collections.community.network.plugins.module_utils.network.slxos.slxos.Connection') + def test_get_connection_new(self, connection): + """ Test get_connection with new connection + """ + socket_path = "little red riding hood" + module = MagicMock(spec=[ + 'fail_json', + ]) + module._socket_path = socket_path + + connection().get_capabilities.return_value = '{"network_api": "cliconf"}' + returned_connection = slxos.get_connection(module) + connection.assert_called_with(socket_path) + self.assertEqual(returned_connection, module.slxos_connection) + + @patch('ansible_collections.community.network.plugins.module_utils.network.slxos.slxos.Connection') + def test_get_connection_incorrect_network_api(self, connection): + """ Test get_connection with incorrect network_api response + """ + socket_path = "little red riding hood" + module = MagicMock(spec=[ + 'fail_json', + ]) + module._socket_path = socket_path + module.fail_json.side_effect = TypeError + + connection().get_capabilities.return_value = '{"network_api": "nope"}' + + with self.assertRaises(TypeError): + slxos.get_connection(module) + + @patch('ansible_collections.community.network.plugins.module_utils.network.slxos.slxos.Connection') + def test_get_capabilities(self, connection): + """ Test get_capabilities + """ + socket_path = "little red riding hood" + module = MagicMock(spec=[ + 'fail_json', + ]) + module._socket_path = socket_path + module.fail_json.side_effect = TypeError + + capabilities = {'network_api': 'cliconf'} + + connection().get_capabilities.return_value = json.dumps(capabilities) + + capabilities_returned = slxos.get_capabilities(module) + + self.assertEqual(capabilities, capabilities_returned) + + @patch('ansible_collections.community.network.plugins.module_utils.network.slxos.slxos.Connection') + def test_run_commands(self, connection): + """ Test get_capabilities + """ + module = MagicMock() + + commands = [ + 'hello', + 'dolly', + 'well hello', + 'dolly', + 'its so nice to have you back', + 'where you belong', + ] + + responses = [ + 'Dolly, never go away again1', + 'Dolly, never go away again2', + 'Dolly, never go away again3', + 'Dolly, never go away again4', + 'Dolly, never go away again5', + 'Dolly, never go away again6', + ] + + module.slxos_connection.get.side_effect = responses + + run_command_responses = slxos.run_commands(module, commands) + + calls = [] + + for command in commands: + calls.append(call( + command, + None, + None + )) + + module.slxos_connection.get.assert_has_calls(calls) + + self.assertEqual(responses, run_command_responses) + + @patch('ansible_collections.community.network.plugins.module_utils.network.slxos.slxos.Connection') + def test_load_config(self, connection): + """ Test load_config + """ + module = MagicMock() + + commands = [ + 'what does it take', + 'to be', + 'number one?', + 'two is not a winner', + 'and three nobody remember', + ] + + slxos.load_config(module, commands) + + module.slxos_connection.edit_config.assert_called_once_with(commands) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/__init__.py b/ansible_collections/community/network/tests/unit/plugins/modules/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/__init__.py diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/aireos_fixtures/aireos_config_config.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/aireos_fixtures/aireos_config_config.cfg new file mode 100644 index 000000000..883f36cf0 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/aireos_fixtures/aireos_config_config.cfg @@ -0,0 +1,9 @@ +sysname router + +interface create mtc-1 1 +interface address dynamic-interface mtc-1 10.33.20.4 255.255.255.0 10.33.20.1 +interface vlan mtc-1 1 + +interface create mtc-2 2 +interface address dynamic-interface mtc-2 10.33.26.4 255.255.255.0 10.33.26.1 +interface vlan mtc-2 2
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/aireos_fixtures/aireos_config_src.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/aireos_fixtures/aireos_config_src.cfg new file mode 100644 index 000000000..69db36b25 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/aireos_fixtures/aireos_config_src.cfg @@ -0,0 +1,9 @@ +sysname foo + +interface create mtc-1 1 +interface address dynamic-interface mtc-1 10.33.20.4 255.255.255.0 10.33.20.2 +interface vlan mtc-1 1 + +interface create mtc-2 2 +interface address dynamic-interface mtc-2 10.33.26.4 255.255.255.0 10.33.26.1 +interface vlan mtc-2 2
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/aireos_fixtures/show_sysinfo b/ansible_collections/community/network/tests/unit/plugins/modules/aireos_fixtures/show_sysinfo new file mode 100644 index 000000000..c30d8e534 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/aireos_fixtures/show_sysinfo @@ -0,0 +1,43 @@ +Manufacturer's Name.............................. Cisco Systems Inc. +Product Name..................................... Cisco Controller +Product Version.................................. 8.2.110.0 +RTOS Version..................................... 8.2.110.0 +Bootloader Version............................... 8.0.100.0 +Emergency Image Version.......................... 8.0.100.0 + +Build Type....................................... DATA + WPS + +System Name...................................... SOMEHOST +System Location.................................. USA +System Contact................................... SN:E228240;ASSET:LSMTCc1 +System ObjectID.................................. 1.3.6.1.4.1.9.1.1615 +Redundancy Mode.................................. Disabled +IP Address....................................... 10.10.10.10 +IPv6 Address..................................... :: +System Up Time................................... 328 days 7 hrs 54 mins 49 secs +System Timezone Location......................... (GMT) London, Lisbon, Dublin, Edinburgh +System Stats Realtime Interval................... 5 +System Stats Normal Interval..................... 180 + +Configured Country............................... US - United States +Operating Environment............................ Commercial (10 to 35 C) +Internal Temp Alarm Limits....................... 10 to 38 C +Internal Temperature............................. +18 C +Fan Status....................................... OK + + RAID Volume Status +Drive 0.......................................... Good +Drive 1.......................................... Good + +State of 802.11b Network......................... Enabled +State of 802.11a Network......................... Enabled +Number of WLANs.................................. 1 +Number of Active Clients......................... 0 + +Burned-in MAC Address............................ AA:AA:AA:AA:AA:AA +Power Supply 1................................... Present, OK +Power Supply 2................................... Present, OK +Maximum number of APs supported.................. 6000 +System Nas-Id.................................... +WLC MIC Certificate Types........................ SHA1/SHA2 +Licensing Type................................... RTU diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/aireos_module.py b/ansible_collections/community/network/tests/unit/plugins/modules/aireos_module.py new file mode 100644 index 000000000..db45227e8 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/aireos_module.py @@ -0,0 +1,87 @@ +# (c) 2016 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os +import json + +from ansible_collections.community.network.tests.unit.plugins.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase + +fixture_path = os.path.join(os.path.dirname(__file__), 'aireos_fixtures') +fixture_data = {} + + +def load_fixture(name): + path = os.path.join(fixture_path, name) + + if path in fixture_data: + return fixture_data[path] + + with open(path) as f: + data = f.read() + + try: + data = json.loads(data) + except Exception: + pass + + fixture_data[path] = data + return data + + +class TestCiscoWlcModule(ModuleTestCase): + + def execute_module(self, failed=False, changed=False, commands=None, sort=True, defaults=False): + + self.load_fixtures(commands) + + if failed: + result = self.failed() + self.assertTrue(result['failed'], result) + else: + result = self.changed(changed) + self.assertEqual(result['changed'], changed, result) + + if commands is not None: + if sort: + self.assertEqual(sorted(commands), sorted(result['commands']), result['commands']) + else: + self.assertEqual(commands, result['commands'], result['commands']) + + return result + + def failed(self): + with self.assertRaises(AnsibleFailJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertTrue(result['failed'], result) + return result + + def changed(self, changed=False): + with self.assertRaises(AnsibleExitJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertEqual(result['changed'], changed, result) + return result + + def load_fixtures(self, commands=None): + pass diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/apconos_fixtures/enable_ssh b/ansible_collections/community/network/tests/unit/plugins/modules/apconos_fixtures/enable_ssh new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/apconos_fixtures/enable_ssh diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/apconos_fixtures/show_version b/ansible_collections/community/network/tests/unit/plugins/modules/apconos_fixtures/show_version new file mode 100644 index 000000000..a541d9e97 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/apconos_fixtures/show_version @@ -0,0 +1,2 @@ +APCON +COMPONENT MODEL VERSION diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/apconos_module.py b/ansible_collections/community/network/tests/unit/plugins/modules/apconos_module.py new file mode 100644 index 000000000..a85607921 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/apconos_module.py @@ -0,0 +1,88 @@ +# (c) 2019 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os +import json + +from ansible_collections.community.network.tests.unit.plugins.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase + + +fixture_path = os.path.join(os.path.dirname(__file__), 'apconos_fixtures') +fixture_data = {} + + +def load_fixture(name): + path = os.path.join(fixture_path, name) + + if path in fixture_data: + return fixture_data[path] + + with open(path) as f: + data = f.read() + + try: + data = json.loads(data) + except Exception: + pass + + fixture_data[path] = data + return data + + +class TestApconosModule(ModuleTestCase): + + def execute_module(self, failed=False, changed=False, commands=None, sort=True, defaults=False): + + self.load_fixtures(commands) + + if failed: + result = self.failed() + self.assertTrue(result['failed'], result) + else: + result = self.changed(changed) + self.assertEqual(result['changed'], changed, result) + + if commands is not None: + if sort: + self.assertEqual(sorted(commands), sorted(result['commands']), result['commands']) + else: + self.assertEqual(commands, result['commands'], result['commands']) + + return result + + def failed(self): + with self.assertRaises(AnsibleFailJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertTrue(result['failed'], result) + return result + + def changed(self, changed=False): + with self.assertRaises(AnsibleExitJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertEqual(result['changed'], changed, result) + return result + + def load_fixtures(self, commands=None): + pass diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/aruba_fixtures/aruba_config_config.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/aruba_fixtures/aruba_config_config.cfg new file mode 100644 index 000000000..48cc6018d --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/aruba_fixtures/aruba_config_config.cfg @@ -0,0 +1,17 @@ +! +hostname router +! +interface GigabitEthernet0/0 + ip address 1.2.3.4 255.255.255.0 + description test string +! +interface GigabitEthernet0/1 + ip address 6.7.8.9 255.255.255.0 + description test string + shutdown +! +wlan ssid-profile "blah" + essid "blah" +! +ip access-list session blah + any any any permit diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/aruba_fixtures/aruba_config_defaults.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/aruba_fixtures/aruba_config_defaults.cfg new file mode 100644 index 000000000..e54645ab1 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/aruba_fixtures/aruba_config_defaults.cfg @@ -0,0 +1,13 @@ +! +hostname router +! +interface GigabitEthernet0/0 + ip address 1.2.3.4 255.255.255.0 + description test string + no shutdown +! +interface GigabitEthernet0/1 + ip address 6.7.8.9 255.255.255.0 + description test string + shutdown +! diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/aruba_fixtures/aruba_config_src.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/aruba_fixtures/aruba_config_src.cfg new file mode 100644 index 000000000..b3d8961a9 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/aruba_fixtures/aruba_config_src.cfg @@ -0,0 +1,11 @@ +! +hostname foo +! +interface GigabitEthernet0/0 + no ip address +! +interface GigabitEthernet0/1 + ip address 6.7.8.9 255.255.255.0 + description test string + shutdown +! diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/aruba_fixtures/show_version b/ansible_collections/community/network/tests/unit/plugins/modules/aruba_fixtures/show_version new file mode 100644 index 000000000..b75059c91 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/aruba_fixtures/show_version @@ -0,0 +1,17 @@ +Aruba Operating System Software. +ArubaOS (MODEL: Aruba7220-US), Version 6.4.3.10 +Website: http://www.arubanetworks.com +Copyright (c) 2002-2016, Aruba Networks, Inc. +Compiled on 2016-08-31 at 18:31:30 PDT (build 56305) by p4build + +ROM: System Bootstrap, Version CPBoot 1.2.1.0 (build 39183) +Built: 2013-07-26 04:57:47 +Built by: p4build@re_client_39183 + + +Switch uptime is 15 days 20 hours 51 minutes 51 seconds +Reboot Cause: User reboot (Intent:cause:register 78:86:50:2) +Supervisor Card +Processor (XLP432 Rev B1 (Secure Boot) , 1000 MHz) with 7370M bytes of memory. +32K bytes of non-volatile configuration memory. +7920M bytes of Supervisor Card system flash. diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/aruba_module.py b/ansible_collections/community/network/tests/unit/plugins/modules/aruba_module.py new file mode 100644 index 000000000..6a356b71b --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/aruba_module.py @@ -0,0 +1,88 @@ +# (c) 2016 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os +import json + +from ansible_collections.community.network.tests.unit.plugins.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase + + +fixture_path = os.path.join(os.path.dirname(__file__), 'aruba_fixtures') +fixture_data = {} + + +def load_fixture(name): + path = os.path.join(fixture_path, name) + + if path in fixture_data: + return fixture_data[path] + + with open(path) as f: + data = f.read() + + try: + data = json.loads(data) + except Exception: + pass + + fixture_data[path] = data + return data + + +class TestArubaModule(ModuleTestCase): + + def execute_module(self, failed=False, changed=False, commands=None, sort=True, defaults=False): + + self.load_fixtures(commands) + + if failed: + result = self.failed() + self.assertTrue(result['failed'], result) + else: + result = self.changed(changed) + self.assertEqual(result['changed'], changed, result) + + if commands is not None: + if sort: + self.assertEqual(sorted(commands), sorted(result['commands']), result['commands']) + else: + self.assertEqual(commands, result['commands'], result['commands']) + + return result + + def failed(self): + with self.assertRaises(AnsibleFailJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertTrue(result['failed'], result) + return result + + def changed(self, changed=False): + with self.assertRaises(AnsibleExitJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertEqual(result['changed'], changed, result) + return result + + def load_fixtures(self, commands=None): + pass diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/avi_fixtures/avi_user.json b/ansible_collections/community/network/tests/unit/plugins/modules/avi_fixtures/avi_user.json new file mode 100644 index 000000000..85522c324 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/avi_fixtures/avi_user.json @@ -0,0 +1,215 @@ +{ + "mock_create_res": { + "ansible_facts": { + "avi_api_context": { + "192.0.2.97:admin:None": { + "csrftoken": "qG23CCARDL3rh1KZ66XXPIeUYCUCOZ4q", + "session_id": "h5nynf9u9nompp5byai7vii2v8bbn9kd" + } + } + }, + "api_context": null, + "changed": true, + "invocation": { + "module_args": { + "access": [{ + "role_ref": "/api/role?name=Tenant-Admin", + "tenant_ref": "/api/tenant/********#********", + "all_tenants": false + }], + "api_context": null, + "api_version": "18.2.5", + "avi_api_update_method": "put", + "avi_credentials": null, + "avi_disable_session_cache_as_fact": false, + "avi_login_info": null, + "controller": "192.0.2.97", + "default_tenant_ref": "/api/tenant?name=********", + "email": "test@abc.com", + "is_active": true, + "is_superuser": true, + "name": "testuser", + "obj_password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", + "obj_username": "testuser", + "password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", + "state": "present", + "tenant": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", + "tenant_uuid": "", + "user_profile_ref": "/api/useraccountprofile?name=Default-User-Account-Profile", + "username": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER" + } + }, + "obj": { + "_last_modified": "1559736767460818", + "access": [{ + "all_tenants": false, + "role_ref": "https://192.0.2.97/api/tenant/********/role/role-ff851004-bd75-485b-87ec-2fe1d6a03fb9#Tenant-Admin", + "tenant_ref": "https://192.0.2.97/api/tenant/********#********" + }], + "default_tenant_ref": "https://192.0.2.97/api/tenant/********#********", + "email": "test@abc.com", + "full_name": "testuser", + "is_active": true, + "is_superuser": true, + "local": true, + "name": "testuser", + "obj_password": "<sensitive>", + "obj_username": "testuser", + "password": "<sensitive>", + "uid": 2004, + "url": "https://192.0.2.97/api/user/user-7087578f-4dfe-4e06-a153-495a91824a1d#testuser", + "user_profile_ref": "https://192.0.2.97/api/useraccountprofile/useraccountprofile-78063e7c-b443-48d6-b34c-5253ae1fcd2a#Default-User-Account-Profile", + "username": "testuser", + "uuid": "user-7087578f-4dfe-4e06-a153-495a91824a1d" + }, + "old_obj": null + }, + "mock_put_res": { + "obj": { + "username": "testuser", + "user_profile_ref": "https://192.0.2.97/api/useraccountprofile/useraccountprofile-546c5e88-6270-4ba1-9cfd-d0c755e68f47#Default-User-Account-Profile", + "name": "testuser", + "url": "https://192.0.2.97/api/user/user-ed10f328-bd92-4db2-bacd-0cf795fcbf8a#testuser", + "is_active": true, + "uuid": "user-ed10f328-bd92-4db2-bacd-0cf795fcbf8a", + "email": "newemail@abc.com", + "access": [{ + "tenant_ref": "https://192.0.2.97/api/tenant/tenant-57af0f3f-6f14-4657-8f32-9b289407752b#Test-Admin", + "all_tenants": false, + "role_ref": "https://192.0.2.97/api/tenant/********/role/role-b073ab0d-e1d0-4800-95ef-6ecf2c5ed7d1#Tenant-Admin" + }], + "is_superuser": true, + "obj_username": "testuser", + "full_name": "testuser", + "_last_modified": "1559802772203285", + "password": "<sensitive>", + "local": true, + "obj_password": "<sensitive>", + "default_tenant_ref": "https://192.0.2.97/api/tenant/********#********", + "uid": 2002 + }, + "changed": true, + "api_context": null, + "invocation": { + "module_args": { + "username": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", + "user_profile_ref": "/api/useraccountprofile?name=Default-User-Account-Profile", + "api_version": "18.2.5", + "name": "testuser", + "state": "present", + "is_active": true, + "api_context": null, + "avi_disable_session_cache_as_fact": false, + "controller": "192.0.2.97", + "avi_api_patch_op": null, + "access": [{ + "tenant_ref": "/api/tenant?name=Test-Admin", + "all_tenants": false, + "role_ref": "/api/role?name=Tenant-Admin" + }], + "is_superuser": true, + "avi_credentials": null, + "email": "newemail@abc.com", + "default_tenant_ref": "/api/tenant?name=********", + "obj_username": "testuser", + "password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", + "tenant_uuid": "", + "obj_password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", + "avi_api_update_method": "put", + "tenant": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER" + } + }, + "ansible_facts": { + "avi_api_context": { + "192.0.2.97:admin:None": { + "csrftoken": "Y7CET6zaIC9VZAzBqEW4cWo1N26jPg55", + "session_id": "364n7o0p3o5so63b9rzd47v6ehya6xg7" + } + } + }, + "old_obj": { + "username": "testuser", + "user_profile_ref": "https://192.0.2.97/api/useraccountprofile/useraccountprofile-546c5e88-6270-4ba1-9cfd-d0c755e68f47#Default-User-Account-Profile", + "name": "testuser", + "url": "https://192.0.2.97/api/user/user-ed10f328-bd92-4db2-bacd-0cf795fcbf8a#testuser", + "is_active": true, + "uuid": "user-ed10f328-bd92-4db2-bacd-0cf795fcbf8a", + "access": [{ + "tenant_ref": "https://192.0.2.97/api/tenant/tenant-57af0f3f-6f14-4657-8f32-9b289407752b#Test-Admin", + "all_tenants": false, + "role_ref": "https://192.0.2.97/api/tenant/********/role/role-b073ab0d-e1d0-4800-95ef-6ecf2c5ed7d1#Tenant-Admin" + }], + "is_superuser": true, + "full_name": "testuser", + "ui_property": "", + "password": "<sensitive>", + "local": true, + "email": "test@abc.com", + "default_tenant_ref": "https://192.0.2.97/api/tenant/********#********", + "uid": 2002 + } + }, + "mock_del_res": { + "ansible_facts": { + "avi_api_context": { + "192.0.2.97:admin:None": { + "csrftoken": "Vtkx9GeS2lsrld5yX83cmJqbZO3MAimb", + "session_id": "ix3t1dja8yzwb155de59viyn96hibn6b" + } + } + }, + "api_context": null, + "changed": true, + "invocation": { + "module_args": { + "access": [{ + "role_ref": "/api/role?name=Tenant-Admin", + "tenant_ref": "/api/tenant/********#********" + }], + "api_context": null, + "api_version": "18.2.5", + "avi_api_update_method": "put", + "avi_credentials": null, + "avi_disable_session_cache_as_fact": false, + "avi_login_info": null, + "controller": "192.0.2.97", + "default_tenant_ref": "/api/tenant?name=********", + "email": "test@abc.com", + "is_active": true, + "is_superuser": true, + "name": "testuser", + "obj_password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", + "obj_username": "testuser", + "password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", + "state": "absent", + "tenant": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", + "tenant_uuid": "", + "user_profile_ref": "/api/useraccountprofile?name=Default-User-Account-Profile", + "username": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER" + } + }, + "obj": null, + "old_obj": { + "_last_modified": "1559803346264869", + "access": [{ + "all_tenants": false, + "role_ref": "https://192.0.2.97/api/tenant/********/role/role-b073ab0d-e1d0-4800-95ef-6ecf2c5ed7d1#Tenant-Admin", + "tenant_ref": "https://192.0.2.97/api/tenant/tenant-57af0f3f-6f14-4657-8f32-9b289407752b#Test-Admin" + }], + "default_tenant_ref": "https://192.0.2.97/api/tenant/********#********", + "email": "newemail@abc.com", + "full_name": "testuser", + "is_active": true, + "is_superuser": true, + "local": true, + "name": "testuser", + "password": "<sensitive>", + "ui_property": "", + "uid": 2002, + "url": "https://192.0.2.97/api/user/user-ed10f328-bd92-4db2-bacd-0cf795fcbf8a#testuser", + "user_profile_ref": "https://192.0.2.97/api/useraccountprofile/useraccountprofile-546c5e88-6270-4ba1-9cfd-d0c755e68f47#Default-User-Account-Profile", + "username": "testuser", + "uuid": "user-ed10f328-bd92-4db2-bacd-0cf795fcbf8a" + } + } +} diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_is_is_instance/after.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_is_is_instance/after.txt new file mode 100644 index 000000000..b8ff89b61 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_is_is_instance/after.txt @@ -0,0 +1,11 @@ +<data> + <isiscomm xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0"> + <isSites> + <isSite> + <instanceId>100</instanceId> + <vpnName>_public_</vpnName> + <description>ISIS</description> + </isSite> + </isSites> + </isiscomm> + </data> diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_is_is_instance/before.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_is_is_instance/before.txt new file mode 100644 index 000000000..618bbf05f --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_is_is_instance/before.txt @@ -0,0 +1,11 @@ +<data> + <isiscomm xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0"> + <isSites> + <isSite> + <instanceId></instanceId> + <vpnName></vpnName> + <description></description> + </isSite> + </isSites> + </isiscomm> + </data> diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_is_is_interface/after_interface.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_is_is_interface/after_interface.txt new file mode 100644 index 000000000..f7aee10da --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_is_is_interface/after_interface.txt @@ -0,0 +1,26 @@ +<data> +<isiscomm> + <isSites> + <isSite> + <instanceId>100</instanceId> + <isCircuits> + <isCircuit> + <ifName></ifName> + <circuitLevelType>level_1</circuitLevelType> + <level1DisPriority>10</level1DisPriority> + <level2DisPriority>10</level2DisPriority> + <silentEnable>true</silentEnable> + <silentCost>true</silentCost> + <typeP2pEnable>true</typeP2pEnable> + <snpaCheck>true</snpaCheck> + <p2pNegotiationMode>2_way</p2pNegotiationMode> + <p2pPeerIPIgnore>true</p2pPeerIPIgnore> + <pPPOsicpCheckEnable>true</pPPOsicpCheckEnable> + <level1Cost>10</level1Cost> + <level2Cost>10</level2Cost> + </isCircuit> + </isCircuits> + </isSite> + </isSites> + </isiscomm> +</data>
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_is_is_interface/before_interface.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_is_is_interface/before_interface.txt new file mode 100644 index 000000000..0a07d5e7e --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_is_is_interface/before_interface.txt @@ -0,0 +1,26 @@ +<data> +<isiscomm> + <isSites> + <isSite> + <instanceId>100</instanceId> + <isCircuits> + <isCircuit> + <ifName></ifName> + <circuitLevelType></circuitLevelType> + <level1DisPriority></level1DisPriority> + <level2DisPriority></level2DisPriority> + <silentEnable></silentEnable> + <silentCost></silentCost> + <typeP2pEnable></typeP2pEnable> + <snpaCheck></snpaCheck> + <p2pNegotiationMode></p2pNegotiationMode> + <p2pPeerIPIgnore></p2pPeerIPIgnore> + <pPPOsicpCheckEnable></pPPOsicpCheckEnable> + <level1Cost></level1Cost> + <level2Cost></level2Cost> + </isCircuit> + </isCircuits> + </isSite> + </isSites> + </isiscomm> +</data> diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_is_is_view/after.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_is_is_view/after.txt new file mode 100644 index 000000000..8da6a62e9 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_is_is_view/after.txt @@ -0,0 +1,104 @@ +<data> + <isiscomm> + <isSites> + <isSite> + <instanceId>100</instanceId> + <vpnName>_public_</vpnName> + <description>ISIS</description> + <isLevel>level_1</isLevel> + <costStyle>narrow</costStyle> + <relaxSpfLimit>true</relaxSpfLimit> + <stdLevel1Cost>60</stdLevel1Cost> + <stdLevel2Cost>60</stdLevel2Cost> + <stdbandwidth>100</stdbandwidth> + <stdAutoCostEnable>true</stdAutoCostEnable> + <stdAutoCostEnableCompatible>true</stdAutoCostEnableCompatible> + <isNetEntitys> + <isNetEntity> + <netEntity>netentity</netEntity> + </isNetEntity> + </isNetEntitys> + <isSiteMTs> + <isSiteMT> + <addressFamily>afIpv4</addressFamily> + <mtId>0</mtId> + <bfdMinRx>100</bfdMinRx> + <bfdMinTx>100</bfdMinTx> + <bfdMultNum>10</bfdMultNum> + <maxLoadBalancing>32</maxLoadBalancing> + <isPreferences> + <isPreference> + <preferenceValue>100</preferenceValue> + <routePolicyName>route</routePolicyName> + </isPreference> + </isPreferences> + <isNextHopWeights> + <isNextHopWeight> + <ipAddress>1.1.1.1</ipAddress> + <weight>100</weight> + </isNextHopWeight> + </isNextHopWeights> + <isFilterImports> + <isFilterImport> + <aclNumOrName>3001</aclNumOrName> + <ipPrefix>ip</ipPrefix> + <routePolicyName>route</routePolicyName> + <policyType>level_1</policyType> + </isFilterImport> + </isFilterImports> + <isFilterExports> + <isFilterExport> + <protocol>ospf</protocol> + <processId>100</processId> + <policyType>level_1</policyType> + </isFilterExport> + </isFilterExports> + <isDefaultRoutes> + <isDefaultRoute> + <defaultMode>always</defaultMode> + <routePolicyName>mode</routePolicyName> + <cost>100</cost> + <tag>100</tag> + <levelType>level_1</levelType> + <avoidLearning>true</avoidLearning> + </isDefaultRoute> + </isDefaultRoutes> + <isImportRoutes> + <isImportRoute> + <protocol>import</protocol> + <processId>100</processId> + <costType>level_1</costType> + <cost>100</cost> + <tag>100</tag> + <policyType>level_1</policyType> + <routePolicyName>import</routePolicyName> + <levelType>level_1</levelType> + <inheritCost>100</inheritCost> + <permitIbgp>true</permitIbgp> + </isImportRoute> + </isImportRoutes> + <isLeakRouteLevel1ToLevel2s> + <isLeakRouteLevel1ToLevel2> + <tag>100</tag> + <routePolicyName>route</routePolicyName> + <aclNumOrName>3001</aclNumOrName> + <ipPrefix>ip</ipPrefix> + <leakEnableFlag>true</leakEnableFlag> + <allowFilter>true</allowFilter> + </isLeakRouteLevel1ToLevel2> + </isLeakRouteLevel1ToLevel2s> + <isLeakRouteLevel2ToLevel1s> + <isLeakRouteLevel2ToLevel1> + <tag>100</tag> + <routePolicyName>route</routePolicyName> + <aclNumOrName>3001</aclNumOrName> + <ipPrefix>ip</ipPrefix> + <allowFilter>true</allowFilter> + </isLeakRouteLevel2ToLevel1> + </isLeakRouteLevel2ToLevel1s> + </isSiteMT> + </isSiteMTs> + </isSite> + </isSites> + </isiscomm> +</data> diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_is_is_view/before.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_is_is_view/before.txt new file mode 100644 index 000000000..abdb8e790 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_is_is_view/before.txt @@ -0,0 +1,10 @@ +<data> + <isiscomm> + <isSites> + <isSite> + <instanceId>100</instanceId> + <vpnName>_public_</vpnName> + </isSite> + </isSites> + </isiscomm> +</data> diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lacp/ce_lacp_00.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lacp/ce_lacp_00.txt new file mode 100644 index 000000000..974c52c76 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lacp/ce_lacp_00.txt @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1024"> + <data> + <ifmtrunk xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0"> + <TrunkIfs> + <TrunkIf> + <ifName>Eth-Trunk10</ifName> + <lacpTrunk> + <isSupportPrmpt>false</isSupportPrmpt> + <rcvTimeoutType>Fast</rcvTimeoutType> + <fastTimeoutUserDefinedValue>3</fastTimeoutUserDefinedValue> + <selectPortStd>Speed</selectPortStd> + <promptDelay>30</promptDelay> + <maxActiveNum>1</maxActiveNum> + <collectMaxDelay>0</collectMaxDelay> + <mixRateEnable>false</mixRateEnable> + <dampStaFlapEn>false</dampStaFlapEn> + <dampUnexpMacEn>false</dampUnexpMacEn> + <trunkSysMac>11-22-33</trunkSysMac> + <trunkPortIdExt>false</trunkPortIdExt> + </lacpTrunk> + </TrunkIf> + </TrunkIfs> + </ifmtrunk> + </data> +</rpc-reply>
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lacp/ce_lacp_01.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lacp/ce_lacp_01.txt new file mode 100644 index 000000000..03b3f31e3 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lacp/ce_lacp_01.txt @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1024"> + <data> + <ifmtrunk xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0"> + <TrunkIfs> + <TrunkIf> + <ifName>Eth-Trunk10</ifName> + <lacpTrunk> + <isSupportPrmpt>true</isSupportPrmpt> + <rcvTimeoutType>Fast</rcvTimeoutType> + <fastTimeoutUserDefinedValue>10</fastTimeoutUserDefinedValue> + <selectPortStd>Speed</selectPortStd> + <promptDelay>130</promptDelay> + <maxActiveNum>13</maxActiveNum> + <collectMaxDelay>12</collectMaxDelay> + <mixRateEnable>true</mixRateEnable> + <dampStaFlapEn>true</dampStaFlapEn> + <dampUnexpMacEn>true</dampUnexpMacEn> + <trunkSysMac>0000-1111-2222</trunkSysMac> + <trunkPortIdExt>true</trunkPortIdExt> + </lacpTrunk> + </TrunkIf> + </TrunkIfs> + </ifmtrunk> + </data> +</rpc-reply>
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lacp/ce_lacp_10.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lacp/ce_lacp_10.txt new file mode 100644 index 000000000..6abbbbfbe --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lacp/ce_lacp_10.txt @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1024"> + <data> + <ifmtrunk xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0"> + <lacpSysInfo> + <priority>32768</priority> + </lacpSysInfo> + </ifmtrunk> + </data> +</rpc-reply>
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lacp/ce_lacp_11.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lacp/ce_lacp_11.txt new file mode 100644 index 000000000..22260aa1e --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lacp/ce_lacp_11.txt @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1024"> + <data> + <ifmtrunk xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0"> + <lacpSysInfo> + <priority>32769</priority> + </lacpSysInfo> + </ifmtrunk> + </data> +</rpc-reply>
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lldp/ce_lldpSysParameter_00.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lldp/ce_lldpSysParameter_00.txt new file mode 100644 index 000000000..051d71e45 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lldp/ce_lldpSysParameter_00.txt @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1024"> + <data> + <lldp xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0"> + <lldpSys> + <lldpSysParameter> + <messageTxInterval>30</messageTxInterval> + <messageTxHoldMultiplier>4</messageTxHoldMultiplier> + <reinitDelay>2</reinitDelay> + <txDelay>2</txDelay> + <notificationInterval>5</notificationInterval> + <fastMessageCount>4</fastMessageCount> + <mdnNotificationInterval>5</mdnNotificationInterval> + <mdnNotificationEnable>disabled</mdnNotificationEnable> + <configManAddr></configManAddr> + <bindifName></bindifName> + </lldpSysParameter> + </lldpSys> + </lldp> + </data> +</rpc-reply>
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lldp/ce_lldpSysParameter_01.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lldp/ce_lldpSysParameter_01.txt new file mode 100644 index 000000000..4fde2b5d0 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lldp/ce_lldpSysParameter_01.txt @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1024"> + <data> + <lldp xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0"> + <lldpSys> + <lldpSysParameter> + <messageTxInterval>8</messageTxInterval> + <messageTxHoldMultiplier>8</messageTxHoldMultiplier> + <reinitDelay>8</reinitDelay> + <txDelay>8</txDelay> + <notificationInterval>8</notificationInterval> + <fastMessageCount>8</fastMessageCount> + <mdnNotificationInterval>8</mdnNotificationInterval> + <mdnNotificationEnable>enabled</mdnNotificationEnable> + <configManAddr>1.1.1.1</configManAddr> + <bindifName>bind-name</bindifName> + </lldpSysParameter> + </lldpSys> + </lldp> + </data> +</rpc-reply>
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lldp/ce_lldp_global_00.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lldp/ce_lldp_global_00.txt new file mode 100644 index 000000000..b540a2102 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lldp/ce_lldp_global_00.txt @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1024"> + <data> + <lldp xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0"> + <lldpSys> + <lldpEnable>disabled</lldpEnable> + <mdnStatus>disabled</mdnStatus> + </lldpSys> + </lldp> + </data> +</rpc-reply>
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lldp/ce_lldp_global_01.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lldp/ce_lldp_global_01.txt new file mode 100644 index 000000000..62d122822 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lldp/ce_lldp_global_01.txt @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1024"> + <data> + <lldp xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0"> + <lldpSys> + <lldpEnable>enabled</lldpEnable> + <mdnStatus>rxOnly</mdnStatus> + </lldpSys> + </lldp> + </data> +</rpc-reply>
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lldp/result_ok.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lldp/result_ok.txt new file mode 100644 index 000000000..5e245cf5b --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lldp/result_ok.txt @@ -0,0 +1,3 @@ +<rpc-reply message-id="801" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" flow-id="98"> + <ok/> +</rpc-reply> diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lldp_interface/lldp_interface_changed.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lldp_interface/lldp_interface_changed.txt new file mode 100644 index 000000000..61052802f --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lldp_interface/lldp_interface_changed.txt @@ -0,0 +1,29 @@ +<data> + <lldp xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0"> + <lldpInterfaces> + <lldpInterface> + <ifName>10GE1/0/1</ifName> + <lldpAdminStatus>txAndRx</lldpAdminStatus> + <msgInterval operation="merge"> + <txInterval>8</txInterval> + </msgInterval> + <tlvTxEnable> + <manAddrTxEnable>true</manAddrTxEnable> + <portDescTxEnable>true</portDescTxEnable> + <sysCapTxEnable>true</sysCapTxEnable> + <sysDescTxEnable>true</sysDescTxEnable> + <sysNameTxEnable>true</sysNameTxEnable> + <portVlanTxEnable>true</portVlanTxEnable> + <protoVlanTxEnable>true</protoVlanTxEnable> + <txProtocolVlanId>112</txProtocolVlanId> + <vlanNameTxEnable>true</vlanNameTxEnable> + <txVlanNameId>32</txVlanNameId> + <linkAggreTxEnable>true</linkAggreTxEnable> + <macPhyTxEnable>true</macPhyTxEnable> + <maxFrameTxEnable>true</maxFrameTxEnable> + <eee>true</eee> + </tlvTxEnable> + </lldpInterface> + </lldpInterfaces> + </lldp> +</data> diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lldp_interface/lldp_interface_existing.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lldp_interface/lldp_interface_existing.txt new file mode 100644 index 000000000..3b6155fbd --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lldp_interface/lldp_interface_existing.txt @@ -0,0 +1,29 @@ +<data> + <lldp xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0"> + <lldpInterfaces> + <lldpInterface> + <ifName>10GE1/0/1</ifName> + <lldpAdminStatus>txOnly</lldpAdminStatus> + <msgInterval operation="merge"> + <txInterval>1</txInterval> + </msgInterval> + <tlvTxEnable> + <manAddrTxEnable>false</manAddrTxEnable> + <portDescTxEnable>false</portDescTxEnable> + <sysCapTxEnable>false</sysCapTxEnable> + <sysDescTxEnable>false</sysDescTxEnable> + <sysNameTxEnable>false</sysNameTxEnable> + <portVlanTxEnable>false</portVlanTxEnable> + <protoVlanTxEnable>false</protoVlanTxEnable> + <txProtocolVlanId></txProtocolVlanId> + <vlanNameTxEnable>false</vlanNameTxEnable> + <txVlanNameId></txVlanNameId> + <linkAggreTxEnable>false</linkAggreTxEnable> + <macPhyTxEnable>false</macPhyTxEnable> + <maxFrameTxEnable>false</maxFrameTxEnable> + <eee></eee> + </tlvTxEnable> + </lldpInterface> + </lldpInterfaces> + </lldp> +</data>
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lldp_interface/result_ok.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lldp_interface/result_ok.txt new file mode 100644 index 000000000..5e245cf5b --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_lldp_interface/result_ok.txt @@ -0,0 +1,3 @@ +<rpc-reply message-id="801" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" flow-id="98"> + <ok/> +</rpc-reply> diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_mdn_interface/after.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_mdn_interface/after.txt new file mode 100644 index 000000000..7cbc500df --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_mdn_interface/after.txt @@ -0,0 +1,14 @@ + <data> + <lldp> + <lldpSys> + <lldpEnable>enabled</lldpEnable> + <mdnStatus>enabled</mdnStatus> + </lldpSys> + <mdnInterfaces> + <mdnInterface> + <ifName>10GE1/0/1</ifName> + <mdnStatus>rxOnly</mdnStatus> + </mdnInterface> + </mdnInterfaces> + </lldp> +</data> diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_mdn_interface/before.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_mdn_interface/before.txt new file mode 100644 index 000000000..885dc9027 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_mdn_interface/before.txt @@ -0,0 +1,14 @@ + <data> + <lldp> + <lldpSys> + <lldpEnable>disabled</lldpEnable> + <mdnStatus>disabled</mdnStatus> + </lldpSys> + <mdnInterfaces> + <mdnInterface> + <ifName>10GE1/0/1</ifName> + <mdnStatus>disabled</mdnStatus> + </mdnInterface> + </mdnInterfaces> + </lldp> +</data> diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_multicast_global/after.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_multicast_global/after.txt new file mode 100644 index 000000000..b196031e7 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_multicast_global/after.txt @@ -0,0 +1,10 @@ + <data> + <mcastbase> + <mcastAfsEnables> + <mcastAfsEnable> + <vrfName>vpna</vrfName> + <addressFamily>ipv4unicast</addressFamily> + </mcastAfsEnable> + </mcastAfsEnables> + </mcastbase> + </data> diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_multicast_global/before.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_multicast_global/before.txt new file mode 100644 index 000000000..fe6c83957 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_multicast_global/before.txt @@ -0,0 +1 @@ + <data/>
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_multicast_igmp_enable/after.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_multicast_igmp_enable/after.txt new file mode 100644 index 000000000..3af30deda --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_multicast_igmp_enable/after.txt @@ -0,0 +1,22 @@ +<data> + <l2mc > + <l2McSnpgEnables> + <l2McSnpgEnable> + <addrFamily>ipv4unicast</addrFamily> + <sendQueryEnable>false</sendQueryEnable> + <sendQuerySrcIpAddr>192.168.0.1</sendQuerySrcIpAddr> + </l2McSnpgEnable> + </l2McSnpgEnables> + <vlan> + <l2McVlanCfgs> + <l2McVlanCfg> + <addrFamily>ipv4unicast</addrFamily> + <vlanId>1</vlanId> + <version>2</version> + <snoopingEnable>true</snoopingEnable> + <proxyEnable>true</proxyEnable> + </l2McVlanCfg> + </l2McVlanCfgs> + </vlan> + </l2mc> + </data> diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_multicast_igmp_enable/before.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_multicast_igmp_enable/before.txt new file mode 100644 index 000000000..fe6c83957 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_multicast_igmp_enable/before.txt @@ -0,0 +1 @@ + <data/>
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_static_route_bfd/result_ok.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_static_route_bfd/result_ok.txt new file mode 100644 index 000000000..5e245cf5b --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_static_route_bfd/result_ok.txt @@ -0,0 +1,3 @@ +<rpc-reply message-id="801" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" flow-id="98"> + <ok/> +</rpc-reply> diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_static_route_bfd/srBfdPara_1.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_static_route_bfd/srBfdPara_1.txt new file mode 100644 index 000000000..6e5e93009 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_static_route_bfd/srBfdPara_1.txt @@ -0,0 +1,18 @@ +<data> + <staticrt xmlns="http://www.huawei.com/netconf/vrp" format-version="1.0" content-version="1.0"> + <staticrtbase> + <srBfdParas> + <srBfdPara> + <afType>ipv4unicast</afType> + <ifName>Ethernet3/0/0</ifName> + <destVrfName>_public_</destVrfName> + <nexthop>192.168.2.2</nexthop> + <localAddress>192.168.2.1</localAddress> + <minRxInterval>50</minRxInterval> + <minTxInterval>50</minTxInterval> + <multiplier>3</multiplier> + </srBfdPara> + </srBfdParas> + </staticrtbase> + </staticrt> + </data> diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_static_route_bfd/srBfdPara_2.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_static_route_bfd/srBfdPara_2.txt new file mode 100644 index 000000000..6e5e93009 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_static_route_bfd/srBfdPara_2.txt @@ -0,0 +1,18 @@ +<data> + <staticrt xmlns="http://www.huawei.com/netconf/vrp" format-version="1.0" content-version="1.0"> + <staticrtbase> + <srBfdParas> + <srBfdPara> + <afType>ipv4unicast</afType> + <ifName>Ethernet3/0/0</ifName> + <destVrfName>_public_</destVrfName> + <nexthop>192.168.2.2</nexthop> + <localAddress>192.168.2.1</localAddress> + <minRxInterval>50</minRxInterval> + <minTxInterval>50</minTxInterval> + <multiplier>3</multiplier> + </srBfdPara> + </srBfdParas> + </staticrtbase> + </staticrt> + </data> diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_static_route_bfd/staticrtbase_1.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_static_route_bfd/staticrtbase_1.txt new file mode 100644 index 000000000..62800c80a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_static_route_bfd/staticrtbase_1.txt @@ -0,0 +1,18 @@ + <data> + <staticrt xmlns="http://www.huawei.com/netconf/vrp" format-version="1.0" content-version="1.0"> + <staticrtbase> + <srRoutes> + <srRoute> + <vrfName>_public_</vrfName> + <afType>ipv4unicast</afType> + <topologyName>base</topologyName> + <prefix>192.168.20.0</prefix> + <maskLength>24</maskLength> + <ifName/> + <destVrfName>_public_</destVrfName> + <nexthop>189.88.252.1</nexthop> + </srRoute> + </srRoutes> + </staticrtbase> + </staticrt> + </data> diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_static_route_bfd/staticrtbase_2.txt b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_static_route_bfd/staticrtbase_2.txt new file mode 100644 index 000000000..62800c80a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_fixtures/ce_static_route_bfd/staticrtbase_2.txt @@ -0,0 +1,18 @@ + <data> + <staticrt xmlns="http://www.huawei.com/netconf/vrp" format-version="1.0" content-version="1.0"> + <staticrtbase> + <srRoutes> + <srRoute> + <vrfName>_public_</vrfName> + <afType>ipv4unicast</afType> + <topologyName>base</topologyName> + <prefix>192.168.20.0</prefix> + <maskLength>24</maskLength> + <ifName/> + <destVrfName>_public_</destVrfName> + <nexthop>189.88.252.1</nexthop> + </srRoute> + </srRoutes> + </staticrtbase> + </staticrt> + </data> diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ce_module.py b/ansible_collections/community/network/tests/unit/plugins/modules/ce_module.py new file mode 100644 index 000000000..2be2d19a9 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ce_module.py @@ -0,0 +1,90 @@ +# Copyright (c) 2019 Red Hat +# +# This file is a part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os +import json +from ansible_collections.community.network.tests.unit.plugins.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase + + +fixture_path = os.path.join(os.path.dirname(__file__), 'ce_fixtures') +fixture_data = {} + + +def load_fixture(module_name, name, device=''): + path = os.path.join(fixture_path, module_name, device, name) + if not os.path.exists(path): + path = os.path.join(fixture_path, module_name, name) + + if path in fixture_data: + return fixture_data[path] + + with open(path) as f: + data = f.read() + + try: + data = json.loads(data) + except Exception: + pass + + fixture_data[path] = data + return data + + +class TestCloudEngineModule(ModuleTestCase): + + def execute_module(self, failed=False, changed=False, commands=None, sort=True, defaults=False): + + self.load_fixtures(commands) + + if failed: + result = self.failed() + self.assertTrue(result['failed'], result) + else: + result = self.changed(changed) + self.assertEqual(result['changed'], changed, result) + + if commands is not None: + if sort: + self.assertEqual(sorted(commands), sorted(result['commands']), result['commands']) + else: + self.assertEqual(commands, result['commands'], result['commands']) + + return result + + def failed(self): + with self.assertRaises(AnsibleFailJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertTrue(result['failed'], result) + return result + + def changed(self, changed=False): + with self.assertRaises(AnsibleExitJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertEqual(result['changed'], changed, result) + return result + + def load_fixtures(self, commands=None): + pass diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_banner_show_banner.txt b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_banner_show_banner.txt new file mode 100644 index 000000000..a134a3175 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_banner_show_banner.txt @@ -0,0 +1,3 @@ +this is a sample +mulitline banner +used for testing diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_bgp_config.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_bgp_config.cfg new file mode 100644 index 000000000..b62575663 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_bgp_config.cfg @@ -0,0 +1,24 @@ +! +router bgp 33 + router-id 1.2.3.4 + bestpath always-compare-med + cluster-id 1.2.3.4 + confederation identifier 333 + enforce-first-as + bgp as-local-count 33 + bestpath compare-confed-aspath + maxas-limit 333 + graceful-restart-helper + graceful-restart stalepath-time 333 + timers bgp 333 3333 + address-family ipv4 unicast + synchronization + network 0.0.0.0 backdoor + network 0.0.0.0 backdoor + dampening 13 233 333 15 33 + neighbor 10.241.107.40 remote-as 13 + bfd + address-family ipv4 unicast + next-hop-self +! + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_config_src.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_config_src.cfg new file mode 100644 index 000000000..f42d335d3 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_config_src.cfg @@ -0,0 +1,6 @@ +! +hostname foo +! +interface ethernet 1/13 + speed 10000 +! diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_linkagg_config.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_linkagg_config.cfg new file mode 100644 index 000000000..3daa8ecb3 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_linkagg_config.cfg @@ -0,0 +1,36 @@ +! +hostname ip10-241-107-39 +! +interface Ethernet1/33 + description anil + microburst-detection enable threshold 25 + lldp tlv-select max-frame-size + lacp port-priority 33 +! +interface Ethernet1/44 +! +interface Ethernet1/10 + no switchport + ip address 10.241.108.10/24 + vrrp 202 + address 10.241.108.20 + shutdown +! +interface Ethernet1/11 + no switchport + mtu 1402 + ip address 1.1.1.2/8 +! +interface port-channel20 +! +interface port-channel33 + description Hentammoo + load-interval counter 2 33 + switchport access vlan 33 + storm-control broadcast level 12.50 + mtu 66 + spanning-tree mst 33-35 cost 33 + spanning-tree bpduguard enable +! +interface Ethernet1/9 +! diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_logging_config.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_logging_config.cfg new file mode 100644 index 000000000..8f3d7d698 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_logging_config.cfg @@ -0,0 +1,9 @@ +! +logging logfile anil 4 size 10485760 +logging level vlan 4 +logging server 1.2.3.4 facility local0 +logging server 1.2.34.5 port 34 +logging server 1.2.3.5 4 facility local2 port 23 +logging server anil 5 +logging server tapas 4 facility local2 port 23 +! diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_static_route.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_static_route.cfg new file mode 100644 index 000000000..b42f20441 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_static_route.cfg @@ -0,0 +1,3 @@ +ip route 1.2.3.4/32 1.2.34.5 +ip route 10.241.106.0/24 Ethernet1/13 10.241.107.1 113 tag 1013 description anil +ip route 10.8.0.0/14 15.16.17.18 diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_system_config.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_system_config.cfg new file mode 100644 index 000000000..b1e07b7c1 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_system_config.cfg @@ -0,0 +1,11 @@ +hostname lenovo + +ip route 1.2.0.0/24 Null0 255 +ip route 1.2.3.4/31 Ethernet1/44 1.2.3.1 +ip route 1.2.3.4/32 1.2.34.5 +ip route 10.241.106.0/24 Ethernet1/13 10.241.107.1 113 tag 1013 description anil +ip route 10.241.106.4/32 1.2.3.5 tag 333 description anillll +ip route 10.241.106.4/32 1.3.56.7 +ip route 10.241.107.0/24 10.241.107.1 +ip route 10.241.107.1/32 Ethernet1/33 10.241.107.2 100 tag 111 description anil + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_user_config.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_user_config.cfg new file mode 100644 index 000000000..5a39ba3d8 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_user_config.cfg @@ -0,0 +1,8 @@ +User:admin + role: network-admin + +User:ansible + role: network-operator +no password set. Local login not allowed +this user is created by remote authentication +Remote login through RADIUS/TACACS+ is possible diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_vlag_config.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_vlag_config.cfg new file mode 100644 index 000000000..1f8daf37f --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_vlag_config.cfg @@ -0,0 +1,63 @@ + Global State : enabled + VRRP active/active mode : enabled + vLAG system MAC : 08:17:f4:c3:de:38 + ISL Information: + PCH Ifindex State Previous State + -------+-----------+-----------+--------------------------------- + 33 100033 Down Down + + Mis-Match Information: + Local Peer + -------------+---------------------------+----------------------- + Match Result : Mis-match Mis-match + Tier ID : 313 0 + System Type : G8272 + OS Version : 10.8.x.x 0.0.x.x + + Role Information: + Local Peer + -------------+---------------------------+----------------------- + Admin Role : Primary Unselected + Oper Role : Primary Unselected + Priority : 1313 0 + System MAC : a4:8c:db:33:bc:01 00:00:00:00:00:00 + + Consistency Checking Information: + State : enabled + Strict Mode : enabled + Final Result : pass + + FDB refresh Information: + FDB is doing refresh with below setting: + FDB refresh is configured + Bridge FDB aging timer is 1800 second(s) + + FDB synchronization Information: + FDB is NOT being synchronized. + + Auto Recovery Interval 266s (Finished) + + Startup Delay Interval 323s (Finished) + + Health Check Information: + Health check Peer IP Address: 1.2.3.4 + Health check Local IP Address: 0.0.0.0 + Health check retry interval: 133 seconds + Health check number of keepalive attempts: 13 + Health check keepalive interval: 131 seconds + Health check status: DOWN + + Peer Gateway State : enabled + + VLAG instance 1 : enabled + Instance Information + PCH ifindex State Previous State Cons Res + ----------+-----------+--------------+-----------------+-------- + 1003 101003 Down Down pass + + VLAG instance 33 : enabled + Instance Information + PCH ifindex State Previous State Cons Res + ----------+-----------+--------------+-----------------+-------- + 333 0 Down Down pass + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_vlan_config.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_vlan_config.cfg new file mode 100644 index 000000000..e1b750bea --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_vlan_config.cfg @@ -0,0 +1,77 @@ +Flags: +u - untagged egress traffic for this VLAN +t - tagged egress traffic for this VLAN + +d - auto-provisioned VLAN +h - static and auto-provisioned VLAN + +VLAN Name Status IPMC FLOOD Ports +======== ================================ ======= ========== =================== +1 default ACTIVE IPv6 + po1(u) + po2(u) + po11(u) + po12(u) + po13(u) + po14(u) + po15(u) + po17(u) + po20(u) + po100(u) + po1001(u) + po1002(u) + po1003(u) + po1004(u) + Ethernet1/2(u) + Ethernet1/3(u) + Ethernet1/4(u) + Ethernet1/9(u) + Ethernet1/10(u) + Ethernet1/11(u) + Ethernet1/14(u) + Ethernet1/15(u) + Ethernet1/16(u) + Ethernet1/17(u) + Ethernet1/18(u) + Ethernet1/19(u) + Ethernet1/20(u) + Ethernet1/21(u) + Ethernet1/22(u) + Ethernet1/23(u) + Ethernet1/24(u) + Ethernet1/25(u) + Ethernet1/26(u) + Ethernet1/27(u) + Ethernet1/28(u) + Ethernet1/29(u) + Ethernet1/30(u) + Ethernet1/31(u) + Ethernet1/32(u) + Ethernet1/33(u) + Ethernet1/34(u) + Ethernet1/35(u) + Ethernet1/36(u) + Ethernet1/37(u) + Ethernet1/38(u) + Ethernet1/39(u) + Ethernet1/40(u) + Ethernet1/41(u) + Ethernet1/42(u) + Ethernet1/43(u) + Ethernet1/44(u) + Ethernet1/45(u) + Ethernet1/46(u) + Ethernet1/47(u) + Ethernet1/48(u) + Ethernet1/49(u) + Ethernet1/50(u) + Ethernet1/51(u) + Ethernet1/52(u) + Ethernet1/53(u) + Ethernet1/54(u) +2 VLAN0002 ACTIVE IPv6 +3 VLAN0003 ACTIVE IPv4,IPv6 +5 VLAN0005 ACTIVE IPv4,IPv6 +12 VLAN0012 ACTIVE IPv4,IPv6 +13 anil ACTIVE IPv4,IPv6 + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_vrf_config.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_vrf_config.cfg new file mode 100644 index 000000000..78ce6c370 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/cnos_vrf_config.cfg @@ -0,0 +1,176 @@ +Maximum number of vrfs allowed: 65 +VRF default, FIB ID 0 +Router ID: 20.141.2.1 (automatic) +RD 0:0 +Interfaces: + Vlan1 + Vlan2 + Vlan13 + loopback0 + Ethernet1/5 + Ethernet1/6 + Ethernet1/7 + Ethernet1/8 + Ethernet1/9 + Ethernet1/11 + Ethernet1/12 + Ethernet1/13 + Ethernet1/44 + po1 + po2 + po3 + po4 + po6 + po7 + po8 + po9 + po10 + po11 + po12 + po13 + po14 + po15 + po16 + po17 + po18 + po19 + po21 + po22 + po23 + po24 + po25 + po26 + po27 + po28 + po29 + po30 + po31 + po32 + po33 + po34 + po35 + po36 + po37 + po38 + po39 + po40 + po41 + po42 + po43 + po44 + po45 + po46 + po47 + po48 + po49 + po50 + po51 + po52 + po53 + po54 + po55 + po56 + po57 + po58 + po59 + po60 + po61 + po62 + po63 + po64 + po65 + po66 + po67 + po1001 + po1002 + po1003 + po1004 + Ethernet1/1 + Ethernet1/2 + Ethernet1/3 + Ethernet1/4 + Ethernet1/10 + Ethernet1/14 + Ethernet1/15 + Ethernet1/16 + Ethernet1/17 + Ethernet1/18 + Ethernet1/19 + Ethernet1/20 + Ethernet1/21 + Ethernet1/22 + Ethernet1/23 + Ethernet1/24 + Ethernet1/25 + Ethernet1/26 + Ethernet1/27 + Ethernet1/28 + Ethernet1/29 + Ethernet1/30 + Ethernet1/31 + Ethernet1/32 + Ethernet1/34 + Ethernet1/35 + Ethernet1/36 + Ethernet1/37 + Ethernet1/38 + Ethernet1/39 + Ethernet1/40 + Ethernet1/41 + Ethernet1/42 + Ethernet1/43 + Ethernet1/45 + Ethernet1/46 + Ethernet1/47 + Ethernet1/48 + Ethernet1/49 + Ethernet1/50 + Ethernet1/51 + Ethernet1/52 + Ethernet1/53 + Ethernet1/54 +! +VRF management, FIB ID 1 +Router ID: 10.241.107.39 (automatic) +RD 0:0 +Interfaces: + mgmt0 +! +VRF test, FIB ID 2 +Router ID is not set +RD 1:201 +Interfaces: + Ethernet1/33 +! +VRF test1, FIB ID 3 +Router ID is not set +RD 1:202 +Interfaces: + loopback1 + loopback2 + loopback3 + loopback4 + loopback5 + loopback6 +! +VRF test2, FIB ID 4 +Router ID is not set +RD 0:0 +Interfaces: +! +VRF test3, FIB ID 5 +Router ID is not set +RD 1:203 +Interfaces: +! +VRF test4, FIB ID 6 +Router ID is not set +RD 1:204 +Interfaces: +! +VRF test5, FIB ID 7 +Router ID is not set +RD 1:205 +Interfaces: +! + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/l3_interface_config.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/l3_interface_config.cfg new file mode 100644 index 000000000..ada224640 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/l3_interface_config.cfg @@ -0,0 +1,27 @@ +! +version "10.8.0.42" +! +hostname ip10-241-107-39 +! +vlan 13 + name dave +! +interface Ethernet1/9 + ip address 10.201.107.1 255.255.255.0 + ipv6 address dead::beaf/64 + description Bleh +! +interface Ethernet1/33 + description Hentammoo + load-interval counter 2 33 + switchport access vlan 33 + storm-control broadcast level 12.50 + mtu 66 + microburst-detection enable threshold 25 + lldp tlv-select max-frame-size + lacp port-priority 33 + spanning-tree mst 33-35 cost 33 + spanning-tree bpduguard enable +! +! +end diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_interface_brief b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_interface_brief new file mode 100644 index 000000000..67cee7876 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_interface_brief @@ -0,0 +1,92 @@ +-------------------------------------------------------------------------------- +Ethernet PVID Type Mode Status Reason Speed Port +Interface NVLAN Ch# +-------------------------------------------------------------------------------- +Ethernet1/1 33 eth access down Link not connected 10000 33 +Ethernet1/2 1 eth access down Link not connected 10000 1001 +Ethernet1/3 1 eth trunk down Link not connected 10000 1003 +Ethernet1/4 1 eth trunk down Link not connected 10000 1004 +Ethernet1/5 -- eth routed down Link not connected 10000 -- +Ethernet1/6 -- eth routed down Link not connected 10000 -- +Ethernet1/7 -- eth routed down Link not connected 10000 -- +Ethernet1/8 -- eth routed down Link not connected 10000 -- +Ethernet1/9 1 eth access down Link not connected 10000 -- +Ethernet1/10 1 eth access down Link not connected 10000 -- +Ethernet1/11 -- eth routed down Link not connected 10000 -- +Ethernet1/12 -- eth routed down Link not connected 10000 -- +Ethernet1/13 -- eth routed down Link not connected 10000 -- +Ethernet1/14 1 eth access down Link not connected 10000 -- +Ethernet1/15 1 eth access down Link not connected 10000 -- +Ethernet1/16 1 eth access down Link not connected 10000 -- +Ethernet1/17 1 eth access down Link not connected 10000 -- +Ethernet1/18 1 eth access down Link not connected 10000 -- +Ethernet1/19 1 eth access down Link not connected 10000 -- +Ethernet1/20 1 eth access down Link not connected 10000 -- +Ethernet1/21 1 eth access down Link not connected 10000 -- +Ethernet1/22 1 eth access down Link not connected 10000 -- +Ethernet1/23 1 eth access down Link not connected 10000 11 +Ethernet1/24 1 eth access down Link not connected 10000 -- +Ethernet1/25 1 eth access down Link not connected 10000 -- +Ethernet1/26 1 eth access down Link not connected 10000 -- +Ethernet1/27 1 eth access down Link not connected 10000 -- +Ethernet1/28 1 eth access down Link not connected 10000 -- +Ethernet1/29 1 eth access down Link not connected 10000 -- +Ethernet1/30 1 eth access down Link not connected 10000 -- +Ethernet1/31 1 eth access down Link not connected 10000 -- +Ethernet1/32 1 eth access down Link not connected 10000 -- +Ethernet1/33 33 eth access down Link not connected 10000 -- +Ethernet1/34 1 eth access down Link not connected 10000 -- +Ethernet1/35 1 eth access down Link not connected 10000 -- +Ethernet1/36 1 eth access down Link not connected 10000 -- +Ethernet1/37 1 eth access down Link not connected 10000 -- +Ethernet1/38 1 eth access down Link not connected 10000 -- +Ethernet1/39 1 eth access down Link not connected 10000 -- +Ethernet1/40 1 eth access down Link not connected 10000 -- +Ethernet1/41 1 eth access down Link not connected 10000 -- +Ethernet1/42 1 eth access down Link not connected 10000 -- +Ethernet1/43 1 eth access down Link not connected 10000 -- +Ethernet1/44 1 eth access down Link not connected 10000 -- +Ethernet1/45 1 eth access down Link not connected 10000 -- +Ethernet1/46 1 eth access down Link not connected 10000 -- +Ethernet1/47 1 eth access down Link not connected 10000 -- +Ethernet1/48 1 eth access down Link not connected 10000 -- +Ethernet1/49 1 eth access down Link not connected 40000 -- +Ethernet1/50 1 eth access down Link not connected 40000 -- +Ethernet1/51 1 eth access down Link not connected 40000 -- +Ethernet1/52 1 eth access down Link not connected 40000 -- +Ethernet1/53 1 eth access down Link not connected 40000 -- +Ethernet1/54 1 eth access down Link not connected 40000 -- + +-------------------------------------------------------------------------------- +Port-channel PVID Type Mode Status Reason Speed Protocol +Interface NVLAN +-------------------------------------------------------------------------------- +po1 1 eth access down No link up members NA none +po2 1 eth access down No link up members NA none +po11 1 eth access down No link up members NA lacp +po13 1 eth trunk down No link up members NA none +po17 1 eth trunk down No link up members NA none +po20 1 eth access down No link up members NA none +po33 33 eth access down No link up members NA none +po100 1 eth trunk down No link up members NA none +po1001 1 eth access down No link up members NA lacp +po1002 1 eth access down No link up members NA none +po1003 1 eth trunk down No link up members NA lacp +po1004 1 eth trunk down No link up members NA lacp + +-------------------------------------------------------------------------------- +Port VRF Status IP Address Speed MTU +-------------------------------------------------------------------------------- +mgmt0 management up 10.241.107.39 1000 1500 + +------------------------------------------------------------------------------- +Interface Secondary VLAN(Type) Status Reason +------------------------------------------------------------------------------- +Vlan1 -- down VLAN is down + +-------------------------------------------------------------------------------- +Interface Status Description +-------------------------------------------------------------------------------- +loopback0 up -- +loopback3 up -- + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_interface_ethernet_1_33_switchport b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_interface_ethernet_1_33_switchport new file mode 100644 index 000000000..a7c271c9a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_interface_ethernet_1_33_switchport @@ -0,0 +1,13 @@ +Interface Ethernet1/33 + Switchport : enabled + Switchport mode : access + Ingress filter : enable + Tag Ingress PVID : disabled + Acceptable frame types : all + Default/Native Vlan : 1 + Configured Vlans : 1 + Enabled Vlans : 1 + Egress-Tagged Vlans : None + Private-VLAN : Disabled + Private-VLAN Port Type : None + Primary/Secondary VLAN : None/None diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_interface_ethernet_1_44_switchport b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_interface_ethernet_1_44_switchport new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_interface_ethernet_1_44_switchport diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_interface_ethernet_1_45_switchport b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_interface_ethernet_1_45_switchport new file mode 100644 index 000000000..300100911 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_interface_ethernet_1_45_switchport @@ -0,0 +1,14 @@ +Interface Ethernet1/45 + Switchport : enabled + Switchport mode : access + Ingress filter : enable + Tag Ingress PVID : disabled + Acceptable frame types : all + Default/Native Vlan : 1 + Configured Vlans : 1 + Enabled Vlans : 1 + Egress-Tagged Vlans : None + Private-VLAN : Disabled + Private-VLAN Port Type : None + Primary/Secondary VLAN : None/None + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_interface_mac-address b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_interface_mac-address new file mode 100644 index 000000000..d66bea153 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_interface_mac-address @@ -0,0 +1,72 @@ +-------------------------------------------------------------------------------- +Interface Mac-Address Burn-in Mac-Address +-------------------------------------------------------------------------------- +Ethernet1/1 a48c.db33.bc02 a48c.db33.bc02 +Ethernet1/2 a48c.db33.bc03 a48c.db33.bc03 +Ethernet1/3 a48c.db33.bc04 a48c.db33.bc04 +Ethernet1/4 a48c.db33.bc05 a48c.db33.bc05 +Ethernet1/5 a48c.db33.bc01 a48c.db33.bc06 +Ethernet1/6 a48c.db33.bc01 a48c.db33.bc07 +Ethernet1/7 a48c.db33.bc01 a48c.db33.bc08 +Ethernet1/8 a48c.db33.bc01 a48c.db33.bc09 +Ethernet1/9 a48c.db33.bc0a a48c.db33.bc0a +Ethernet1/10 a48c.db33.bc0b a48c.db33.bc0b +Ethernet1/11 a48c.db33.bc01 a48c.db33.bc0c +Ethernet1/12 a48c.db33.bc01 a48c.db33.bc0d +Ethernet1/13 a48c.db33.bc01 a48c.db33.bc0e +Ethernet1/14 a48c.db33.bc0f a48c.db33.bc0f +Ethernet1/15 a48c.db33.bc10 a48c.db33.bc10 +Ethernet1/16 a48c.db33.bc11 a48c.db33.bc11 +Ethernet1/17 a48c.db33.bc12 a48c.db33.bc12 +Ethernet1/18 a48c.db33.bc13 a48c.db33.bc13 +Ethernet1/19 a48c.db33.bc14 a48c.db33.bc14 +Ethernet1/20 a48c.db33.bc15 a48c.db33.bc15 +Ethernet1/21 a48c.db33.bc16 a48c.db33.bc16 +Ethernet1/22 a48c.db33.bc17 a48c.db33.bc17 +Ethernet1/23 a48c.db33.bc18 a48c.db33.bc18 +Ethernet1/24 a48c.db33.bc19 a48c.db33.bc19 +Ethernet1/25 a48c.db33.bc1a a48c.db33.bc1a +Ethernet1/26 a48c.db33.bc1b a48c.db33.bc1b +Ethernet1/27 a48c.db33.bc1c a48c.db33.bc1c +Ethernet1/28 a48c.db33.bc1d a48c.db33.bc1d +Ethernet1/29 a48c.db33.bc1e a48c.db33.bc1e +Ethernet1/30 a48c.db33.bc1f a48c.db33.bc1f +Ethernet1/31 a48c.db33.bc20 a48c.db33.bc20 +Ethernet1/32 a48c.db33.bc21 a48c.db33.bc21 +Ethernet1/33 a48c.db33.bc22 a48c.db33.bc22 +Ethernet1/34 a48c.db33.bc23 a48c.db33.bc23 +Ethernet1/35 a48c.db33.bc24 a48c.db33.bc24 +Ethernet1/36 a48c.db33.bc25 a48c.db33.bc25 +Ethernet1/37 a48c.db33.bc26 a48c.db33.bc26 +Ethernet1/38 a48c.db33.bc27 a48c.db33.bc27 +Ethernet1/39 a48c.db33.bc28 a48c.db33.bc28 +Ethernet1/40 a48c.db33.bc29 a48c.db33.bc29 +Ethernet1/41 a48c.db33.bc2a a48c.db33.bc2a +Ethernet1/42 a48c.db33.bc2b a48c.db33.bc2b +Ethernet1/43 a48c.db33.bc2c a48c.db33.bc2c +Ethernet1/44 a48c.db33.bc2d a48c.db33.bc2d +Ethernet1/45 a48c.db33.bc2e a48c.db33.bc2e +Ethernet1/46 a48c.db33.bc2f a48c.db33.bc2f +Ethernet1/47 a48c.db33.bc30 a48c.db33.bc30 +Ethernet1/48 a48c.db33.bc31 a48c.db33.bc31 +Ethernet1/49 a48c.db33.bc32 a48c.db33.bc32 +Ethernet1/50 a48c.db33.bc33 a48c.db33.bc33 +Ethernet1/51 a48c.db33.bc34 a48c.db33.bc34 +Ethernet1/52 a48c.db33.bc35 a48c.db33.bc35 +Ethernet1/53 a48c.db33.bc36 a48c.db33.bc36 +Ethernet1/54 a48c.db33.bc37 a48c.db33.bc37 +mgmt0 a48c.db33.bc00 a48c.db33.bc00 +po1 0e00.0000.0001 (not set) +po2 0e00.0000.0002 (not set) +po11 a48c.db33.bc18 (not set) +po13 0e00.0000.0003 (not set) +po17 0e00.0000.0004 (not set) +po20 0e00.0000.0005 (not set) +po33 a48c.db33.bc02 (not set) +po100 0e00.0000.0006 (not set) +po1001 a48c.db33.bc03 (not set) +po1002 0e00.0000.0007 (not set) +po1003 a48c.db33.bc04 (not set) +po1004 a48c.db33.bc05 (not set) +Vlan1 a48c.db33.bc01 (not set) + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_interface_status b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_interface_status new file mode 100644 index 000000000..dae90765f --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_interface_status @@ -0,0 +1,74 @@ +-------------------------------------------------------------------------------- +Port Name Status Vlan Duplex Speed Type +-------------------------------------------------------------------------------- +Ethernet1/1 Link 1 to LP21 notconnec 33 full 10000 eth +Ethernet1/2 Link 2 to LP21 notconnec 1 full 10000 eth +Ethernet1/3 Link 1 to LP22 notconnec trunk full 10000 eth +Ethernet1/4 Link 2 to LP22 notconnec trunk full 10000 eth +Ethernet1/5 Link 1 to LP23 notconnec routed full 10000 eth +Ethernet1/6 Link 2 to LP23 notconnec routed full 10000 eth +Ethernet1/7 Link 1 to LP24 notconnec routed full 10000 eth +Ethernet1/8 Link 2 to LP24 notconnec routed full 10000 eth +Ethernet1/9 -- notconnec 1 full 10000 eth +Ethernet1/10 -- notconnec 1 full 10000 eth +Ethernet1/11 -- notconnec routed full 10000 eth +Ethernet1/12 -- notconnec routed full 10000 eth +Ethernet1/13 -- notconnec routed full 10000 eth +Ethernet1/14 -- notconnec 1 full 10000 eth +Ethernet1/15 -- notconnec 1 full 10000 eth +Ethernet1/16 -- notconnec 1 full 10000 eth +Ethernet1/17 -- notconnec 1 full 10000 eth +Ethernet1/18 -- notconnec 1 full 10000 eth +Ethernet1/19 -- notconnec 1 full 10000 eth +Ethernet1/20 -- notconnec 1 full 10000 eth +Ethernet1/21 -- notconnec 1 full 10000 eth +Ethernet1/22 -- notconnec 1 full 10000 eth +Ethernet1/23 -- notconnec 1 full 10000 eth +Ethernet1/24 -- notconnec 1 full 10000 eth +Ethernet1/25 -- notconnec 1 full 10000 eth +Ethernet1/26 -- notconnec 1 full 10000 eth +Ethernet1/27 -- notconnec 1 full 10000 eth +Ethernet1/28 -- notconnec 1 full 10000 eth +Ethernet1/29 -- notconnec 1 full 10000 eth +Ethernet1/30 -- notconnec 1 full 10000 eth +Ethernet1/31 -- notconnec 1 full 10000 eth +Ethernet1/32 -- notconnec 1 full 10000 eth +Ethernet1/33 Hentammoo notconnec 33 full 10000 eth +Ethernet1/34 -- notconnec 1 full 10000 eth +Ethernet1/35 -- notconnec 1 full 10000 eth +Ethernet1/36 -- notconnec 1 full 10000 eth +Ethernet1/37 -- notconnec 1 full 10000 eth +Ethernet1/38 -- notconnec 1 full 10000 eth +Ethernet1/39 -- notconnec 1 full 10000 eth +Ethernet1/40 -- notconnec 1 full 10000 eth +Ethernet1/41 -- notconnec 1 full 10000 eth +Ethernet1/42 -- notconnec 1 full 10000 eth +Ethernet1/43 -- notconnec 1 full 10000 eth +Ethernet1/44 -- notconnec 1 full 10000 eth +Ethernet1/45 -- notconnec 1 full 10000 eth +Ethernet1/46 -- notconnec 1 full 10000 eth +Ethernet1/47 -- notconnec 1 full 10000 eth +Ethernet1/48 -- notconnec 1 full 10000 eth +Ethernet1/49 -- notconnec 1 full 40000 eth +Ethernet1/50 -- notconnec 1 full 40000 eth +Ethernet1/51 -- notconnec 1 full 40000 eth +Ethernet1/52 -- notconnec 1 full 40000 eth +Ethernet1/53 -- notconnec 1 full 40000 eth +Ethernet1/54 -- notconnec 1 full 40000 eth +po1 -- notconnec 1 full NA eth +po2 -- notconnec 1 full NA eth +po11 -- notconnec 1 full NA eth +po13 -- notconnec trunk full NA eth +po17 -- notconnec trunk full NA eth +po20 -- notconnec 1 full NA eth +po33 Hentammoo notconnec 33 full NA eth +po100 -- notconnec trunk full NA eth +po1001 -- notconnec 1 full NA eth +po1002 -- notconnec 1 full NA eth +po1003 -- notconnec trunk full NA eth +po1004 -- notconnec trunk full NA eth +mgmt0 -- connected routed full 1000 eth +loopback0 -- connected routed half NA eth +loopback3 -- connected routed half NA eth +Vlan1 -- notconnec routed auto NA -- + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_ip_interface_brief_vrf_all b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_ip_interface_brief_vrf_all new file mode 100644 index 000000000..4f3a22a12 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_ip_interface_brief_vrf_all @@ -0,0 +1,10 @@ +Interface IP-Address Admin-Status Link-Status VRF +Ethernet1/5 20.131.1.1 up down default +Ethernet1/6 20.131.2.1 up down default +Ethernet1/7 20.141.1.1 up down default +Ethernet1/8 20.141.2.1 up down default +Ethernet1/11 1.1.1.2 up down default +Ethernet1/12 100.10.10.10 up down default +Ethernet1/13 10.241.107.54 up down default +mgmt0 10.241.107.39 up up management + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_ipv6_interface_brief_vrf_all b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_ipv6_interface_brief_vrf_all new file mode 100644 index 000000000..f229566a3 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_ipv6_interface_brief_vrf_all @@ -0,0 +1,5 @@ +Interface IPv6 Address/Link-local Address Admin-Status Link-Status VRF +loopback0 fe80::200:ff:fe00:0 up up default +loopback3 fe80::200:ff:fe00:0 up up default +mgmt0 fe80::a68c:dbff:fe33:bc00 up up management + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_lldp_neighbors b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_lldp_neighbors new file mode 100644 index 000000000..e733d39c3 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_lldp_neighbors @@ -0,0 +1,8 @@ +Capability codes: + (R) Router, (B) Bridge, (T) Telephone, (C) DOCSIS Cable Device + (W) WLAN Access Point, (P) Repeater, (S) Station, (O) Other +Device ID Local Intf Hold-time Capability Port ID +INDIA-LAB-1-C3750X.l... mgmt0 120 BR Gi1/0/30 + +Total entries displayed: 1 + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_process_memory b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_process_memory new file mode 100644 index 000000000..f4b7fe25e --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_process_memory @@ -0,0 +1,38 @@ +PID MemAlloc StkSize RSSMem LibMem StackBase/Ptr Process +----- -------- ---------- ------- ------- ------------------ ---------- + 1 6204 8388608 12312 5380 bff01bc0/bff01590 nsm + 4 2608 8388608 5264 5312 bfa92080/bfa91ab0 ospfd + 7 14152 8388608 5924 5284 bfaa7250/bfaa6c20 hostpd + 10 2092 8388608 4652 5312 bfafcbf0/bfafc620 mribd + 11 2024 8388608 3108 5284 bfb7c650/bfb7c080 pimd + 14 2016 8388608 4896 5312 bff0ff10/bff0f940 lacpd + 17 48608 8388608 36200 5312 bfc10e30/bfc10830 mstpd + 24 2520 8388608 5340 5312 bf90ad00/bf90a730 onmd + 26 228628 8388608 77312 5376 bfb34e10/bfb34830 hsl + 28 2020 8388608 4784 5312 bff3c410/bff3be10 oam + 39 21396 8388608 8184 5312 bf9b1a50/bf9b1460 vrrpd + 40 2480 8388608 4064 5336 bfe5f020/bfe5ea20 ndd + 42 2860 8388608 5672 5364 bfe83aa0/bfe83470 ribd + 44 3528 8388608 7140 5328 bf90b720/bf90b110 bgpd + 45 1772 8388608 4404 5312 bf9fc250/bf9fbc80 hostmibd + 46 39564 8388608 25632 5428 bfe30db0/bfe30780 l2mribd + 62 1876 8388608 3920 5312 bf81c210/bf81bc40 sysmgr + 63 94380 8388608 13804 5292 bfcb67d0/bfcb61d0 nwvd + 64 1920 8388608 5664 5676 bfc28470/bfc27ea0 ovsdbd + 65 96548 8388608 55168 5292 bfdbcf80/bfdbc980 vlagd + 66 1756 8388608 3808 5284 bfa15ab0/bfa154e0 slpd + 71 2116 8388608 5880 10076 bfe8abd0/bfe8a600 npad + 72 2220 8388608 5452 7936 bf9e6da0/bf9e67d0 hscd + 73 1920 8388608 2760 5284 bfbc6cd0/bfbc6700 dhcpsnpd + 74 58620 8388608 16168 9956 bfe1af70/bfe1a970 telemetryd + 75 1756 8388608 3456 5284 bfb21da0/bfb217d0 securityd + 76 2152 8388608 4216 5284 bfc36900/bfc36330 l2fd + 77 1920 8388608 3876 5284 bf91e480/bf91dec0 sflowd + 78 1888 8388608 3772 5284 bffd10c0/bffd0af0 qosd + 69 70520 8388608 5584 5260 bfca0980/bfca0490 platform_mgr + 70 26828 8388608 2116 2040 bfce09c0/bfce0440 service_mgr + + total used free shared buff/cache available +Mem: 4081464 442136 3144092 153168 495236 3452732 +Swap: 0 0 0 + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_run b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_run new file mode 100644 index 000000000..4367c90fe --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_run @@ -0,0 +1,331 @@ +! +version "10.8.0.42" +! +hostname ip10-241-107-39 +! +banner motd NMS India CNOS +banner motd NMS India CNOS G8272 +! +clock timezone EDT 0 0 +! +logging console 7 +vrf context management + ip route 0.0.0.0/0 10.241.107.1 +! +! +port-channel load-balance ethernet destination-mac +port-channel load-balance ethernet source-interface +feature telnet +ip domain-name labs.lenovo.com vrf management +ip domain-list labs.lenovo.com vrf management +ip name-server 10.241.104.120 vrf management +ip name-server 10.240.0.10 vrf management +ip host ip10-241-107-39.labs.lenovo.com 10.241.107.39 vrf management +ip host ip10-241-107-39 10.241.107.39 vrf management +ip domain-name labs.lenovo.com vrf default +ip domain-list labs.lenovo.com vrf default +ip name-server 10.240.0.10 vrf default +ip name-server 10.241.104.120 vrf default +ip host ip10-241-107-39.labs.lenovo.com 10.241.107.39 vrf default +ip host ip10-241-107-39 10.241.107.39 vrf default +ntp server 173.230.154.254 prefer +ntp server 97.127.86.33 prefer +ntp server 129.250.35.250 prefer +ntp server 174.136.103.130 prefer +ntp server 69.10.161.7 prefer +ntp server 96.226.123.196 prefer +ntp server 104.238.179.130 prefer +ntp server 108.61.73.244 prefer +ntp server 208.75.89.4 prefer +snmp-server community public group network-operator +snmp-server community private group network-admin +snmp-server contact Ralph +username admin role network-admin password encrypted $6$bJoWyEu/$9pzSgFPAKGRm1stpTCEl3I39htbjxiFCfhqiHag1NQiKHv/IiLQ2lYW0V3p7p72SgSmVHp38em9P9R/EdePpk/ +logging server 10.241.107.231 +logging server 10.241.107.222 +feature restApi +ovsdb pki ovsdb_mgmt vrf management +ovsdb pki ovsdb_default vrf default +lacp system-priority 32769 +vlag tier-id 313 +vlag priority 1313 +vlag isl port-channel 100 +vlag hlthchk keepalive-attempts 5 +vlag hlthchk peer-ip 1.2.3.4 +vlag auto-recovery 266 +vlag startup-delay 323 +vlag enable +vlag instance 1 port-channel 1003 +vlag instance 1 enable +vlag instance 2 port-channel 20 +vlag instance 2 enable +vlag instance 12 port-channel 23 +vlag instance 33 port-channel 333 +vlag instance 33 enable +spanning-tree mode mst +telemetry heartbeat enabled interval 15 +! +policy-map type control-plane copp-system-policy + class type control-plane copp-s-pvst-bpdu + police pps 500 + class type control-plane copp-s-ecp + police pps 3000 + class type control-plane copp-s-igmp + police pps 3000 +! +vlan 1-2 + no flood ipv4 +! +vlan 3 +! +vlan 5 +! +vlan 12 +! +vlan 13 + name dave +! +vlan dot1q tag native egress-only +! +interface Ethernet1/1 + description Link 1 to LP21 + load-interval counter 2 33 + switchport access vlan 33 + storm-control broadcast level 12.50 + mtu 66 + channel-group 33 mode on +! +interface Ethernet1/2 + description Link 2 to LP21 + channel-group 1001 mode active +! +interface Ethernet1/3 + description Link 1 to LP22 + switchport mode trunk + channel-group 1003 mode active +! +interface Ethernet1/4 + description Link 2 to LP22 + switchport mode trunk + channel-group 1004 mode active +! +interface Ethernet1/5 + description Link 1 to LP23 + no switchport + ip address 20.131.1.1/30 +! +interface Ethernet1/6 + description Link 2 to LP23 + no switchport + ip address 20.131.2.1/30 +! +interface Ethernet1/7 + description Link 1 to LP24 + no switchport + ip address 20.141.1.1/30 +! +interface Ethernet1/8 + description Link 2 to LP24 + no switchport + ip address 20.141.2.1/30 +! +interface Ethernet1/9 +! +interface Ethernet1/10 +! +interface Ethernet1/11 + no switchport + mtu 1402 + ip address 1.1.1.2/8 +! +interface Ethernet1/12 + no switchport + ip address 100.10.10.10/24 +! +interface Ethernet1/13 + no switchport + ip address 10.241.107.54/24 + vrrp 254 + address 10.241.107.55 + priority 254 + no shutdown + ip arp timeout 1500 +! +interface Ethernet1/14 +! +interface Ethernet1/15 +! +interface Ethernet1/16 +! +interface Ethernet1/17 +! +interface Ethernet1/18 +! +interface Ethernet1/19 +! +interface Ethernet1/20 +! +interface Ethernet1/21 +! +interface Ethernet1/22 +! +interface Ethernet1/23 + channel-group 11 mode active + lacp port-priority 32769 +! +interface Ethernet1/24 +! +interface Ethernet1/25 +! +interface Ethernet1/26 +! +interface Ethernet1/27 +! +interface Ethernet1/28 +! +interface Ethernet1/29 +! +interface Ethernet1/30 +! +interface Ethernet1/31 +! +interface Ethernet1/32 +! +interface Ethernet1/33 + description Hentammoo + load-interval counter 2 33 + switchport access vlan 33 + storm-control broadcast level 12.50 + mtu 66 + microburst-detection enable threshold 25 + lldp tlv-select max-frame-size + lacp port-priority 33 + spanning-tree mst 33-35 cost 33 + spanning-tree bpduguard enable +! +interface Ethernet1/34 +! +interface Ethernet1/35 +! +interface Ethernet1/36 +! +interface Ethernet1/37 +! +interface Ethernet1/38 +! +interface Ethernet1/39 +! +interface Ethernet1/40 +! +interface Ethernet1/41 +! +interface Ethernet1/42 +! +interface Ethernet1/43 +! +interface Ethernet1/44 +! +interface Ethernet1/45 +! +interface Ethernet1/46 +! +interface Ethernet1/47 +! +interface Ethernet1/48 +! +interface Ethernet1/49 +! +interface Ethernet1/50 +! +interface Ethernet1/51 +! +interface Ethernet1/52 +! +interface Ethernet1/53 +! +interface Ethernet1/54 +! +interface loopback0 + no switchport +! +interface mgmt0 + no switchport + vrf member management + no ip address dhcp + ip address 10.241.107.39/24 + no ipv6 address dhcp +! +interface Vlan1 + no switchport +! +interface port-channel1 +! +interface port-channel2 +! +interface port-channel11 + lacp min-links 2 +! +interface port-channel13 + switchport mode trunk +! +interface port-channel17 + switchport mode trunk +! +interface port-channel20 +! +interface port-channel33 + description Hentammoo + load-interval counter 2 33 + switchport access vlan 33 + storm-control broadcast level 12.50 + mtu 66 + spanning-tree mst 33-35 cost 33 + spanning-tree bpduguard enable +! +interface port-channel100 + switchport mode trunk +! +interface port-channel1001 +! +interface port-channel1002 +! +interface port-channel1003 + switchport mode trunk +! +interface port-channel1004 + switchport mode trunk +! +router bgp 33 + router-id 1.2.3.4 + bestpath always-compare-med + cluster-id 1.2.3.4 + confederation identifier 333 + enforce-first-as + bgp as-local-count 33 + bestpath compare-confed-aspath + maxas-limit 333 + graceful-restart-helper + graceful-restart stalepath-time 333 + timers bgp 333 3333 + address-family ipv4 unicast + synchronization + network 0.0.0.0 backdoor + dampening 13 233 333 15 33 + neighbor 10.241.107.40 remote-as 13 + bfd + address-family ipv4 unicast + next-hop-self +! +route-map anil permit 10 +! +ip arp timeout 1000 +! +line con 0 +line vty 0 + exec-timeout 90 0 +line vty 1 39 +! +! +! +end + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_run_interface_ethernet_1_33 b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_run_interface_ethernet_1_33 new file mode 100644 index 000000000..a7c271c9a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_run_interface_ethernet_1_33 @@ -0,0 +1,13 @@ +Interface Ethernet1/33 + Switchport : enabled + Switchport mode : access + Ingress filter : enable + Tag Ingress PVID : disabled + Acceptable frame types : all + Default/Native Vlan : 1 + Configured Vlans : 1 + Enabled Vlans : 1 + Egress-Tagged Vlans : None + Private-VLAN : Disabled + Private-VLAN Port Type : None + Primary/Secondary VLAN : None/None diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_run_interface_ethernet_1_45 b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_run_interface_ethernet_1_45 new file mode 100644 index 000000000..300100911 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_run_interface_ethernet_1_45 @@ -0,0 +1,14 @@ +Interface Ethernet1/45 + Switchport : enabled + Switchport mode : access + Ingress filter : enable + Tag Ingress PVID : disabled + Acceptable frame types : all + Default/Native Vlan : 1 + Configured Vlans : 1 + Enabled Vlans : 1 + Egress-Tagged Vlans : None + Private-VLAN : Disabled + Private-VLAN Port Type : None + Primary/Secondary VLAN : None/None + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_running-config b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_running-config new file mode 100644 index 000000000..4367c90fe --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_running-config @@ -0,0 +1,331 @@ +! +version "10.8.0.42" +! +hostname ip10-241-107-39 +! +banner motd NMS India CNOS +banner motd NMS India CNOS G8272 +! +clock timezone EDT 0 0 +! +logging console 7 +vrf context management + ip route 0.0.0.0/0 10.241.107.1 +! +! +port-channel load-balance ethernet destination-mac +port-channel load-balance ethernet source-interface +feature telnet +ip domain-name labs.lenovo.com vrf management +ip domain-list labs.lenovo.com vrf management +ip name-server 10.241.104.120 vrf management +ip name-server 10.240.0.10 vrf management +ip host ip10-241-107-39.labs.lenovo.com 10.241.107.39 vrf management +ip host ip10-241-107-39 10.241.107.39 vrf management +ip domain-name labs.lenovo.com vrf default +ip domain-list labs.lenovo.com vrf default +ip name-server 10.240.0.10 vrf default +ip name-server 10.241.104.120 vrf default +ip host ip10-241-107-39.labs.lenovo.com 10.241.107.39 vrf default +ip host ip10-241-107-39 10.241.107.39 vrf default +ntp server 173.230.154.254 prefer +ntp server 97.127.86.33 prefer +ntp server 129.250.35.250 prefer +ntp server 174.136.103.130 prefer +ntp server 69.10.161.7 prefer +ntp server 96.226.123.196 prefer +ntp server 104.238.179.130 prefer +ntp server 108.61.73.244 prefer +ntp server 208.75.89.4 prefer +snmp-server community public group network-operator +snmp-server community private group network-admin +snmp-server contact Ralph +username admin role network-admin password encrypted $6$bJoWyEu/$9pzSgFPAKGRm1stpTCEl3I39htbjxiFCfhqiHag1NQiKHv/IiLQ2lYW0V3p7p72SgSmVHp38em9P9R/EdePpk/ +logging server 10.241.107.231 +logging server 10.241.107.222 +feature restApi +ovsdb pki ovsdb_mgmt vrf management +ovsdb pki ovsdb_default vrf default +lacp system-priority 32769 +vlag tier-id 313 +vlag priority 1313 +vlag isl port-channel 100 +vlag hlthchk keepalive-attempts 5 +vlag hlthchk peer-ip 1.2.3.4 +vlag auto-recovery 266 +vlag startup-delay 323 +vlag enable +vlag instance 1 port-channel 1003 +vlag instance 1 enable +vlag instance 2 port-channel 20 +vlag instance 2 enable +vlag instance 12 port-channel 23 +vlag instance 33 port-channel 333 +vlag instance 33 enable +spanning-tree mode mst +telemetry heartbeat enabled interval 15 +! +policy-map type control-plane copp-system-policy + class type control-plane copp-s-pvst-bpdu + police pps 500 + class type control-plane copp-s-ecp + police pps 3000 + class type control-plane copp-s-igmp + police pps 3000 +! +vlan 1-2 + no flood ipv4 +! +vlan 3 +! +vlan 5 +! +vlan 12 +! +vlan 13 + name dave +! +vlan dot1q tag native egress-only +! +interface Ethernet1/1 + description Link 1 to LP21 + load-interval counter 2 33 + switchport access vlan 33 + storm-control broadcast level 12.50 + mtu 66 + channel-group 33 mode on +! +interface Ethernet1/2 + description Link 2 to LP21 + channel-group 1001 mode active +! +interface Ethernet1/3 + description Link 1 to LP22 + switchport mode trunk + channel-group 1003 mode active +! +interface Ethernet1/4 + description Link 2 to LP22 + switchport mode trunk + channel-group 1004 mode active +! +interface Ethernet1/5 + description Link 1 to LP23 + no switchport + ip address 20.131.1.1/30 +! +interface Ethernet1/6 + description Link 2 to LP23 + no switchport + ip address 20.131.2.1/30 +! +interface Ethernet1/7 + description Link 1 to LP24 + no switchport + ip address 20.141.1.1/30 +! +interface Ethernet1/8 + description Link 2 to LP24 + no switchport + ip address 20.141.2.1/30 +! +interface Ethernet1/9 +! +interface Ethernet1/10 +! +interface Ethernet1/11 + no switchport + mtu 1402 + ip address 1.1.1.2/8 +! +interface Ethernet1/12 + no switchport + ip address 100.10.10.10/24 +! +interface Ethernet1/13 + no switchport + ip address 10.241.107.54/24 + vrrp 254 + address 10.241.107.55 + priority 254 + no shutdown + ip arp timeout 1500 +! +interface Ethernet1/14 +! +interface Ethernet1/15 +! +interface Ethernet1/16 +! +interface Ethernet1/17 +! +interface Ethernet1/18 +! +interface Ethernet1/19 +! +interface Ethernet1/20 +! +interface Ethernet1/21 +! +interface Ethernet1/22 +! +interface Ethernet1/23 + channel-group 11 mode active + lacp port-priority 32769 +! +interface Ethernet1/24 +! +interface Ethernet1/25 +! +interface Ethernet1/26 +! +interface Ethernet1/27 +! +interface Ethernet1/28 +! +interface Ethernet1/29 +! +interface Ethernet1/30 +! +interface Ethernet1/31 +! +interface Ethernet1/32 +! +interface Ethernet1/33 + description Hentammoo + load-interval counter 2 33 + switchport access vlan 33 + storm-control broadcast level 12.50 + mtu 66 + microburst-detection enable threshold 25 + lldp tlv-select max-frame-size + lacp port-priority 33 + spanning-tree mst 33-35 cost 33 + spanning-tree bpduguard enable +! +interface Ethernet1/34 +! +interface Ethernet1/35 +! +interface Ethernet1/36 +! +interface Ethernet1/37 +! +interface Ethernet1/38 +! +interface Ethernet1/39 +! +interface Ethernet1/40 +! +interface Ethernet1/41 +! +interface Ethernet1/42 +! +interface Ethernet1/43 +! +interface Ethernet1/44 +! +interface Ethernet1/45 +! +interface Ethernet1/46 +! +interface Ethernet1/47 +! +interface Ethernet1/48 +! +interface Ethernet1/49 +! +interface Ethernet1/50 +! +interface Ethernet1/51 +! +interface Ethernet1/52 +! +interface Ethernet1/53 +! +interface Ethernet1/54 +! +interface loopback0 + no switchport +! +interface mgmt0 + no switchport + vrf member management + no ip address dhcp + ip address 10.241.107.39/24 + no ipv6 address dhcp +! +interface Vlan1 + no switchport +! +interface port-channel1 +! +interface port-channel2 +! +interface port-channel11 + lacp min-links 2 +! +interface port-channel13 + switchport mode trunk +! +interface port-channel17 + switchport mode trunk +! +interface port-channel20 +! +interface port-channel33 + description Hentammoo + load-interval counter 2 33 + switchport access vlan 33 + storm-control broadcast level 12.50 + mtu 66 + spanning-tree mst 33-35 cost 33 + spanning-tree bpduguard enable +! +interface port-channel100 + switchport mode trunk +! +interface port-channel1001 +! +interface port-channel1002 +! +interface port-channel1003 + switchport mode trunk +! +interface port-channel1004 + switchport mode trunk +! +router bgp 33 + router-id 1.2.3.4 + bestpath always-compare-med + cluster-id 1.2.3.4 + confederation identifier 333 + enforce-first-as + bgp as-local-count 33 + bestpath compare-confed-aspath + maxas-limit 333 + graceful-restart-helper + graceful-restart stalepath-time 333 + timers bgp 333 3333 + address-family ipv4 unicast + synchronization + network 0.0.0.0 backdoor + dampening 13 233 333 15 33 + neighbor 10.241.107.40 remote-as 13 + bfd + address-family ipv4 unicast + next-hop-self +! +route-map anil permit 10 +! +ip arp timeout 1000 +! +line con 0 +line vty 0 + exec-timeout 90 0 +line vty 1 39 +! +! +! +end + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_sys-info b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_sys-info new file mode 100644 index 000000000..a61b56784 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_sys-info @@ -0,0 +1,62 @@ +*** show boot *** +Current ZTP State: Enable +Current FLASH software: + active image: version 10.8.0.42, downloaded 09:40:15 EDT Mon May 7 2018 + standby image: version 10.7.0.6, downloaded 11:02:12 EDT Thu Mar 29 2018 + Uboot: version 10.7.0.6, downloaded 11:02:14 EDT Thu Mar 29 2018 + ONIE: empty +Currently set to boot software active image +Current port mode: default mode +Next boot port mode: default mode + +Currently scheduled reboot time: none + + +*** show env fan detail *** +Total Fan: 8 ++--------+-----+-----------------+---------------+-------+--------+ +| Module | Fan | Name | Air-Flow | Speed | Speed | +| Number | ID | | Direction | (%) | (RPM) | ++--------+-----+-----------------+---------------+-------+--------+ + 01 01 Fan1 Front-to-Back 23 4023 + 01 02 Fan2 Front-to-Back 23 4285 + 02 03 Fan3 Front-to-Back 23 4032 + 02 04 Fan4 Front-to-Back 23 4147 + 03 05 Fan5 Front-to-Back 23 4192 + 03 06 Fan6 Front-to-Back 23 4397 + 04 07 Fan7 Front-to-Back 23 4153 + 04 08 Fan8 Front-to-Back 23 4451 + + +*** show env power *** +Total Power Supplies: 2 ++----+-----------------+----------------+-----------------+------------------+ +| ID | Name | Manufacturer | Model | State | ++----+-----------------+----------------+-----------------+------------------+ + 01 Power Supply 1 DELTA XXXXXXXXXX Normal ON + 02 Power Supply 2 DELTA XXXXXXXXXX 12V Output Fault + + +*** show env temperature *** ++----+------------------+----------+--------+ +| ID | Name | Temp | State | +| | | (Celsius)| | ++----+------------------+----------+--------+ + 01 CPU Local 32 OK + 02 Ambient 31 OK + 03 Hot Spot 47 OK + +System Name : G8272 +System Description : G8272 ("48x10GE + 6x40GE") +System Model : Lenovo RackSwitch G8272 +System VPD Version : 3 +System Manufacture Date : 1542 (YYWW) +System Part Number : 00CJ066 +System Serial Number : Y052MV59Y052 +System FRU Number : 00FM430 +System Machine Type Model : 7159-HCV +System Machine Serial Number : MM11945 +System Hardware Revision : 1 +System Management MAC : A4:8C:DB:33:BC:00 +System Software Revision : 10.8.0.42 + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_version b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_version new file mode 100644 index 000000000..0db1ff132 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_version @@ -0,0 +1,19 @@ +Lenovo Networking Operating System (NOS) Software +Technical Assistance Center: http://www.lenovo.com +Copyright (C) Lenovo, 2016. All rights reserved. + +Software: + Bootloader version: 10.7.0.6 + System version: 10.8.0.42 + System compile time: May 03 11:06:25 PDT 2018 +Hardware: + G8272 ("48x10GE + 6x40GE") + NXP P2020 CPU with 4096 MB of memory + + Device name: ip10-241-107-39 + Boot Flash: 16 MB + +Kernel uptime is 2 day(s), 21 hour(s), 26 minute(s), 14 second(s) + +Last Reset Reason: Reset by CLI reload command + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_vlan b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_vlan new file mode 100644 index 000000000..457992fee --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_fixtures/show_vlan @@ -0,0 +1,97 @@ +VLAN Name Status IPMC FLOOD Ports + +======== ================================ ======= ========== =================== +1 default ACTIVE IPv6 + po1(u) + po2(u) + po11(u) + po12(u) + po13(t) + po14(u) + po15(u) + po17(t) + po20(u) + po100(t) + po1001(u) + po1002(u) + po1003(t) + po1004(t) + Ethernet1/2(u) + Ethernet1/3(t) + Ethernet1/4(t) + Ethernet1/9(u) + Ethernet1/10(u) + Ethernet1/14(u) + Ethernet1/15(u) + Ethernet1/16(u) + Ethernet1/17(u) + Ethernet1/18(u) + Ethernet1/19(u) + Ethernet1/20(u) + Ethernet1/21(u) + Ethernet1/22(u) + Ethernet1/23(u) + Ethernet1/24(u) + Ethernet1/25(u) + Ethernet1/26(u) + Ethernet1/27(u) + Ethernet1/28(u) + Ethernet1/29(u) + Ethernet1/30(u) + Ethernet1/31(u) + Ethernet1/32(u) + Ethernet1/33(u) + Ethernet1/34(u) + Ethernet1/35(u) + Ethernet1/36(u) + Ethernet1/37(u) + Ethernet1/38(u) + Ethernet1/39(u) + Ethernet1/40(u) + Ethernet1/41(u) + Ethernet1/42(u) + Ethernet1/43(u) + Ethernet1/44(u) + Ethernet1/45(u) + Ethernet1/46(u) + Ethernet1/47(u) + Ethernet1/48(u) + Ethernet1/49(u) + Ethernet1/50(u) + Ethernet1/51(u) + Ethernet1/52(u) + Ethernet1/53(u) + Ethernet1/54(u) +2 VLAN0002 ACTIVE IPv6 + po13(t) + po17(t) + po100(t) + po1003(t) + po1004(t) + Ethernet1/3(t) + Ethernet1/4(t) +3 VLAN0003 ACTIVE IPv4,IPv6 + po13(t) + po17(t) + po100(t) + po1003(t) + po1004(t) + Ethernet1/3(t) + Ethernet1/4(t) +12 VLAN0012 ACTIVE IPv4,IPv6 + po13(t) + po17(t) + po100(t) + po1003(t) + po1004(t) + Ethernet1/3(t) + Ethernet1/4(t) +13 anil ACTIVE IPv4,IPv6 + po13(t) + po17(t) + po100(t) + po1003(t) + po1004(t) + Ethernet1/3(t) + Ethernet1/4(t) + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/cnos_module.py b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_module.py new file mode 100644 index 000000000..0897ec13c --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/cnos_module.py @@ -0,0 +1,126 @@ +# Copyright (C) 2017 Lenovo, Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os +import json +import tempfile + +from ansible_collections.community.network.tests.unit.compat import unittest +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible.module_utils import basic + + +fixture_path = os.path.join(os.path.dirname(__file__), 'cnos_fixtures') +fixture_data = {} + + +def load_fixture(name): + path = os.path.join(fixture_path, name) + + if path in fixture_data: + return fixture_data[path] + + with open(path) as f: + data = f.read() + + try: + data = json.loads(data) + except Exception: + pass + + fixture_data[path] = data + return data + + +class AnsibleExitJson(Exception): + pass + + +class AnsibleFailJson(Exception): + pass + + +class TestCnosModule(unittest.TestCase): + def setUp(self): + super(TestCnosModule, self).setUp() + + self.test_log = tempfile.mkstemp(prefix='ansible-test-cnos-module-', suffix='.log')[1] + + self.mock_sleep = patch('time.sleep') + self.mock_sleep.start() + + def tearDown(self): + super(TestCnosModule, self).tearDown() + + self.mock_sleep.stop() + os.remove(self.test_log) + + def execute_module(self, failed=False, changed=False, commands=None, + sort=True, defaults=False): + + self.load_fixtures(commands) + + if failed: + result = self.failed() + self.assertTrue(result['failed'], result) + else: + result = self.changed(changed) + self.assertEqual(result['changed'], changed, result) + + if commands is not None: + if sort: + self.assertEqual(sorted(commands), sorted(result['commands']), + result['commands']) + else: + self.assertEqual(commands, result['commands'], + result['commands']) + + return result + + def failed(self): + def fail_json(*args, **kwargs): + kwargs['failed'] = True + raise AnsibleFailJson(kwargs) + + with patch.object(basic.AnsibleModule, 'fail_json', fail_json): + with self.assertRaises(AnsibleFailJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertTrue(result['failed'], result) + return result + + def changed(self, changed=False): + def exit_json(*args, **kwargs): + if 'changed' not in kwargs: + kwargs['changed'] = False + raise AnsibleExitJson(kwargs) + + with patch.object(basic.AnsibleModule, 'exit_json', exit_json): + with self.assertRaises(AnsibleExitJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertEqual(result['changed'], changed, result) + return result + + def load_fixtures(self, commands=None): + pass diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ct.vm b/ansible_collections/community/network/tests/unit/plugins/modules/ct.vm new file mode 100644 index 000000000..3e6acfe2a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ct.vm @@ -0,0 +1,32 @@ +##Copyright 2019 Radware +## +##Licensed under the Apache License, Version 2.0 (the "License"); +##you may not use this file except in compliance with the License. +##You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +##Unless required by applicable law or agreed to in writing, software +##distributed under the License is distributed on an "AS IS" BASIS, +##WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +##See the License for the specific language governing permissions and +##limitations under the License. + +#property('description', 'Ansible Test mock') + +#param($p1, 'int', 'in') +#param($p2, 'int[]', 'out') + +#set($p2 = []) +#set($start = 2) +#set($end = 1024) +#set($range = [$start..$end]) + +#foreach($i in $range) + #set($j = $adc.readBean('MOCK', $i)) + #if ($adc.isEmpty($j)) + #set($dummy = $p2.add($i)) + #if ($p2.size() == $p1) + #break + #end +#end diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/eccli_fixtures/configure_terminal b/ansible_collections/community/network/tests/unit/plugins/modules/eccli_fixtures/configure_terminal new file mode 100644 index 000000000..139597f9c --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/eccli_fixtures/configure_terminal @@ -0,0 +1,2 @@ + + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/eccli_fixtures/show_version b/ansible_collections/community/network/tests/unit/plugins/modules/eccli_fixtures/show_version new file mode 100644 index 000000000..9298419af --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/eccli_fixtures/show_version @@ -0,0 +1,12 @@ +Ericsson IPOS Version IPOS-19.4.0.0.38-Release +Built by ciflash@f48824719fb1 Fri May 03 19:18:07 EDT 2019 +Copyright (C) 1998-2019, Ericsson AB. All rights reserved. +Operating System version is Linux 3.14.25-00221-g19d0f20 +System Bootstrap version is N/A +Installed minikernel version is N/A +Router Up Time - 10 days, 23 hours 29 minutes 3 seconds + + + + + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/eccli_module.py b/ansible_collections/community/network/tests/unit/plugins/modules/eccli_module.py new file mode 100644 index 000000000..5c2780285 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/eccli_module.py @@ -0,0 +1,88 @@ +# (c) 2019 Ericsson. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os +import json + +from ansible_collections.community.network.tests.unit.plugins.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase + + +fixture_path = os.path.join(os.path.dirname(__file__), 'eccli_fixtures') +fixture_data = {} + + +def load_fixture(name): + path = os.path.join(fixture_path, name) + + if path in fixture_data: + return fixture_data[path] + + with open(path) as f: + data = f.read() + + try: + data = json.loads(data) + except Exception: + pass + + fixture_data[path] = data + return data + + +class TestEccliModule(ModuleTestCase): + + def execute_module(self, failed=False, changed=False, commands=None, sort=True, defaults=False): + + self.load_fixtures(commands) + + if failed: + result = self.failed() + self.assertTrue(result['failed'], result) + else: + result = self.changed(changed) + self.assertEqual(result['changed'], changed, result) + + if commands is not None: + if sort: + self.assertEqual(sorted(commands), sorted(result['commands']), result['commands']) + else: + self.assertEqual(commands, result['commands'], result['commands']) + + return result + + def failed(self): + with self.assertRaises(AnsibleFailJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertTrue(result['failed'], result) + return result + + def changed(self, changed=False): + with self.assertRaises(AnsibleExitJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertEqual(result['changed'], changed, result) + return result + + def load_fixtures(self, commands=None): + pass diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/edgeos_fixtures/edgeos_config_config.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/edgeos_fixtures/edgeos_config_config.cfg new file mode 100644 index 000000000..e0e794696 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/edgeos_fixtures/edgeos_config_config.cfg @@ -0,0 +1,10 @@ +set system host-name 'router' +set system domain-name 'acme.com' +set system domain-search domain 'acme.com' +set system name-server 208.67.220.220 +set system name-server 208.67.222.222 +set interfaces ethernet eth0 address 1.2.3.4/24 +set interfaces ethernet eth0 description 'Outside' +set interfaces ethernet eth1 address 10.77.88.1/24 +set interfaces ethernet eth1 description 'Inside' +set interfaces ethernet eth1 disable diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/edgeos_fixtures/edgeos_config_src.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/edgeos_fixtures/edgeos_config_src.cfg new file mode 100644 index 000000000..471dcb9d2 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/edgeos_fixtures/edgeos_config_src.cfg @@ -0,0 +1,5 @@ +set system host-name er01 +delete interfaces ethernet eth0 address +set interfaces ethernet eth1 address 10.77.88.1/24 +set interfaces ethernet eth1 description 'Inside' +set interfaces ethernet eth1 disable diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/edgeos_fixtures/edgeos_config_src_brackets.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/edgeos_fixtures/edgeos_config_src_brackets.cfg new file mode 100644 index 000000000..e2bcf1cc6 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/edgeos_fixtures/edgeos_config_src_brackets.cfg @@ -0,0 +1,13 @@ +interfaces { + ethernet eth0 { + address 10.10.10.10/24 + } + ethernet eth1 { + address 10.77.88.1/24 + description 'Inside' + disable + } +} +system { + host-name er01 +} diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/edgeos_fixtures/show_host_name b/ansible_collections/community/network/tests/unit/plugins/modules/edgeos_fixtures/show_host_name new file mode 100644 index 000000000..24ee58350 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/edgeos_fixtures/show_host_name @@ -0,0 +1 @@ +er01 diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/edgeos_fixtures/show_version b/ansible_collections/community/network/tests/unit/plugins/modules/edgeos_fixtures/show_version new file mode 100644 index 000000000..c32c5992e --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/edgeos_fixtures/show_version @@ -0,0 +1,7 @@ +Version: v1.9.7+hotfix.4 +Build ID: 5024004 +Build on: 10/05/17 04:03 +Copyright: 2012-2017 Ubiquiti Networks, Inc. +HW model: EdgeRouter PoE 5-Port +HW S/N: 802AA84D6394 +Uptime: 09:39:34 up 56 days, 21 min, 2 users, load average: 0.14, 0.11, 0.07 diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/edgeos_module.py b/ansible_collections/community/network/tests/unit/plugins/modules/edgeos_module.py new file mode 100644 index 000000000..a1a55577c --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/edgeos_module.py @@ -0,0 +1,86 @@ +# (c) 2018 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os +import json + +from ansible_collections.community.network.tests.unit.plugins.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase + + +fixture_path = os.path.join(os.path.dirname(__file__), 'edgeos_fixtures') +fixture_data = {} + + +def load_fixture(name): + path = os.path.join(fixture_path, name) + + if path in fixture_data: + return fixture_data[path] + + with open(path) as f: + data = f.read() + + try: + data = json.loads(data) + except Exception: + pass + + fixture_data[path] = data + return data + + +class TestEdgeosModule(ModuleTestCase): + + def execute_module(self, failed=False, changed=False, commands=None, sort=True, defaults=False): + self.load_fixtures(commands) + + if failed: + result = self.failed() + self.assertTrue(result['failed'], result) + else: + result = self.changed(changed) + self.assertEqual(result['changed'], changed, result) + + if commands is not None: + if sort: + self.assertEqual(sorted(commands), sorted(result['commands']), result['commands']) + else: + self.assertEqual(commands, result['commands'], result['commands']) + + return result + + def failed(self): + with self.assertRaises(AnsibleFailJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertTrue(result['failed'], result) + return result + + def changed(self, changed=False): + with self.assertRaises(AnsibleExitJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertEqual(result['changed'], changed, result) + return result + + def load_fixtures(self, commands=None): + pass diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/edgeswitch_fixtures/edgeswitch_facts_show_interfaces_description b/ansible_collections/community/network/tests/unit/plugins/modules/edgeswitch_fixtures/edgeswitch_facts_show_interfaces_description new file mode 100644 index 000000000..b6249b78e --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/edgeswitch_fixtures/edgeswitch_facts_show_interfaces_description @@ -0,0 +1,26 @@ +Interface Admin Link Description +--------- --------- ------ ---------------------------------------------------------------- +0/1 Enable Up VMOTION ESX1 +0/2 Enable Up DATA ESX1 +0/3 Enable Up VMOTION ESX2 +0/4 Enable Up DATA ESX2 +0/5 Enable Up VMOTION ESX3 +0/6 Enable Up DATA ESX3 +0/7 Enable Up VMOTION ESX4 +0/8 Enable Up DATA ESX4 +0/9 Enable Up SAVE +0/10 Enable Down +0/11 Enable Down +0/12 Enable Down +0/13 Enable Down +0/14 Enable Down +0/15 Enable Up UPLINK VIDEO WITH A VERY LONG DESCRIPTION THAT HELPS NO ONE +0/16 Enable Up UPLINK LOCAL +3/1 Enable Down +3/2 Enable Down +3/3 Enable Down +3/4 Enable Down +3/5 Enable Down +3/6 Enable Down +4/1 Enable Up + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/edgeswitch_fixtures/edgeswitch_facts_show_interfaces_status_all b/ansible_collections/community/network/tests/unit/plugins/modules/edgeswitch_fixtures/edgeswitch_facts_show_interfaces_status_all new file mode 100644 index 000000000..eeddc6ea3 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/edgeswitch_fixtures/edgeswitch_facts_show_interfaces_status_all @@ -0,0 +1,31 @@ + Link Physical Physical Media Flow Control +Port Name State Mode Status Type Status +--------- ---------------------------- ------ ---------- ---------- ------------------ ------------ +0/1 VMOTION ESX1 Up Auto D 10G Full 2.5G-BaseFX Inactive +0/2 DATA ESX1 Up Auto D 10G Full 2.5G-BaseFX Inactive +0/3 VMOTION ESX2 Up Auto D 10G Full 2.5G-BaseFX Inactive +0/4 DATA ESX2 Up Auto D 10G Full 2.5G-BaseFX Inactive +0/5 VMOTION ESX3 Up Auto D 10G Full 2.5G-BaseFX Inactive +0/6 DATA ESX3 Up Auto D 10G Full 2.5G-BaseFX Inactive +0/7 VMOTION ESX4 Up Auto D 10G Full 2.5G-BaseFX Inactive +0/8 DATA ESX4 Up Auto D 10G Full 2.5G-BaseFX Inactive +0/9 SAVE Up Auto D 10G Full 2.5G-BaseFX Inactive +0/10 Down Auto D 2.5G-BaseFX Inactive +0/11 Down Auto D 2.5G-BaseFX Inactive +0/12 Down Auto D 2.5G-BaseFX Inactive +0/13 Down Auto D 2.5G-BaseFX Inactive +0/14 Down Auto Unknown Inactive +0/15 Down Auto Unknown Inactive +0/15 UPLINK VIDEO WITH A VERY LON Up Auto 1000 Full Unknown Inactive +0/16 UPLINK LOCAL Up Auto 1000 Full Unknown Inactive +3/1 Down +3/2 Down +3/3 Down +3/4 Down +3/5 Down +3/6 Down +4/1 Up 10 Half 10 Half + +Flow Control:Disabled + + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/edgeswitch_fixtures/edgeswitch_facts_show_sysinfo b/ansible_collections/community/network/tests/unit/plugins/modules/edgeswitch_fixtures/edgeswitch_facts_show_sysinfo new file mode 100644 index 000000000..c51f2eee7 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/edgeswitch_fixtures/edgeswitch_facts_show_sysinfo @@ -0,0 +1,7 @@ +System Description............................. EdgeSwitch 16-Port 10G, 1.7.4.5075842, Linux 3.6.5, 1.0.0.4872137 +System Name.................................... sw_test_1 +System Location................................ +System Contact................................. +System Object ID............................... 1.3.6.1.4.1.4413 +System Up Time................................. 174 days 19 hrs 0 mins 51 secs +Current SNTP Synchronized Time................. Oct 20 22:53:01 2018 UTC diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/edgeswitch_fixtures/edgeswitch_facts_show_version b/ansible_collections/community/network/tests/unit/plugins/modules/edgeswitch_fixtures/edgeswitch_facts_show_version new file mode 100644 index 000000000..334abc75f --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/edgeswitch_fixtures/edgeswitch_facts_show_version @@ -0,0 +1,8 @@ +Switch: 1 + +System Description............................. EdgeSwitch 16-Port 10G, 1.7.4.5075842, Linux 3.6.5, 1.0.0.4872137 +Machine Type................................... EdgeSwitch 16-Port 10G +Machine Model.................................. ES-16-XG +Serial Number.................................. F09FC2EFD310 +Burned In MAC Address.......................... F0:9F:C2:EF:D3:10 +Software Version............................... 1.7.4.5075842 diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/edgeswitch_fixtures/edgeswitch_vlan_show_interfaces_switchport b/ansible_collections/community/network/tests/unit/plugins/modules/edgeswitch_fixtures/edgeswitch_vlan_show_interfaces_switchport new file mode 100644 index 000000000..dbf5a0fc9 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/edgeswitch_fixtures/edgeswitch_vlan_show_interfaces_switchport @@ -0,0 +1,239 @@ +Port: 0/1 +VLAN Membership Mode: General +Access Mode VLAN: 1 (default) +General Mode PVID: 1 (default) +General Mode Ingress Filtering: Disabled +General Mode Acceptable Frame Type: Admit all +General Mode Dynamically Added VLANs: +General Mode Untagged VLANs: 1 +General Mode Tagged VLANs: 100 +General Mode Forbidden VLANs: +Trunking Mode Native VLAN: 1 (default) +Trunking Mode Native VLAN tagging: Disable +Trunking Mode VLANs Enabled: All +Protected Port: False + +Port: 0/2 +VLAN Membership Mode: General +Access Mode VLAN: 1 (default) +General Mode PVID: 1 (default) +General Mode Ingress Filtering: Disabled +General Mode Acceptable Frame Type: Admit all +General Mode Dynamically Added VLANs: +General Mode Untagged VLANs: 1 +General Mode Tagged VLANs: 100 +General Mode Forbidden VLANs: +Trunking Mode Native VLAN: 1 (default) +Trunking Mode Native VLAN tagging: Disable +Trunking Mode VLANs Enabled: All +Protected Port: False + +Port: 0/3 +VLAN Membership Mode: General +Access Mode VLAN: 1 (default) +General Mode PVID: 1 (default) +General Mode Ingress Filtering: Disabled +General Mode Acceptable Frame Type: Admit all +General Mode Dynamically Added VLANs: +General Mode Untagged VLANs: +General Mode Tagged VLANs: 100 +General Mode Forbidden VLANs: 1 +Trunking Mode Native VLAN: 1 (default) +Trunking Mode Native VLAN tagging: Disable +Trunking Mode VLANs Enabled: All +Protected Port: False + +Port: 0/4 +VLAN Membership Mode: General +Access Mode VLAN: 1 (default) +General Mode PVID: 1 (default) +General Mode Ingress Filtering: Disabled +General Mode Acceptable Frame Type: Admit all +General Mode Dynamically Added VLANs: +General Mode Untagged VLANs: +General Mode Tagged VLANs: 100 +General Mode Forbidden VLANs: 1 +Trunking Mode Native VLAN: 1 (default) +Trunking Mode Native VLAN tagging: Disable +Trunking Mode VLANs Enabled: All +Protected Port: False + +Port: 0/5 +VLAN Membership Mode: General +Access Mode VLAN: 1 (default) +General Mode PVID: 100 +General Mode Ingress Filtering: Disabled +General Mode Acceptable Frame Type: Admit all +General Mode Dynamically Added VLANs: +General Mode Untagged VLANs: 100 +General Mode Tagged VLANs: +General Mode Forbidden VLANs: +Trunking Mode Native VLAN: 1 (default) +Trunking Mode Native VLAN tagging: Disable +Trunking Mode VLANs Enabled: All +Protected Port: False + +Port: 0/6 +VLAN Membership Mode: General +Access Mode VLAN: 1 (default) +General Mode PVID: 1 (default) +General Mode Ingress Filtering: Disabled +General Mode Acceptable Frame Type: Admit all +General Mode Dynamically Added VLANs: +General Mode Untagged VLANs: 1 +General Mode Tagged VLANs: +General Mode Forbidden VLANs: +Trunking Mode Native VLAN: 1 (default) +Trunking Mode Native VLAN tagging: Disable +Trunking Mode VLANs Enabled: All +Protected Port: False + +Port: 0/7 +VLAN Membership Mode: General +Access Mode VLAN: 1 (default) +General Mode PVID: 1 (default) +General Mode Ingress Filtering: Disabled +General Mode Acceptable Frame Type: Admit all +General Mode Dynamically Added VLANs: +General Mode Untagged VLANs: 1 +General Mode Tagged VLANs: +General Mode Forbidden VLANs: +Trunking Mode Native VLAN: 1 (default) +Trunking Mode Native VLAN tagging: Disable +Trunking Mode VLANs Enabled: All +Protected Port: False + +Port: 0/8 +VLAN Membership Mode: General +Access Mode VLAN: 1 (default) +General Mode PVID: 1 (default) +General Mode Ingress Filtering: Disabled +General Mode Acceptable Frame Type: Admit all +General Mode Dynamically Added VLANs: +General Mode Untagged VLANs: 1 +General Mode Tagged VLANs: +General Mode Forbidden VLANs: +Trunking Mode Native VLAN: 1 (default) +Trunking Mode Native VLAN tagging: Disable +Trunking Mode VLANs Enabled: All +Protected Port: False + +Port: 0/9 +VLAN Membership Mode: General +Access Mode VLAN: 1 (default) +General Mode PVID: 1 (default) +General Mode Ingress Filtering: Disabled +General Mode Acceptable Frame Type: Admit all +General Mode Dynamically Added VLANs: +General Mode Untagged VLANs: 1 +General Mode Tagged VLANs: 100 +General Mode Forbidden VLANs: +Trunking Mode Native VLAN: 1 (default) +Trunking Mode Native VLAN tagging: Disable +Trunking Mode VLANs Enabled: All +Protected Port: False + +Port: 0/10 +VLAN Membership Mode: General +Access Mode VLAN: 1 (default) +General Mode PVID: 1 (default) +General Mode Ingress Filtering: Disabled +General Mode Acceptable Frame Type: Admit all +General Mode Dynamically Added VLANs: +General Mode Untagged VLANs: 1 +General Mode Tagged VLANs: 100 +General Mode Forbidden VLANs: +Trunking Mode Native VLAN: 1 (default) +Trunking Mode Native VLAN tagging: Disable +Trunking Mode VLANs Enabled: All +Protected Port: False + +Port: 3/1 +VLAN Membership Mode: General +Access Mode VLAN: 1 (default) +General Mode PVID: 1 (default) +General Mode Ingress Filtering: Disabled +General Mode Acceptable Frame Type: Admit all +General Mode Dynamically Added VLANs: +General Mode Untagged VLANs: 1 +General Mode Tagged VLANs: 100 +General Mode Forbidden VLANs: +Trunking Mode Native VLAN: 1 (default) +Trunking Mode Native VLAN tagging: Disable +Trunking Mode VLANs Enabled: All +Protected Port: False + +Port: 3/2 +VLAN Membership Mode: General +Access Mode VLAN: 1 (default) +General Mode PVID: 1 (default) +General Mode Ingress Filtering: Disabled +General Mode Acceptable Frame Type: Admit all +General Mode Dynamically Added VLANs: +General Mode Untagged VLANs: 1 +General Mode Tagged VLANs: 100 +General Mode Forbidden VLANs: +Trunking Mode Native VLAN: 1 (default) +Trunking Mode Native VLAN tagging: Disable +Trunking Mode VLANs Enabled: All +Protected Port: False + +Port: 3/3 +VLAN Membership Mode: General +Access Mode VLAN: 1 (default) +General Mode PVID: 1 (default) +General Mode Ingress Filtering: Disabled +General Mode Acceptable Frame Type: Admit all +General Mode Dynamically Added VLANs: +General Mode Untagged VLANs: 1 +General Mode Tagged VLANs: 100 +General Mode Forbidden VLANs: +Trunking Mode Native VLAN: 1 (default) +Trunking Mode Native VLAN tagging: Disable +Trunking Mode VLANs Enabled: All +Protected Port: False + +Port: 3/4 +VLAN Membership Mode: General +Access Mode VLAN: 1 (default) +General Mode PVID: 1 (default) +General Mode Ingress Filtering: Disabled +General Mode Acceptable Frame Type: Admit all +General Mode Dynamically Added VLANs: +General Mode Untagged VLANs: 1 +General Mode Tagged VLANs: 100 +General Mode Forbidden VLANs: +Trunking Mode Native VLAN: 1 (default) +Trunking Mode Native VLAN tagging: Disable +Trunking Mode VLANs Enabled: All +Protected Port: False + +Port: 3/5 +VLAN Membership Mode: General +Access Mode VLAN: 1 (default) +General Mode PVID: 1 (default) +General Mode Ingress Filtering: Disabled +General Mode Acceptable Frame Type: Admit all +General Mode Dynamically Added VLANs: +General Mode Untagged VLANs: 1 +General Mode Tagged VLANs: 100 +General Mode Forbidden VLANs: +Trunking Mode Native VLAN: 1 (default) +Trunking Mode Native VLAN tagging: Disable +Trunking Mode VLANs Enabled: All +Protected Port: False + +Port: 3/6 +VLAN Membership Mode: General +Access Mode VLAN: 1 (default) +General Mode PVID: 1 (default) +General Mode Ingress Filtering: Disabled +General Mode Acceptable Frame Type: Admit all +General Mode Dynamically Added VLANs: +General Mode Untagged VLANs: 1 +General Mode Tagged VLANs: 100 +General Mode Forbidden VLANs: +Trunking Mode Native VLAN: 1 (default) +Trunking Mode Native VLAN tagging: Disable +Trunking Mode VLANs Enabled: All +Protected Port: False diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/edgeswitch_fixtures/edgeswitch_vlan_show_vlan_brief b/ansible_collections/community/network/tests/unit/plugins/modules/edgeswitch_fixtures/edgeswitch_vlan_show_vlan_brief new file mode 100644 index 000000000..36e46bac9 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/edgeswitch_fixtures/edgeswitch_vlan_show_vlan_brief @@ -0,0 +1,4 @@ +VLAN ID VLAN Name VLAN Type +------- -------------------------------- ------------------- +1 default Default +100 voice Static diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/edgeswitch_module.py b/ansible_collections/community/network/tests/unit/plugins/modules/edgeswitch_module.py new file mode 100644 index 000000000..1d670b4a2 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/edgeswitch_module.py @@ -0,0 +1,86 @@ +# (c) 2018 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os +import json + +from ansible_collections.community.network.tests.unit.plugins.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase + + +fixture_path = os.path.join(os.path.dirname(__file__), 'edgeswitch_fixtures') +fixture_data = {} + + +def load_fixture(name): + path = os.path.join(fixture_path, name) + + if path in fixture_data: + return fixture_data[path] + + with open(path) as f: + data = f.read() + + try: + data = json.loads(data) + except Exception: + pass + + fixture_data[path] = data + return data + + +class TestEdgeswitchModule(ModuleTestCase): + + def execute_module(self, failed=False, changed=False, commands=None, sort=True, defaults=False): + self.load_fixtures(commands) + + if failed: + result = self.failed() + self.assertTrue(result['failed'], result) + else: + result = self.changed(changed) + self.assertEqual(result['changed'], changed, result) + + if commands is not None: + if sort: + self.assertEqual(sorted(commands), sorted(result['commands']), result['commands']) + else: + self.assertEqual(commands, result['commands'], result['commands']) + + return result + + def failed(self): + with self.assertRaises(AnsibleFailJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertTrue(result['failed'], result) + return result + + def changed(self, changed=False): + with self.assertRaises(AnsibleExitJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertEqual(result['changed'], changed, result) + return result + + def load_fixtures(self, commands=None): + pass diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/enos_config_config.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/enos_config_config.cfg new file mode 100644 index 000000000..27b5b73cc --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/enos_config_config.cfg @@ -0,0 +1,47 @@ +Current configuration: +! +version "8.4.3.12" +switch-type "Lenovo RackSwitch G8272" +iscli-new +! +! +access https enable + +snmp-server location "Location:,Room:,Rack:Rack 3,LRU:40" +snmp-server read-community "public" +snmp-server trap-source 128 +! +! +! +no system dhcp +no system default-ip mgt +hostname router +! +! +! +!interface ip 1 +! addr <default> +! enable +! +interface ip 13 + ip address 1.2.3.4 255.255.255.0 + enable + exit +! +interface ip 128 + ip address 10.241.105.24 255.255.255.0 + enable + exit +! +ip gateway 4 address 10.241.105.1 +ip gateway 4 enable +! +! +! +! +router bgp + as 100 +! +! +end + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/enos_config_src.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/enos_config_src.cfg new file mode 100644 index 000000000..f681655be --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/enos_config_src.cfg @@ -0,0 +1,6 @@ +! +hostname foo +! +interface ip 13 + no ip ospf enable +! diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/show_interface_ip b/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/show_interface_ip new file mode 100644 index 000000000..263a861f5 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/show_interface_ip @@ -0,0 +1,9 @@ +Interface information: +1: IP4 192.168.49.50 255.255.255.0 192.168.49.255, vlan 1, up +128: IP4 10.241.105.24 255.255.255.0 10.241.105.255, vlan 4095, up + +Routed Port Interface Information: + +Loopback interface information: + + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/show_interface_status b/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/show_interface_status new file mode 100644 index 000000000..52b37eb18 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/show_interface_status @@ -0,0 +1,59 @@ +----------------------------------------------------------------------- +Port Speed Duplex Flow Ctrl Link Description +------- ------ -------- --TX-----RX-- ------ ------------- +1 1G/10G full no no down 1 +2 1G/10G full no no down 2 +3 1G/10G full no no down 3 +4 1G/10G full no no down 4 +5 1G/10G full no no down 5 +6 1G/10G full no no down 6 +7 1G/10G full no no down 7 +8 1G/10G full no no down 8 +9 1G/10G full no no down 9 +10 1G/10G full no no down 10 +11 1G/10G full no no down 11 +12 1G/10G full no no down 12 +13 1G/10G full no no down 13 +14 1G/10G full no no down 14 +15 1G/10G full no no down 15 +16 1G/10G full no no down 16 +17 1G/10G full no no down 17 +18 1G/10G full no no down 18 +19 1G/10G full no no down 19 +20 1G/10G full no no down 20 +21 1G/10G full no no down 21 +22 1G/10G full no no down 22 +23 1G/10G full no no down 23 +24 1G/10G full no no down 24 +25 1G/10G full no no down 25 +26 1G/10G full no no down 26 +27 1G/10G full no no down 27 +28 1G/10G full no no down 28 +29 1G/10G full no no down 29 +30 1G/10G full no no down 30 +31 1G/10G full no no down 31 +32 1G/10G full no no down 32 +33 1G/10G full no no down 33 +34 1G/10G full no no down 34 +35 1G/10G full no no down 35 +36 1G/10G full no no down 36 +37 1G/10G full no no down 37 +38 1000 full no no up 38 +39 1G/10G full no no down 39 +40 1G/10G full no no down 40 +41 1G/10G full no no down 41 +42 1G/10G full no no down 42 +43 1G/10G full no no down 43 +44 1G/10G full no no down 44 +45 1G/10G full no no down 45 +46 1G/10G full no no down 46 +47 1G/10G full no no down 47 +48 10000 full no no down 48 +49 40000 full no no down 49 +50 40000 full no no down 50 +51 40000 full no no down 51 +52 40000 full no no down 52 +53 40000 full no no down 53 +54 40000 full no no down 54 +MGT 1000 full yes yes up MGT + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/show_lldp_port b/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/show_lldp_port new file mode 100644 index 000000000..fcefdf03b --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/show_lldp_port @@ -0,0 +1,60 @@ +LLDP Port Info +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Port MAC address MTU PortEnabled AdminStatus RxChange TrapNotify +======= ================= ==== =========== =========== ======== ========== +1 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +2 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +3 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +4 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +5 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +6 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +7 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +8 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +9 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +10 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +11 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +12 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +13 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +14 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +15 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +16 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +17 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +18 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +19 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +20 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +21 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +22 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +23 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +24 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +25 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +26 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +27 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +28 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +29 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +30 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +31 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +32 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +33 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +34 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +35 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +36 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +37 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +38 a8:97:dc:dd:e2:00 9216 enabled tx_rx no disabled +39 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +40 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +41 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +42 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +43 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +44 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +45 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +46 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +47 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +48 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +49 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +50 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +51 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +52 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +53 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +54 a8:97:dc:dd:e2:00 9216 disabled tx_rx no disabled +MGT a8:97:dc:dd:e2:fe 9216 enabled tx_rx no disabled + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/show_lldp_remote-device_port b/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/show_lldp_remote-device_port new file mode 100644 index 000000000..1381c099d --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/show_lldp_remote-device_port @@ -0,0 +1,12 @@ +LLDP Remote Devices Information +Legend(possible values in DMAC column) : +NB - Nearest Bridge - 01-80-C2-00-00-0E +NnTB - Nearest non-TPMR Bridge - 01-80-C2-00-00-03 +NCB - Nearest Customer Bridge - 01-80-C2-00-00-00 +Total number of current entries: 1 + +LocalPort | Index | Remote Chassis ID | Remote Port | Remote System Name | DMAC +----------|-------|---------------------------|----------------------|-------------------------------|--------- +MGT | 1 | 74 26 ac 3d 3c c0 | Gi3/18 | INDIA-LAB-1-C4506E-A.labs.l...| NB + + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/show_run b/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/show_run new file mode 100644 index 000000000..4d918dfe0 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/show_run @@ -0,0 +1,59 @@ +Current configuration: +! +version "8.4.3.12" +switch-type "Lenovo RackSwitch G8272" +iscli-new +! +! +access https enable + +snmp-server location "Location:,Room:,Rack:Rack 3,LRU:40" +snmp-server read-community "public" +snmp-server trap-source 128 +! +! +! +no system dhcp +no system default-ip mgt +hostname "test1" +! +! +! +! +! +! +! +! +! +! +! +! +! +! +! +! +! +! +!interface ip 1 +! addr <default> +! enable +! +interface ip 128 + ip address 10.241.105.24 255.255.255.0 + enable + exit +! +ip gateway 4 address 10.241.105.1 +ip gateway 4 enable +! +! +! +! +! +! +router bgp + as 100 +! +! +end + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/show_running-config b/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/show_running-config new file mode 100644 index 000000000..4d918dfe0 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/show_running-config @@ -0,0 +1,59 @@ +Current configuration: +! +version "8.4.3.12" +switch-type "Lenovo RackSwitch G8272" +iscli-new +! +! +access https enable + +snmp-server location "Location:,Room:,Rack:Rack 3,LRU:40" +snmp-server read-community "public" +snmp-server trap-source 128 +! +! +! +no system dhcp +no system default-ip mgt +hostname "test1" +! +! +! +! +! +! +! +! +! +! +! +! +! +! +! +! +! +! +!interface ip 1 +! addr <default> +! enable +! +interface ip 128 + ip address 10.241.105.24 255.255.255.0 + enable + exit +! +ip gateway 4 address 10.241.105.1 +ip gateway 4 enable +! +! +! +! +! +! +router bgp + as 100 +! +! +end + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/show_system_memory b/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/show_system_memory new file mode 100644 index 000000000..0a0625eb1 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/show_system_memory @@ -0,0 +1,166 @@ +------------------------------------------------------------------ + +Memory utilization: +MemTotal: 4088580 kB +MemFree: 3464304 kB +MemAvailable: 3586864 kB +Buffers: 2016 kB +Cached: 173236 kB +SwapCached: 0 kB +Active: 504316 kB +Inactive: 38056 kB +Active(anon): 376332 kB +Inactive(anon): 27460 kB +Active(file): 127984 kB +Inactive(file): 10596 kB +Unevictable: 0 kB +Mlocked: 0 kB +HighTotal: 3407860 kB +HighFree: 2952904 kB +LowTotal: 680720 kB +LowFree: 511400 kB +SwapTotal: 0 kB +SwapFree: 0 kB +Dirty: 0 kB +Writeback: 0 kB +AnonPages: 367120 kB +Mapped: 20664 kB +Shmem: 36672 kB +Slab: 8240 kB +SReclaimable: 3492 kB +SUnreclaim: 4748 kB +KernelStack: 760 kB +PageTables: 1592 kB +NFS_Unstable: 0 kB +Bounce: 0 kB +WritebackTmp: 0 kB +CommitLimit: 2044288 kB +Committed_AS: 1128364 kB +VmallocTotal: 241652 kB +VmallocUsed: 17116 kB +VmallocChunk: 223920 kB +HugePages_Total: 0 +HugePages_Free: 0 +HugePagesPercentage used 15 + +Memory tracing: enabled +Extended Memory tracing: disabled +High-water monitoring: enabled + +Memory high-water: 20 percent (at 1818 seconds from boot) + +Memory stats: + allocs: 16484474 + frees: 16481108 + current: 3378 + alloc fails: 0 + +STEM thread memory stats: + thid name allocs frees diff current * largest + 0 INIT 2655 933 1722 69381079 31982881 + 1 STEM 0 0 0 0 0 + 2 STP 13 6 7 41165721 16673868 + 3 MFDB 1 0 1 6 6 + 4 TND 41745 42134 -389 847441 336 + 5 CONS 3867 3866 1 26622356 6291456 + 6 TNET 3806775 3809157 -2382 1032303745 12582912 + 7 TNET 126519 127060 -541 269598653 12582912 + 8 TNET 1 0 1 6131 6131 + 9 TNET 1 0 1 6131 6131 + 10 TNET 1 0 1 6131 6131 + 11 TNET 1 0 1 6131 6131 + 12 LOG 441 441 0 61437 272 + 13 TRAP 16911 16911 0 1416745 544 + 14 NTP 0 0 0 0 0 + 15 RMON 0 0 0 0 0 + 18 IP 40 7 33 26152 4248 + 19 RIP 0 0 0 0 0 + 20 AGR 24643 23177 1466 8949189 6131 + 21 EPI 0 0 0 0 0 + 22 PORT 56 0 56 60032 16384 + 23 BGP 0 10 -10 0 0 + 27 MGMT 335 162 173 48883648 524436 + 28 SCAN 0 0 0 0 0 + 29 OSPF 0 20 -20 0 0 + 30 VRRP 1 0 1 16 16 + 31 SNMP 4670978 4670164 814 2315549793 12582912 + 32 SNMP 1108 1068 40 208175203 12582912 + 34 SSHD 800286 796910 3376 271976834 2017 + 36 DT1X 0 0 0 0 0 + 37 NCFD 1 0 1 6131 6131 + 38 NCFD 1 0 1 6131 6131 + 39 NCFD 1 0 1 6131 6131 + 40 NCFD 1 0 1 6131 6131 + 41 SWR 0 0 0 0 0 + 42 SWRH 0 0 0 0 0 + 43 OBS 0 0 0 0 0 + 44 TEAM 0 0 0 0 0 + 45 I2C 0 0 0 0 0 + 46 LACP 72 0 72 1152 16 + 47 SFP 0 0 0 0 0 + 48 SWKY 0 0 0 0 0 + 49 HLNK 0 0 0 0 0 + 50 LLDP 5794454 5794373 81 598072737 14336 + 51 IPV6 0 0 0 0 0 + 52 RTM6 0 0 0 0 0 + 53 PNG6 0 0 0 0 0 + 55 OSP3 0 0 0 0 0 + 56 VMAC 0 0 0 0 0 + 57 MEMM 0 0 0 0 0 + 58 UDLD 0 0 0 0 0 + 59 FCOE 0 0 0 0 0 + 60 SFLO 0 0 0 0 0 + 61 PROX 0 0 0 0 0 + 62 OAM 0 0 0 0 0 + 63 PIM 0 0 0 0 0 + 64 DCBX 1 1 0 126 126 + 65 NBOO 1 0 1 6131 6131 + 66 VLAG 0 0 0 0 0 + 67 MLD6 0 0 0 0 0 + 68 DHCP 0 0 0 0 0 + 69 ETMR 0 0 0 0 0 + 70 IKE2 0 0 0 0 0 + 71 ACLG 1 0 1 5120 5120 + 72 HWRT 0 0 0 0 0 + 73 OFLO 17 0 17 32244 8048 + 74 SFM 0 0 0 0 0 + 75 UPTM 0 0 0 0 0 + 76 VSDB 0 2 -2 0 0 + 77 ECPT 3 0 3 168532 168000 + 78 ECPR 0 0 0 0 0 + 79 VDPT 5 0 5 5260 1460 + 80 VFDB 0 1 -1 0 0 + 81 PTP 0 0 0 0 0 + 82 PBR 0 0 0 0 0 + 83 HIST 0 0 0 0 0 + 84 SLP 699757 701435 -1678 254297215 262140 + 85 UFP 217 73 144 12908 132 + 86 CDCP 0 0 0 0 0 + 87 IGMP 0 0 0 0 0 + 88 ICMP 0 0 0 0 0 + 89 HCM 0 0 0 0 0 + 90 CFCF 0 0 0 0 0 + 91 FDF@ 0 0 0 0 0 + 92 NAT 0 0 0 0 0 + 93 OCM1 11 0 11 44 4 + 94 OCM2 0 0 0 0 0 + 95 OFDT 0 0 0 0 0 + 96 OSFM 5 0 5 2636 1024 + 97 OBSC 0 0 0 0 0 + 98 STPM 0 0 0 0 0 + 99 ARP 0 0 0 0 0 + 100 VXLN 0 0 0 0 0 + 101 OVSD 0 0 0 0 0 + 102 OVSC 0 0 0 0 0 + 103 VTEP 0 0 0 0 0 + 104 BFD 18 0 18 440 44 + 105 STPR 0 0 0 0 0 + 106 VMFD 0 0 0 0 0 + 107 NORM 0 0 0 0 0 + 108 DONE 494136 493788 348 280129530 6291456 + Total 16485149 16481768 3381 1132837544 + + Non-STEM allocs 0 + Non-STEM frees 2 + Overhead 1780 + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/show_version b/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/show_version new file mode 100644 index 000000000..a0f52b573 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/enos_fixtures/show_version @@ -0,0 +1,60 @@ +System Information at 11:37:06 Fri Oct 27, 2017 +Time zone: No timezone configured +Daylight Savings Time Status: Disabled + +Lenovo RackSwitch G8272 + +Switch has been up for 30 days, 10 hours, 43 minutes and 14 seconds. +Last boot: 00:53:32 Wed Sep 27, 2017 (power cycle) + +MAC address: a8:97:dc:dd:e2:00 IP (If 1) address: 192.168.49.50 +Management Port MAC Address: a8:97:dc:dd:e2:fe +Management Port IP Address (if 128): 10.241.105.24 +Hardware Revision: 0 +Board Revision: +Hardware Part No: 00CJ066 +Old Hardware Part No: 2MV4CR01W +Switch Serial No: Y052MV4CR01W +Manufacturing date: 14/51 + +MTM Value: 7159-HCV +Old MTM Value: +ESN: MM01086 + + +WARNING: This is UNRELEASED SOFTWARE for LAB TESTING ONLY. + DO NOT USE IN A PRODUCTION NETWORK. + + +Software Version 8.4.3.12 (FLASH image1), active configuration. +Boot kernel version 8.4.3.12 + +USB Boot: disabled + + + +Temperature CPU Local : 31 C +Temperature Ambient : 32 C +Temperature Hot Spot : 44 C +Temperature Asic Max : 63 C + +System Warning at 85 C / Shutdown at 95 C / Set Point is 70 C + +Fan 1 Module 1: 4054rpm 60pwm(23%) Front-To-Back +Fan 2 Module 1: 4404rpm 60pwm(23%) Front-To-Back +Fan 3 Module 2: 4112rpm 60pwm(23%) Front-To-Back +Fan 4 Module 2: 4372rpm 60pwm(23%) Front-To-Back +Fan 5 Module 3: 4072rpm 60pwm(23%) Front-To-Back +Fan 6 Module 3: 4306rpm 60pwm(23%) Front-To-Back +Fan 7 Module 4: 4134rpm 60pwm(23%) Front-To-Back +Fan 8 Module 4: 4326rpm 60pwm(23%) Front-To-Back + +System Fan Airflow: Front-To-Back + +Power Supply 1: Front-To-Back [DPS-460KB C] +Power Supply 2: Front-To-Back [DPS-460KB C] + + Power Faults: PS1-Pwr + Fan Faults: None +Service Faults: Too-Few-PS + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/enos_module.py b/ansible_collections/community/network/tests/unit/plugins/modules/enos_module.py new file mode 100644 index 000000000..5d33bc3b2 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/enos_module.py @@ -0,0 +1,119 @@ +# Copyright (C) 2017 Lenovo, Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os +import json + +from ansible_collections.community.network.tests.unit.compat import unittest +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible.module_utils import basic + + +fixture_path = os.path.join(os.path.dirname(__file__), 'enos_fixtures') +fixture_data = {} + + +def load_fixture(name): + path = os.path.join(fixture_path, name) + + if path in fixture_data: + return fixture_data[path] + + with open(path) as f: + data = f.read() + + try: + data = json.loads(data) + except Exception: + pass + + fixture_data[path] = data + return data + + +class AnsibleExitJson(Exception): + pass + + +class AnsibleFailJson(Exception): + pass + + +class TestEnosModule(unittest.TestCase): + + def setUp(self): + self.mock_sleep = patch('time.sleep') + self.mock_sleep.start() + + def tearDown(self): + self.mock_sleep.stop() + + def execute_module(self, failed=False, changed=False, commands=None, + sort=True, defaults=False): + + self.load_fixtures(commands) + + if failed: + result = self.failed() + self.assertTrue(result['failed'], result) + else: + result = self.changed(changed) + self.assertEqual(result['changed'], changed, result) + + if commands is not None: + if sort: + self.assertEqual(sorted(commands), sorted(result['commands']), + result['commands']) + else: + self.assertEqual(commands, result['commands'], + result['commands']) + + return result + + def failed(self): + def fail_json(*args, **kwargs): + kwargs['failed'] = True + raise AnsibleFailJson(kwargs) + + with patch.object(basic.AnsibleModule, 'fail_json', fail_json): + with self.assertRaises(AnsibleFailJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertTrue(result['failed'], result) + return result + + def changed(self, changed=False): + def exit_json(*args, **kwargs): + if 'changed' not in kwargs: + kwargs['changed'] = False + raise AnsibleExitJson(kwargs) + + with patch.object(basic.AnsibleModule, 'exit_json', exit_json): + with self.assertRaises(AnsibleExitJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertEqual(result['changed'], changed, result) + return result + + def load_fixtures(self, commands=None): + pass diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/exos_config_config.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/exos_config_config.cfg new file mode 100644 index 000000000..5b1ad1e21 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/exos_config_config.cfg @@ -0,0 +1,31 @@ +# +# Module devmgr configuration. +# +configure snmp sysName "x870" +configure snmp sysContact "support@extremenetworks.com, +1 888 257 3000" +configure sys-recovery-level switch reset + +# +# Module vpex configuration. +# + +# +# Module vlan configuration. +# +configure vlan default delete ports all +configure vr VR-Default delete ports 1-128 +configure vr VR-Default add ports 1-128 +configure vlan default delete ports 1-2 +create vlan "ansible_test" +configure vlan ansible_test tag 1111 +create vlan "vlan1" +create vlan "vlan2" +create vlan "vlan3" +configure ports 1 description-string "Firewall" +configure ports 2 description-string "Master Uplink" +configure ports 3 description-string "Database Server" +configure vlan ansible_test add ports 1 tagged +configure vlan Default add ports 3-128 untagged +configure vlan vlan1 ipaddress 10.0.1.1 255.255.255.0 +configure vlan vlan2 ipaddress 192.168.1.1 255.255.0.0 +configure vlan3 ipaddress fe80::202:b3ff:fe1e:8329/64 diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/exos_config_modified.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/exos_config_modified.cfg new file mode 100644 index 000000000..75a57199f --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/exos_config_modified.cfg @@ -0,0 +1,31 @@ +# +# Module devmgr configuration. +# +configure snmp sysName "marble" +configure snmp sysContact "support@extremenetworks.com, +1 888 257 3000" +configure sys-recovery-level switch reset + +# +# Module vpex configuration. +# + +# +# Module vlan configuration. +# +configure vlan default delete ports all +configure vr VR-Default delete ports 1-128 +configure vr VR-Default add ports 1-128 +configure vlan default delete ports 1-2 +create vlan "ansible_test" +configure vlan ansible_test tag 1111 +create vlan "vlan1" +create vlan "vlan2" +create vlan "vlan3" +configure ports 1 description-string "Firewall" +configure ports 2 description-string "Master Uplink" +configure ports 3 description-string "Database Server" +configure vlan ansible_test add ports 1 tagged +configure vlan Default add ports 3-128 untagged +configure vlan vlan1 ipaddress 10.0.1.1 255.255.255.0 +configure vlan vlan2 ipaddress 192.168.1.1 255.255.0.0 +configure vlan3 ipaddress fe80::202:b3ff:fe1e:8329/64 diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/exos_config_src.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/exos_config_src.cfg new file mode 100644 index 000000000..ac86d493b --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/exos_config_src.cfg @@ -0,0 +1,2 @@ +configure snmp sysName "marble" +configure ports 1 description-string "IDS" diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/show_lldp_neighbors b/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/show_lldp_neighbors new file mode 100644 index 000000000..181696a9d --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/show_lldp_neighbors @@ -0,0 +1 @@ +[{"CLIoutput": "\n Neighbor Neighbor Neighbor\nPort Chassis ID Port ID TTL Age System Name\n===============================================================================\n1 00:02:02:02:02:02 1 120 26 EXOS-VM\n2 00:02:02:02:02:02 2 120 25 EXOS-VM\n3 00:02:02:02:02:02 3 120 25 EXOS-VM\n===============================================================================\nNOTE: The Chassis ID and/or Port ID might be truncated to fit the screen.\n\n"}, {"lldpPortNbrInfoShort": {"age": 26, "lastUpdate": 8412, "nbrChassisID": "00:02:02:02:02:02", "nbrChassisIdType": 4, "nbrIndex": 1, "nbrPortDescr": "Not-Advertised", "nbrPortID": 1, "nbrPortIdType": 5, "nbrSysDescr": "ExtremeXOS (EXOS-VM) version 30.1.0.27 xos_30.1 by lrichardson on Mon Apr 30 13:38:10 EDT 2018", "nbrSysName": "EXOS-VM", "nbrsOnThisPort": 1, "port": 1, "ttl": 120}, "status": "MORE"}, {"lldpPortNbrInfoShort": {"age": 25, "lastUpdate": 8412, "nbrChassisID": "00:02:02:02:02:02", "nbrChassisIdType": 4, "nbrIndex": 1, "nbrPortDescr": "Not-Advertised", "nbrPortID": 2, "nbrPortIdType": 5, "nbrSysDescr": "ExtremeXOS (EXOS-VM) version 30.1.0.27 xos_30.1 by lrichardson on Mon Apr 30 13:38:10 EDT 2018", "nbrSysName": "EXOS-VM", "nbrsOnThisPort": 1, "port": 2, "ttl": 120}, "status": "MORE"}, {"lldpPortNbrInfoShort": {"age": 25, "lastUpdate": 8417, "nbrChassisID": "00:02:02:02:02:02", "nbrChassisIdType": 4, "nbrIndex": 1, "nbrPortDescr": "Not-Advertised", "nbrPortID": 3, "nbrPortIdType": 5, "nbrSysDescr": "ExtremeXOS (EXOS-VM) version 30.1.0.27 xos_30.1 by lrichardson on Mon Apr 30 13:38:10 EDT 2018", "nbrSysName": "EXOS-VM", "nbrsOnThisPort": 1, "port": 3, "ttl": 120}, "status": "MORE"}, {"status": "SUCCESS"}] diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/show_memory b/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/show_memory new file mode 100644 index 000000000..609a24b89 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/show_memory @@ -0,0 +1,95 @@ + +System Memory Information +------------------------- + Total DRAM (KB): 8388608 + System (KB): 357088 + User (KB): 558460 + Free (KB): 7473060 + +Memory Utilization Statistics +----------------------------- + + Process Name Memory (KB) +----------------------------- + aaa 2212 + acl 1637 + bfd 1158 + bgp 10031 + brm 822 + cfgmgr 2466 + cli 16169 + devmgr 884 + dirser 463 + dosprotect 570 + dot1ag 1370 + eaps 1359 + edp 1260 + elrp 1250 + elsm 917 + ems 3196 + epm 1646 + erps 1282 + esrp 1101 + ethoam 858 + etmon 7865 + exacl 0 + exdhcpsnoop 0 + exdos 0 + exfib 0 + exnasnoop 0 + exosmc 0 + exosq 0 + expolicy 0 + exsflow 0 + exsnoop 0 + exsshd 1522 + exvlan 0 + fdb 1990 + hal 141451 + hclag 899 + idMgr 3448 + ipSecurity 1042 + ipfix 956 + isis 1403 + ismb 0 + lacp 1306 + lldp 1724 + mcmgr 2183 + mpls 0 + mrp 1482 + msdp 915 + netLogin 1641 + netTools 4336 + nettx 0 + nodealias 1847 + nodemgr 501 + ntp 812 + openflow 0 + ospf 1455 + ospfv3 5130 + otm 1095 + ovsdb 8206 + pim 2100 + polMgr 479 + policy 45998 + pwmib 458 + rip 1000 + ripng 739 + rtmgr 2679 + snmpMaster 2798 + snmpSubagent 5728 + stp 2020 + techSupport 681 + telnetd 890 + tftpd 336 + throw 5262 + thttpd 8944 + twamp 471 + upm 859 + vlan 3215 + vmt 1599 + vpex 1771 + vrrp 1185 + vsm 1486 + xmlc 1013 + xmld 3468 diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/show_port_config b/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/show_port_config new file mode 100644 index 000000000..271924f09 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/show_port_config @@ -0,0 +1 @@ +[{"CLIoutput": "Port Configuration\nPort Virtual Port Link Auto Speed Duplex Flow Load Media\n router State State Neg Cfg Actual Cfg Actual Cntrl Master Pri Red\n================================================================================\n1 VR-Default E R OFF 25000 FULL NONE \n2 VR-Default E R OFF 25000 FULL NONE \n3 VR-Default E R OFF 25000 FULL NONE \n4 VR-Default E R OFF 25000 FULL NONE \n================================================================================\n> indicates Port Display Name truncated past 8 characters\nLink State: A-Active, R-Ready, NP-Port Not Present, L-Loopback\nPort State: D-Disabled, E-Enabled, L-License Disabled\nMedia: !-Unsupported, $-Unlicensed\nMedia Red: * - use \"show port info detail\" for redundant media type\nFlow Cntrl: Shows link partner's abilities. NONE if Auto Neg is OFF\n"}, {"show_ports_config": {"duplexActual": null, "duplexCfg": "FULL", "flowControl": null, "isAutoNegOn": 0, "licenseDisable": 0, "linkState": 0, "port": 1, "portList": "1-4", "portState": 1, "primaryMedia": " NONE", "speedActual": null, "speedCfg": 25000, "vrName": "VR-Default"}, "status": "MORE"}, {"show_ports_config": {"duplexActual": null, "duplexCfg": "FULL", "flowControl": null, "isAutoNegOn": 0, "licenseDisable": 0, "linkState": 0, "port": 2, "portList": "1-4", "portState": 1, "primaryMedia": " NONE", "speedActual": null, "speedCfg": 25000, "vrName": "VR-Default"}, "status": "MORE"}, {"show_ports_config": {"duplexActual": null, "duplexCfg": "FULL", "flowControl": null, "isAutoNegOn": 0, "licenseDisable": 0, "linkState": 0, "port": 3, "portList": "1-4", "portState": 1, "primaryMedia": " NONE", "speedActual": null, "speedCfg": 25000, "vrName": "VR-Default"}, "status": "MORE"}, {"show_ports_config": {"duplexActual": null, "duplexCfg": "FULL", "flowControl": null, "isAutoNegOn": 0, "licenseDisable": 0, "linkState": 0, "port": 4, "portList": "1-4", "portState": 1, "primaryMedia": " NONE", "speedActual": null, "speedCfg": 25000, "vrName": "VR-Default"}, "status": "SUCCESS"}] diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/show_port_description b/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/show_port_description new file mode 100644 index 000000000..5fadcf78a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/show_port_description @@ -0,0 +1,2 @@ +[{"CLIoutput": "Port Display String Description String \n===== ==================== ==================================================\n1 Firewall\n2 \n3 Database Server\n4 \n===== ==================== ==================================================\n"}, {"show_ports_description": {"descriptionString": "Firewall", "port": 1, "portList": "1-4"}, "status": "MORE"}, {"show_ports_description": {"port": 2, "portList": "1-4"}, "status": "MORE"}, {"show_ports_description": {"descriptionString": "Database Server", "port": 3, "portList": "1-4"}, "status": "MORE"}, {"show_ports_description": {"port": 4, "portList": "1-4"}, "status": "SUCCESS"}] + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/show_switch b/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/show_switch new file mode 100644 index 000000000..9015286c3 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/show_switch @@ -0,0 +1,33 @@ + +SysName: X870-32c +SysLocation: +SysContact: support@extremenetworks.com, +1 888 257 3000 +System MAC: 00:04:96:9A:B4:F7 +System Type: X870-32c + +SysHealth check: Enabled (Normal) +Recovery Mode: All +System Watchdog: Enabled + +Current Time: Wed Jul 18 12:44:49 2018 +Timezone: [Auto DST Disabled] GMT Offset: 0 minutes, name is UTC. +Boot Time: Tue Jul 17 12:49:58 2018 +Boot Count: 4970 +Next Reboot: None scheduled +System UpTime: 23 hours 54 minutes 50 seconds + +Current State: OPERATIONAL +Image Selected: secondary +Image Booted: secondary +Primary ver: 30.1.0.37 +Secondary ver: 22.5.1.7 + +Config Selected: primary.cfg +Config Booted: primary.cfg +Config Automatic: NONE (Disabled) + +primary.cfg Created by ExtremeXOS version 22.6.0.11 + 983139 bytes saved on Wed Jun 6 16:59:49 2018 + +LAA MAC: Locally Administered MAC Address Disabled + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/show_version b/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/show_version new file mode 100644 index 000000000..a34236ee4 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/show_version @@ -0,0 +1,6 @@ +Switch : 800745-00-01 1604G-00175 Rev 01 IMG: 22.5.1.7 + +Image : ExtremeXOS version 22.5.1.7 by release-manager + on Tue May 22 11:25:12 EDT 2018 +Diagnostics : +Certified Version : EXOS Linux 3.18.48, FIPS fips-ecp-2.0.16 diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/show_vlan b/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/show_vlan new file mode 100644 index 000000000..fd15cc592 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/show_vlan @@ -0,0 +1,2 @@ +[{"CLIoutput": "VLAN Interface with name Default created by user\n Admin State:\t Enabled Tagging:\t802.1Q Tag 1 \n Description:\t None\n Virtual router:\t VR-Default\n IPv4 Forwarding:\t Disabled\n IPv4 MC Forwarding: Disabled\n IPv6 Forwarding:\t Disabled\n IPv6 MC Forwarding: Disabled\n IPv6: None\n STPD: \t\t s0(Enabled,Auto-bind) \n Protocol: Match all unfiltered protocols\n Loopback: Disabled\n NetLogin: Disabled\n OpenFlow: Disabled\n QosProfile: \t None configured\n Egress Rate Limit Designated Port: None configured\n Flood Rate Limit QosProfile: None configured\n Suppress ARP: Disabled\n Proxy ARP: Entry required\n Ports: 127. \t (Number of active ports=0)\n Untag: 2b, 3b, 4b, 5b, 6b, 7b, 8b,\n 9b, 10b, 11b, 12b, 13b, 14b, 15b,\n 16b, 17b, 18b, 19b, 20b, 21b, 22b,\n 23b, 24b, 25b, 26b, 27b, 28b, 29b,\n 30b, 31b, 32b, 33b, 34b, 35b, 36b,\n 37b, 38b, 39b, 40b, 41b, 42b, 43b,\n 44b, 45b, 46b, 47b, 48b, 49b, 50b,\n 51b, 52b, 53b, 54b, 55b, 56b, 57b,\n 58b, 59b, 60b, 61b, 62b, 63b, 64b,\n 65b, 66b, 67b, 68b, 69b, 70b, 71b,\n 72b, 73b, 74b, 75b, 76b, 77b, 78b,\n 79b, 80b, 81b, 82b, 83b, 84b, 85b,\n 86b, 87b, 88b, 89b, 90b, 91b, 92b,\n 93b, 94b, 95b, 96b, 97b, 98b, 99b,\n 100b, 101b, 102b, 103b, 104b, 105b, 106b,\n 107b, 108b, 109b, 110b, 111b, 112b, 113b,\n 114b, 115b, 116b, 117b, 118b, 119b, 120b,\n 121b, 122b, 123b, 124b, 125b, 126b, 127b,\n 128b\n\tFlags: (*) Active, (!) Disabled, (g) Load Sharing port\n (b) Port blocked on the vlan, (m) Mac-Based port\n (i) Port inactivated on the vlan due to VXLAN configuration\n (a) Egress traffic allowed for NetLogin\n (u) Egress traffic unallowed for NetLogin\n (t) Translate VLAN tag for Private-VLAN\n (s) Private-VLAN System Port, (L) Loopback port\n (x) VMAN Tag Translated port\n (A) Dynamically added by Auto-peering\n (F) Dynamically added by Fabric Attach\n (G) Multi-switch LAG Group port\n (H) Dynamically added by MVRP\n (I) Dynamically added by IDM\n (N) Dynamically added by Netlogin\n (U) Dynamically added uplink port\n (V) Dynamically added by VM Tracking\n\n#\n#\nVLAN Interface with name Mgmt created by user\n Admin State:\t Enabled Tagging:\t802.1Q Tag 4095 \n Description:\t Management VLAN \n Virtual router:\t VR-Mgmt\n IPv4 Forwarding:\t Disabled\n IPv4 MC Forwarding: Disabled\n IPv6 Forwarding:\t Disabled\n IPv6 MC Forwarding: Disabled\n IPv6: None\n STPD: \t\t None\n Protocol: Match all unfiltered protocols\n Loopback: Disabled\n NetLogin: Disabled\n OpenFlow: Disabled\n QosProfile: \t None configured\n Flood Rate Limit QosProfile: None configured\n Suppress ARP: Disabled\n Proxy ARP: Entry required\n Ports: 1. \t (Number of active ports=1)\n Untag: Mgmt-port on Mgmt is active\n\n\n#\n#\nVLAN Interface with name vlan1 created by user\n Admin State:\t Enabled Tagging:Untagged (Internal tag 4093) \n Description:\t None\n Virtual router:\t VR-Default\n IPv4 Forwarding:\t Disabled\n IPv4 MC Forwarding: Disabled\n Primary IP:\t\t 10.0.1.1/24\n IPv6 Forwarding:\t Disabled\n IPv6 MC Forwarding: Disabled\n IPv6: None\n STPD: \t\t None\n Protocol: Match all unfiltered protocols\n Loopback: Disabled\n NetLogin: Disabled\n OpenFlow: Disabled\n QosProfile: \t None configured\n Egress Rate Limit Designated Port: None configured\n Flood Rate Limit QosProfile: None configured\n Suppress ARP: Disabled\n Proxy ARP: Entry required\n Ports: 0. \t (Number of active ports=0)\n\n#\n#\nVLAN Interface with name vlan2 created by user\n Admin State:\t Enabled Tagging:Untagged (Internal tag 4092) \n Description:\t None\n Virtual router:\t VR-Default\n IPv4 Forwarding:\t Disabled\n IPv4 MC Forwarding: Disabled\n Primary IP:\t\t 192.168.1.1/16\n IPv6 Forwarding:\t Disabled\n IPv6 MC Forwarding: Disabled\n IPv6: None\n STPD: \t\t None\n Protocol: Match all unfiltered protocols\n Loopback: Disabled\n NetLogin: Disabled\n OpenFlow: Disabled\n QosProfile: \t None configured\n Egress Rate Limit Designated Port: None configured\n Flood Rate Limit QosProfile: None configured\n Suppress ARP: Disabled\n Proxy ARP: Entry required\n Ports: 0. \t (Number of active ports=0)\n\n#\n#\nVLAN Interface with name vlan3 created by user\n Admin State:\t Enabled Tagging:Untagged (Internal tag 4091) \n Description:\t None\n Virtual router:\t VR-Default\n IPv4 Forwarding:\t Disabled\n IPv4 MC Forwarding: Disabled\n IPv6 Forwarding:\t Disabled\n IPv6 MC Forwarding: Disabled\n IPv6: fe80::202:b3ff:fe1e:8329/64 (Tentative)\n STPD: \t\t None\n Protocol: Match all unfiltered protocols\n Loopback: Disabled\n NetLogin: Disabled\n OpenFlow: Disabled\n QosProfile: \t None configured\n Egress Rate Limit Designated Port: None configured\n Flood Rate Limit QosProfile: None configured\n Suppress ARP: Disabled\n Proxy ARP: Entry required\n Ports: 0. \t (Number of active ports=0)\n\n"}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 1, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "atcktInst": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "cepPvid": 0, "count1": 127, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": "ANY", "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 2, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 0, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": "VR-Default", "name3": null, "name4": "by user", "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": "invalid port", "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 1, "tagStatus": 1, "taggedPorts": null, "untaggedPorts": "2-128", "vManMode": 0, "vlanFrlQos": 0, "vlanType": 2, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"rtifIpv6Address": {"address_state": 0, "flags": 70368744177664, "ifIndex": 10, "ipMtu": 1500, "ipv6_address_mask": "fe80::202:b3ff:fe1e:8329/64", "rtifName": "vlan3"}, "status": "MORE"}, {"status": "SUCCESS", "stp_vlan": {"ignore_bpdu": 0, "ignore_stp": 0, "vlan_name": "Default"}}, {"status": "MORE", "stp_vlan_stats": {"num_stp_ports": 127, "stpd_name": "s0", "vlanTag": 1, "vlan_name": "Default"}}, {"status": "SUCCESS", "stp_domain_enable": {"protocol_mode": 3, "stpd_enabled": 1, "stpd_name": "s0", "stpd_tag": 0}}, {"status": "SUCCESS", "stp_vlan_autoadd": {"auto_add_enabled": 1, "stpd_name": "s0", "vlan_name": "Default"}}, {"message": "mpls is not running in VR VR-Default.", "status": "ERROR"}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 2, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 3, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 4, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 5, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 6, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 7, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 8, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 9, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 10, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 11, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 12, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 13, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 14, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 15, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 16, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 17, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 18, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 19, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 20, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 21, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 22, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 23, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 24, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 25, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 26, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 27, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 28, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 29, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 30, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 31, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 32, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 33, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 34, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 35, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 36, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 37, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 38, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 39, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 40, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 41, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 42, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 43, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 44, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 45, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 46, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 47, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 48, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 49, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 50, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 51, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 52, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 53, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 54, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 55, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 56, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 57, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 58, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 59, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 60, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 61, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 62, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 63, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 64, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 65, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 66, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 67, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 68, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 69, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 70, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 71, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 72, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 73, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 74, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 75, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 76, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 77, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 78, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 79, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 80, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 81, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 82, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 83, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 84, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 85, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 86, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 87, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 88, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 89, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 90, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 91, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 92, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 93, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 94, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 95, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 96, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 97, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 98, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 99, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 100, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 101, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 102, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 103, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 104, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 105, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 106, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 107, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 108, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 109, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 110, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 111, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 112, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 113, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 114, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 115, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 116, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 117, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 118, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 119, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 120, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 121, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 122, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 123, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 124, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 125, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 126, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 127, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "SUCCESS", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 128, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 2, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 3, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 4, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 5, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 6, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 7, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 8, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 9, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 10, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 11, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 12, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 13, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 14, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 15, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 16, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 17, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 18, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 19, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 20, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 21, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 22, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 23, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 24, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 25, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 26, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 27, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 28, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 29, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 30, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 31, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 32, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 33, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 34, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 35, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 36, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 37, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 38, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 39, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 40, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 41, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 42, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 43, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 44, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 45, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 46, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 47, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 48, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 49, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 50, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 51, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 52, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 53, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 54, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 55, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 56, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 57, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 58, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 59, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 60, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 61, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 62, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 63, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 64, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 65, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 66, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 67, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 68, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 69, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 70, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 71, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 72, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 73, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 74, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 75, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 76, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 77, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 78, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 79, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 80, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 81, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 82, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 83, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 84, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 85, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 86, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 87, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 88, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 89, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 90, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 91, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 92, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 93, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 94, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 95, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 96, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 97, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 98, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 99, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 100, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 101, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 102, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 103, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 104, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 105, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 106, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 107, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 108, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 109, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 110, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 111, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 112, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 113, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 114, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 115, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 116, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 117, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 118, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 119, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 120, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 121, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 122, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 123, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 124, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 125, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 126, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 127, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "SUCCESS", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 128, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 1, "adminState": 1, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "atcktInst": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "cepPvid": 0, "count1": 1, "description": "Management VLAN", "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": "ANY", "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 2, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 0, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 1, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Mgmt", "name10": null, "name2": "VR-Mgmt", "name3": "Mgmt", "name4": "by user", "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": "invalid port", "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 4095, "tagStatus": 1, "taggedPorts": null, "untaggedPorts": 1, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"rtifIpv6Address": {"address_state": 0, "flags": 70368744177664, "ifIndex": 10, "ipMtu": 1500, "ipv6_address_mask": "fe80::202:b3ff:fe1e:8329/64", "rtifName": "vlan3"}, "status": "MORE"}, {"status": "SUCCESS", "stp_vlan": {"ignore_bpdu": 0, "ignore_stp": 0, "vlan_name": "Mgmt"}}, {"message": "mpls is not running in VR VR-Default.", "status": "ERROR"}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 1, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "atcktInst": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "cepPvid": 0, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": "ANY", "flags": null, "inactivePort": 0, "ipAddress": "10.0.1.1", "ipMtu": 0, "ipProxyArp": 2, "ipStatus": 1, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 1, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 0, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 24, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "vlan1", "name10": null, "name2": "VR-Default", "name3": null, "name4": "by user", "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": "invalid port", "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 4093, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 3, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"rtifIpv6Address": {"address_state": 0, "flags": 70368744177664, "ifIndex": 10, "ipMtu": 1500, "ipv6_address_mask": "fe80::202:b3ff:fe1e:8329/64", "rtifName": "vlan3"}, "status": "MORE"}, {"status": "SUCCESS", "stp_vlan": {"ignore_bpdu": 0, "ignore_stp": 0, "vlan_name": "vlan1"}}, {"message": "mpls is not running in VR VR-Default.", "status": "ERROR"}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 1, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "atcktInst": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "cepPvid": 0, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": "ANY", "flags": null, "inactivePort": 0, "ipAddress": "192.168.1.1", "ipMtu": 0, "ipProxyArp": 2, "ipStatus": 1, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 1, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 0, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 16, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "vlan2", "name10": null, "name2": "VR-Default", "name3": null, "name4": "by user", "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": "invalid port", "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 4092, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 3, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"rtifIpv6Address": {"address_state": 0, "flags": 70368744177664, "ifIndex": 10, "ipMtu": 1500, "ipv6_address_mask": "fe80::202:b3ff:fe1e:8329/64", "rtifName": "vlan3"}, "status": "MORE"}, {"status": "SUCCESS", "stp_vlan": {"ignore_bpdu": 0, "ignore_stp": 0, "vlan_name": "vlan2"}}, {"message": "mpls is not running in VR VR-Default.", "status": "ERROR"}, {"status": "SUCCESS", "vlanProc": {"action": null, "activePorts": 0, "adminState": 1, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "atcktInst": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "cepPvid": 0, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": "ANY", "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 2, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 0, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "vlan3", "name10": null, "name2": "VR-Default", "name3": null, "name4": "by user", "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": "invalid port", "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 4091, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 3, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"rtifIpv6Address": {"address_state": 0, "flags": 70368744177664, "ifIndex": 10, "ipMtu": 1500, "ipv6_address_mask": "fe80::202:b3ff:fe1e:8329/64", "rtifName": "vlan3"}, "status": "MORE"}, {"status": "SUCCESS", "stp_vlan": {"ignore_bpdu": 0, "ignore_stp": 0, "vlan_name": "vlan3"}}, {"message": "mpls is not running in VR VR-Default.", "status": "ERROR"}, {"status": "ERROR"}] + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/show_vlan_detail b/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/show_vlan_detail new file mode 100644 index 000000000..d73434c21 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/exos_fixtures/show_vlan_detail @@ -0,0 +1 @@ +[{"CLIoutput": "VLAN Interface with name Default created by user\n Admin State:\t Enabled Tagging:\t802.1Q Tag 1 \n Description:\t None\n Virtual router:\t VR-Default\n IPv4 Forwarding:\t Disabled\n IPv4 MC Forwarding: Disabled\n IPv6 Forwarding:\t Disabled\n IPv6 MC Forwarding: Disabled\n IPv6: None\n STPD: \t\t s0(Enabled,Auto-bind) \n Protocol: Match all unfiltered protocols\n Loopback: Disabled\n NetLogin: Disabled\n OpenFlow: Disabled\n QosProfile: \t None configured\n Egress Rate Limit Designated Port: None configured\n Flood Rate Limit QosProfile: None configured\n Suppress ARP: Disabled\n Proxy ARP: Entry required\n Ports: 127. \t (Number of active ports=0)\n Untag: 2b, 3b, 4b, 5b, 6b, 7b, 8b,\n 9b, 10b, 11b, 12b, 13b, 14b, 15b,\n 16b, 17b, 18b, 19b, 20b, 21b, 22b,\n 23b, 24b, 25b, 26b, 27b, 28b, 29b,\n 30b, 31b, 32b, 33b, 34b, 35b, 36b,\n 37b, 38b, 39b, 40b, 41b, 42b, 43b,\n 44b, 45b, 46b, 47b, 48b, 49b, 50b,\n 51b, 52b, 53b, 54b, 55b, 56b, 57b,\n 58b, 59b, 60b, 61b, 62b, 63b, 64b,\n 65b, 66b, 67b, 68b, 69b, 70b, 71b,\n 72b, 73b, 74b, 75b, 76b, 77b, 78b,\n 79b, 80b, 81b, 82b, 83b, 84b, 85b,\n 86b, 87b, 88b, 89b, 90b, 91b, 92b,\n 93b, 94b, 95b, 96b, 97b, 98b, 99b,\n 100b, 101b, 102b, 103b, 104b, 105b, 106b,\n 107b, 108b, 109b, 110b, 111b, 112b, 113b,\n 114b, 115b, 116b, 117b, 118b, 119b, 120b,\n 121b, 122b, 123b, 124b, 125b, 126b, 127b,\n 128b\n\tFlags: (*) Active, (!) Disabled, (g) Load Sharing port\n (b) Port blocked on the vlan, (m) Mac-Based port\n (i) Port inactivated on the vlan due to VXLAN configuration\n (a) Egress traffic allowed for NetLogin\n (u) Egress traffic unallowed for NetLogin\n (t) Translate VLAN tag for Private-VLAN\n (s) Private-VLAN System Port, (L) Loopback port\n (x) VMAN Tag Translated port\n (A) Dynamically added by Auto-peering\n (F) Dynamically added by Fabric Attach\n (G) Multi-switch LAG Group port\n (H) Dynamically added by MVRP\n (I) Dynamically added by IDM\n (N) Dynamically added by Netlogin\n (U) Dynamically added uplink port\n (V) Dynamically added by VM Tracking\n\n#\n#\nVLAN Interface with name Mgmt created by user\n Admin State:\t Enabled Tagging:\t802.1Q Tag 4095 \n Description:\t Management VLAN \n Virtual router:\t VR-Mgmt\n IPv4 Forwarding:\t Disabled\n IPv4 MC Forwarding: Disabled\n IPv6 Forwarding:\t Disabled\n IPv6 MC Forwarding: Disabled\n IPv6: None\n STPD: \t\t None\n Protocol: Match all unfiltered protocols\n Loopback: Disabled\n NetLogin: Disabled\n OpenFlow: Disabled\n QosProfile: \t None configured\n Flood Rate Limit QosProfile: None configured\n Suppress ARP: Disabled\n Proxy ARP: Entry required\n Ports: 1. \t (Number of active ports=1)\n Untag: Mgmt-port on Mgmt is active\n\n\n#\n#\nVLAN Interface with name vlan1 created by user\n Admin State:\t Enabled Tagging:Untagged (Internal tag 4093) \n Description:\t None\n Virtual router:\t VR-Default\n IPv4 Forwarding:\t Disabled\n IPv4 MC Forwarding: Disabled\n Primary IP:\t\t 10.0.1.1/24\n Secondary IPs:\t 11.0.1.1/24\n\n IPv6 Forwarding:\t Disabled\n IPv6 MC Forwarding: Disabled\n IPv6: None\n STPD: \t\t None\n Protocol: Match all unfiltered protocols\n Loopback: Disabled\n NetLogin: Disabled\n OpenFlow: Disabled\n QosProfile: \t None configured\n Egress Rate Limit Designated Port: None configured\n Flood Rate Limit QosProfile: None configured\n Suppress ARP: Disabled\n Proxy ARP: Entry required\n Ports: 0. \t (Number of active ports=0)\n\n#\n#\nVLAN Interface with name vlan2 created by user\n Admin State:\t Enabled Tagging:Untagged (Internal tag 4092) \n Description:\t None\n Virtual router:\t VR-Default\n IPv4 Forwarding:\t Disabled\n IPv4 MC Forwarding: Disabled\n Primary IP:\t\t 192.168.1.1/16\n IPv6 Forwarding:\t Disabled\n IPv6 MC Forwarding: Disabled\n IPv6: None\n STPD: \t\t None\n Protocol: Match all unfiltered protocols\n Loopback: Disabled\n NetLogin: Disabled\n OpenFlow: Disabled\n QosProfile: \t None configured\n Egress Rate Limit Designated Port: None configured\n Flood Rate Limit QosProfile: None configured\n Suppress ARP: Disabled\n Proxy ARP: Entry required\n Ports: 0. \t (Number of active ports=0)\n\n#\n#\nVLAN Interface with name vlan3 created by user\n Admin State:\t Enabled Tagging:Untagged (Internal tag 4091) \n Description:\t None\n Virtual router:\t VR-Default\n IPv4 Forwarding:\t Disabled\n IPv4 MC Forwarding: Disabled\n IPv6 Forwarding:\t Disabled\n IPv6 MC Forwarding: Disabled\n IPv6: fe80::202:b3ff:fe1e:8329/64 (Tentative)\n STPD: \t\t None\n Protocol: Match all unfiltered protocols\n Loopback: Disabled\n NetLogin: Disabled\n OpenFlow: Disabled\n QosProfile: \t None configured\n Egress Rate Limit Designated Port: None configured\n Flood Rate Limit QosProfile: None configured\n Suppress ARP: Disabled\n Proxy ARP: Entry required\n Ports: 0. \t (Number of active ports=0)\n\n"}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 1, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "atcktInst": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "cepPvid": 0, "count1": 127, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": "ANY", "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 2, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 0, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": "VR-Default", "name3": null, "name4": "by user", "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": "invalid port", "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 1, "tagStatus": 1, "taggedPorts": null, "untaggedPorts": "2-128", "vManMode": 0, "vlanFrlQos": 0, "vlanType": 2, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"rtifIpv6Address": {"address_state": 0, "flags": 70368744177664, "ifIndex": 10, "ipMtu": 1500, "ipv6_address_mask": "fe80::202:b3ff:fe1e:8329/64", "rtifName": "vlan3"}, "status": "MORE"}, {"status": "SUCCESS", "stp_vlan": {"ignore_bpdu": 0, "ignore_stp": 0, "vlan_name": "Default"}}, {"status": "MORE", "stp_vlan_stats": {"num_stp_ports": 127, "stpd_name": "s0", "vlanTag": 1, "vlan_name": "Default"}}, {"status": "SUCCESS", "stp_domain_enable": {"protocol_mode": 3, "stpd_enabled": 1, "stpd_name": "s0", "stpd_tag": 0}}, {"status": "SUCCESS", "stp_vlan_autoadd": {"auto_add_enabled": 1, "stpd_name": "s0", "vlan_name": "Default"}}, {"message": "mpls is not running in VR VR-Default.", "status": "ERROR"}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 2, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 3, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 4, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 5, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 6, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 7, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 8, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 9, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 10, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 11, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 12, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 13, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 14, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 15, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 16, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 17, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 18, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 19, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 20, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 21, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 22, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 23, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 24, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 25, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 26, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 27, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 28, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 29, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 30, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 31, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 32, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 33, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 34, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 35, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 36, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 37, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 38, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 39, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 40, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 41, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 42, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 43, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 44, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 45, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 46, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 47, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 48, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 49, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 50, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 51, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 52, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 53, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 54, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 55, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 56, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 57, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 58, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 59, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 60, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 61, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 62, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 63, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 64, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 65, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 66, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 67, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 68, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 69, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 70, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 71, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 72, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 73, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 74, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 75, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 76, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 77, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 78, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 79, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 80, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 81, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 82, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 83, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 84, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 85, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 86, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 87, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 88, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 89, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 90, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 91, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 92, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 93, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 94, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 95, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 96, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 97, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 98, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 99, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 100, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 101, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 102, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 103, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 104, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 105, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 106, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 107, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 108, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 109, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 110, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 111, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 112, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 113, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 114, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 115, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 116, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 117, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 118, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 119, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 120, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 121, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 122, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 123, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 124, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 125, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 126, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 127, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "SUCCESS", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 128, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 2, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 3, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 4, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 5, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 6, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 7, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 8, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 9, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 10, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 11, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 12, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 13, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 14, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 15, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 16, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 17, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 18, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 19, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 20, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 21, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 22, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 23, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 24, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 25, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 26, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 27, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 28, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 29, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 30, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 31, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 32, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 33, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 34, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 35, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 36, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 37, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 38, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 39, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 40, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 41, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 42, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 43, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 44, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 45, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 46, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 47, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 48, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 49, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 50, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 51, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 52, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 53, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 54, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 55, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 56, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 57, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 58, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 59, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 60, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 61, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 62, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 63, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 64, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 65, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 66, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 67, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 68, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 69, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 70, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 71, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 72, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 73, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 74, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 75, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 76, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 77, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 78, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 79, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 80, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 81, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 82, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 83, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 84, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 85, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 86, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 87, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 88, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 89, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 90, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 91, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 92, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 93, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 94, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 95, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 96, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 97, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 98, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 99, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 100, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 101, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 102, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 103, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 104, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 105, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 106, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 107, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 108, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 109, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 110, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 111, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 112, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 113, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 114, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 115, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 116, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 117, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 118, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 119, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 120, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 121, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 122, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 123, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 124, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 125, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 126, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 127, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "SUCCESS", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 1, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Default", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": 128, "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 1, "adminState": 1, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "atcktInst": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "cepPvid": 0, "count1": 1, "description": "Management VLAN", "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": "ANY", "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 2, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 0, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 1, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "Mgmt", "name10": null, "name2": "VR-Mgmt", "name3": "Mgmt", "name4": "by user", "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": "invalid port", "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 4095, "tagStatus": 1, "taggedPorts": null, "untaggedPorts": 1, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"rtifIpv6Address": {"address_state": 0, "flags": 70368744177664, "ifIndex": 10, "ipMtu": 1500, "ipv6_address_mask": "fe80::202:b3ff:fe1e:8329/64", "rtifName": "vlan3"}, "status": "MORE"}, {"status": "SUCCESS", "stp_vlan": {"ignore_bpdu": 0, "ignore_stp": 0, "vlan_name": "Mgmt"}}, {"message": "mpls is not running in VR VR-Default.", "status": "ERROR"}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 1, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "atcktInst": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "cepPvid": 0, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": "ANY", "flags": null, "inactivePort": 0, "ipAddress": "10.0.1.1", "ipMtu": 0, "ipProxyArp": 2, "ipStatus": 1, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 1, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 0, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 24, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "vlan1", "name10": null, "name2": "VR-Default", "name3": null, "name4": "by user", "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 2, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": "invalid port", "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 4093, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 3, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"status": "SUCCESS", "vlanProc": {"action": null, "activePorts": 0, "adminState": 0, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "atcktInst": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "cepPvid": 0, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": null, "flags": null, "inactivePort": 0, "ipAddress": "10.0.1.1", "ipMtu": 0, "ipProxyArp": 0, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 1, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 0, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 24, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "vlan1", "name10": null, "name2": null, "name3": null, "name4": null, "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": "invalid port", "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 0, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 0, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"rtifIpv6Address": {"address_state": 0, "flags": 70368744177664, "ifIndex": 10, "ipMtu": 1500, "ipv6_address_mask": "fe80::202:b3ff:fe1e:8329/64", "rtifName": "vlan3"}, "status": "MORE"}, {"status": "SUCCESS", "stp_vlan": {"ignore_bpdu": 0, "ignore_stp": 0, "vlan_name": "vlan1"}}, {"message": "mpls is not running in VR VR-Default.", "status": "ERROR"}, {"status": "MORE", "vlanProc": {"action": null, "activePorts": 0, "adminState": 1, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "atcktInst": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "cepPvid": 0, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": "ANY", "flags": null, "inactivePort": 0, "ipAddress": "192.168.1.1", "ipMtu": 0, "ipProxyArp": 2, "ipStatus": 1, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 1, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 0, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 16, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "vlan2", "name10": null, "name2": "VR-Default", "name3": null, "name4": "by user", "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": "invalid port", "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 4092, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 3, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"rtifIpv6Address": {"address_state": 0, "flags": 70368744177664, "ifIndex": 10, "ipMtu": 1500, "ipv6_address_mask": "fe80::202:b3ff:fe1e:8329/64", "rtifName": "vlan3"}, "status": "MORE"}, {"status": "SUCCESS", "stp_vlan": {"ignore_bpdu": 0, "ignore_stp": 0, "vlan_name": "vlan2"}}, {"message": "mpls is not running in VR VR-Default.", "status": "ERROR"}, {"status": "SUCCESS", "vlanProc": {"action": null, "activePorts": 0, "adminState": 1, "algorithm": 0, "altIsPrimary": 0, "arpSup": 0, "atcktInst": 0, "bgpInstances": 0, "bgpModule": null, "bgpStartCode": null, "cepPvid": 0, "count1": 0, "description": null, "dot1ahMode": 0, "erlLoopbackPort": 0, "erlPort": 0, "filter": "ANY", "flags": null, "inactivePort": 0, "ipAddress": "0.0.0.0", "ipMtu": 0, "ipProxyArp": 2, "ipStatus": 0, "ipforwardingStatus": 0, "ipmcforwardingStatus": 0, "ipv4DadState": 0, "ipv6forwardingStatus": 0, "ipv6mcforwardingStatus": 0, "iqosProfile": 0, "isAddedByAutopeering": 0, "isAddedByIdm": 0, "isAddedByLldp": 0, "isAddedByMvrp": 0, "isAddedByNetlogin": 0, "isAddedByXnv": 0, "isAlternateIp": 0, "isLoopbackPort": 0, "isMacBasedVLANsEnabled": 0, "isMlagGroupPort": 0, "isNetLogInAutheticated": 0, "isNetLogInEnabled": 0, "isOpenFlowEnabled": 0, "isPvlanSystemPort": 0, "isPvlanTranslatePort": 0, "isRemoteMirrorEnabled": 0, "isTrillAccessEnabled": 0, "isTrillAppointedForwarder": 0, "isTrillDesignated": 0, "isTrillNetworkEnabled": 0, "isTrillSuspended": 0, "isUplinkPort": 0, "isVpstBlocked": 0, "isisInstances": 0, "isisModule": null, "isisStartCode": null, "limitLearning": 0, "limitLearningAction": 0, "limitLearningNum": 0, "linkState": 0, "loopbackStatus": 0, "maskForDisplay": 0, "masterPort": "invalid port", "mplsInstances": 0, "mplsL3VpnNotificationEnable": 0, "mplsModule": null, "mplsStartCode": null, "name1": "vlan3", "name10": null, "name2": "VR-Default", "name3": null, "name4": "by user", "name5": null, "name6": null, "name7": null, "name8": null, "name9": null, "ndSup": 0, "netmask": "0.0.0.0", "noBvlans": 0, "noCvlans": 0, "noIpAddresses": 0, "noLearningDomains": 0, "noProto": 0, "noSvlans": 0, "noVlans": 0, "noVmans": 0, "ospfInstances": 0, "ospfModule": null, "ospfStartCode": null, "ospfv3Instances": 0, "ospfv3Module": null, "ospfv3StartCode": null, "overwrite_untagged_port": 2, "pimInstances": 0, "pimModule": null, "pimStartCode": null, "port": "invalid port", "portFilterList": null, "portList": null, "priority": 0, "qosProfile": 0, "rateShaping": 0, "ripInstances": 0, "ripModule": null, "ripStartCode": null, "ripngInstances": 0, "ripngModule": null, "ripngStartCode": null, "rtagStatus": 0, "serviceCount": 0, "state": 0, "stpStatus": 0, "tag": 4091, "tagStatus": 0, "taggedPorts": null, "untaggedPorts": null, "vManMode": 0, "vlanFrlQos": 0, "vlanType": 3, "vrDescription": null, "vrId": 0, "vrIpv4AdminState": 0, "vrIpv6AdminState": 0, "vrOperCause": 0, "vrOperState": 0, "vrParentId": 0, "vrParentName": null, "vrType": 0, "vrfCount": 0, "xSvid": 0}}, {"rtifIpv6Address": {"address_state": 0, "flags": 70368744177664, "ifIndex": 10, "ipMtu": 1500, "ipv6_address_mask": "fe80::202:b3ff:fe1e:8329/64", "rtifName": "vlan3"}, "status": "MORE"}, {"status": "SUCCESS", "stp_vlan": {"ignore_bpdu": 0, "ignore_stp": 0, "vlan_name": "vlan3"}}, {"message": "mpls is not running in VR VR-Default.", "status": "ERROR"}, {"status": "ERROR"}] diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/exos_module.py b/ansible_collections/community/network/tests/unit/plugins/modules/exos_module.py new file mode 100644 index 000000000..35dd0ebaf --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/exos_module.py @@ -0,0 +1,87 @@ +# (c) 2018 Extreme Networks Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os +import json + +from ansible_collections.community.network.tests.unit.plugins.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase + + +fixture_path = os.path.join(os.path.dirname(__file__), 'exos_fixtures') +fixture_data = {} + + +def load_fixture(name): + path = os.path.join(fixture_path, name) + + if path in fixture_data: + return fixture_data[path] + + with open(path) as file_desc: + data = file_desc.read() + + try: + data = json.loads(data) + except Exception: + pass + + fixture_data[path] = data + return data + + +class TestExosModule(ModuleTestCase): + + def execute_module(self, failed=False, changed=False, commands=None, sort=True, defaults=False): + + self.load_fixtures(commands) + + if failed: + result = self.failed() + self.assertTrue(result['failed'], result) + else: + result = self.changed(changed) + self.assertEqual(result['changed'], changed, result) + + if commands is not None: + if sort: + self.assertEqual(sorted(commands), sorted(result['commands']), result['commands']) + else: + self.assertEqual(commands, result['commands'], result['commands']) + + return result + + def failed(self): + with self.assertRaises(AnsibleFailJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertTrue(result['failed'], result) + return result + + def changed(self, changed=False): + with self.assertRaises(AnsibleExitJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertEqual(result['changed'], changed, result) + return result + + def load_fixtures(self, commands=None): + pass diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/configure_terminal b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/configure_terminal new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/configure_terminal diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_banner_show_banner.txt b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_banner_show_banner.txt new file mode 100644 index 000000000..484788514 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_banner_show_banner.txt @@ -0,0 +1,16 @@ +banner motd require-enter-key +banner motd $ +welcome +new user +$ +! +interface ethernet 1/1/1 + port-name port name + disable + speed-duplex 10-full + inline power power-limit 7000 +! +interface ethernet 1/1/2 + speed-duplex 10-full + inline power power-limit 3000 +!
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_config_config.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_config_config.cfg new file mode 100644 index 000000000..e57790ea8 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_config_config.cfg @@ -0,0 +1,11 @@ +! +hostname router +! +interface ethernet 1/1/4 + port-name test-interface-4 + speed-duplex 10-full +! +interface ethernet 1/1/5 + port-name port5 + ip address 172.18.20.4 255.255.255.0 +!
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_config_src.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_config_src.cfg new file mode 100644 index 000000000..a4a3468e3 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_config_src.cfg @@ -0,0 +1,10 @@ +! +hostname foo +! +interface ethernet 1/1/4 + disable +! +interface ethernet 1/1/5 + port-name port5 + ip address 172.18.20.4 255.255.255.0 +! diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_copy.txt b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_copy.txt new file mode 100644 index 000000000..b4165c196 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_copy.txt @@ -0,0 +1,2 @@ +Translating hostname client fileserver.alethea.in .... +......
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_interface_config.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_interface_config.cfg new file mode 100644 index 000000000..8365ebfea --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_interface_config.cfg @@ -0,0 +1,91 @@ +lag blue static id 11 + ports ethe 1/1/1 + port-name test-interface-1 ethernet 1/1/1 +! +interface ethernet 1/1/1 + port-name test-interface-1 + speed-duplex 10-full +! +interface ethernet 1/1/2 + port-name test-interface-2 + speed-duplex 10-full + inline power power-limit 2000 +! +interface ethernet 1/1/48 + inline power power-by-class 2 +! +interface ethernet 1/1/3 + speed-duplex 10-full + inline power power-limit 3000 +! +interface loopback 10 + port-name loopback10 + disable +! +interface lag 11 + port-name lag ports + speed-duplex 10-full +! + +GigabitEthernet1/1/1 is up, line protocol is up + Port up for 18 hour(s) 40 minute(s) 16 second(s) + Hardware is GigabitEthernet, address is 609c.9fe7.d130 (bia 609c.9fe7.d130) + Configured speed 10Mbit, actual 10Mbit, configured duplex fdx, actual fdx + Configured mdi mode AUTO, actual MDI + Member of L2 VLAN ID 1, port is untagged, port state is FORWARDING + BPDU guard is Disabled, ROOT protect is Disabled, Designated protect is Disabled + Link Error Dampening is Disabled + STP configured to ON, priority is level0, mac-learning is enabled + Openflow is Disabled, Openflow Hybrid mode is Disabled, Flow Control is config enabled, oper enabled, negotiation disabled + Mirror disabled, Monitor disabled + Mac-notification is disabled + Member of active trunk ports 1/1/1,1/1/2,1/1/4,lg11, Lag Interface is lg11 + Member of configured trunk ports 1/1/1,1/1/2,1/1/4,lg11, Lag Interface is lg11 + Port name is test-interface-1 + IPG MII 0 bits-time, IPG GMII 0 bits-time + MTU 1500 bytes, encapsulation ethernet + MMU Mode is Store-and-forward + 300 second input rate: 88 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 616 bits/sec, 0 packets/sec, 0.00% utilization + 14836 packets input, 2695975 bytes, 0 no buffer + Received 3223 broadcasts, 11613 multicasts, 0 unicasts + 2 input errors, 2 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + 64676 packets output, 5181136 bytes, 0 underruns + Transmitted 28724 broadcasts, 35952 multicasts, 0 unicasts + 0 output errors, 0 collisions + Relay Agent Information option: Disabled + Protected: No + MAC Port Security: Disabled + + This port is not being monitored for queue drops +Egress queues: +Queue counters Queued packets Dropped Packets + 0 6682 0 + 1 0 0 + 2 0 0 + 3 0 0 + 4 22042 0 + 5 20 0 + 6 33680 0 + 7 2252 0 + + +Local port: 1/1/48 + Neighbor: 609c.9fe7.d15f, TTL 95 seconds + + Chassis ID (MAC address): 609c.9fe7.d130 + + Port ID (MAC address): 609c.9fe7.d15f + + Time to live: 120 seconds + + System name : "ICX7150-48 Router" + + Port description : "GigabitEthernet1/1/48" + + System capabilities : bridge, router + Enabled capabilities: bridge, router + + 802.3 MAC/PHY : auto-negotiation enabled + Advertised capabilities: 10BaseT-HD, 10BaseT-FD, 100BaseTX-HD, + 100BaseTX-FD, fdxSPause, fdxBPause, + 1000BaseT-HD, 1000BaseT-FD + Operational MAU type : 1000BaseT-FD + + Link aggregation: not capable + + Maximum frame size: 1522 octets + + Port VLAN ID: 1 + + Management address (IPv4): 172.16.10.182 diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_lldp_None b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_lldp_None new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_lldp_None diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_lldp_absent b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_lldp_absent new file mode 100644 index 000000000..163439739 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_lldp_absent @@ -0,0 +1,9 @@ +LLDP transmit interval : 30 seconds +LLDP transmit hold multiplier : 4 (transmit TTL: 120 seconds) +LLDP transmit delay : 2 seconds +LLDP SNMP notification interval : 5 seconds +LLDP reinitialize delay : 2 seconds +LLDP-MED fast start repeat count : 3 + +LLDP maximum neighbors : 2048 +LLDP maximum neighbors per port : 4 diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_lldp_present b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_lldp_present new file mode 100644 index 000000000..680c07670 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_lldp_present @@ -0,0 +1 @@ +LLDP is not running
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_logging_config.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_logging_config.cfg new file mode 100644 index 000000000..da9432635 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_logging_config.cfg @@ -0,0 +1,17 @@ +logging host 172.16.10.21 +logging host 172.16.10.21 udp-port 2000 +logging host 172.16.10.22 +logging host 172.16.10.23 udp-port 2500 +logging host 172.16.10.55 udp-port 2500 +logging facility local1 +logging host ipv6 2001:db8::1 udp-port 5500 +logging buffered 200 +no logging buffered critical +no logging buffered debugging +no logging buffered emergencies +no logging buffered errors +no logging buffered informational +no logging buffered notifications +logging enable rfc5424 +logging console +logging persistence
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_ping_ping_10.255.255.250_count_2 b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_ping_ping_10.255.255.250_count_2 new file mode 100644 index 000000000..1d9dfd44a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_ping_ping_10.255.255.250_count_2 @@ -0,0 +1,4 @@ +Sending 1, 16-byte ICMP Echo to 10.255.255.250, timeout 100 msec, TTL 64 +Type Control-c to abort +Request timed out. +No reply from remote host.
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_ping_ping_10.255.255.250_count_2_timeout_45 b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_ping_ping_10.255.255.250_count_2_timeout_45 new file mode 100644 index 000000000..1d9dfd44a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_ping_ping_10.255.255.250_count_2_timeout_45 @@ -0,0 +1,4 @@ +Sending 1, 16-byte ICMP Echo to 10.255.255.250, timeout 100 msec, TTL 64 +Type Control-c to abort +Request timed out. +No reply from remote host.
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_ping_ping_8.8.8.8_count_2 b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_ping_ping_8.8.8.8_count_2 new file mode 100644 index 000000000..3b775361c --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_ping_ping_8.8.8.8_count_2 @@ -0,0 +1,5 @@ +Sending 2, 16-byte ICMP Echo to 8.8.8.8, timeout 5000 msec, TTL 64 +Type Control-c to abort +Reply from 8.8.8.8 : bytes=16 time=49ms TTL=45 +Reply from 8.8.8.8 : bytes=16 time=41ms TTL=45 +Success rate is 100 percent (2/2), round-trip min/avg/max=41/45/49 ms.
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_ping_ping_8.8.8.8_count_5_ttl_70 b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_ping_ping_8.8.8.8_count_5_ttl_70 new file mode 100644 index 000000000..2f9dcabf1 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_ping_ping_8.8.8.8_count_5_ttl_70 @@ -0,0 +1,8 @@ +Sending 5, 16-byte ICMP Echo to 8.8.8.8, timeout 5000 msec, TTL 70 +Type Control-c to abort +Reply from 8.8.8.8 : bytes=16 time=40ms TTL=45 +Reply from 8.8.8.8 : bytes=16 time=40ms TTL=45 +Reply from 8.8.8.8 : bytes=16 time=40ms TTL=45 +Reply from 8.8.8.8 : bytes=16 time=40ms TTL=45 +Reply from 8.8.8.8 : bytes=16 time=40ms TTL=45 +Success rate is 100 percent (5/5), round-trip min/avg/max=40/40/40 ms.
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_ping_ping_8.8.8.8_size_10001 b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_ping_ping_8.8.8.8_size_10001 new file mode 100644 index 000000000..c067988b7 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_ping_ping_8.8.8.8_size_10001 @@ -0,0 +1 @@ +Invalid size - valid range (0-10000)
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_ping_ping_8.8.8.8_ttl_300 b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_ping_ping_8.8.8.8_ttl_300 new file mode 100644 index 000000000..d40ed2870 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_ping_ping_8.8.8.8_ttl_300 @@ -0,0 +1 @@ +Bad value for TTL, valid range is from 1 to 255.
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_static_route_config.txt b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_static_route_config.txt new file mode 100644 index 000000000..19381bcef --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_static_route_config.txt @@ -0,0 +1,8 @@ +ip route 172.16.0.0/16 10.0.0.8 +ip route 172.16.10.0/24 10.0.0.8 +ip route 192.0.0.0/8 10.10.15.3 +ip route 192.126.0.0/16 10.10.14.31 +ip route 192.126.23.0/24 10.10.14.31 +ip route 192.128.0.0/16 10.10.14.3 +ip route 192.128.0.0/16 10.10.15.3 +ip route 192.128.0.0/16 10.10.15.31
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_system.txt b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_system.txt new file mode 100644 index 000000000..1f6663b77 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_system.txt @@ -0,0 +1,7 @@ +ip dns domain-list ansib.eg.com +ip dns domain-list red.com +ip dns domain-list test1.com +ip dns server-address 10.22.22.64 +ip dns server-address 172.22.22.64 +radius-server host 172.16.20.14 auth-port 1837 acct-port 5021 accounting-only key database mac-auth +tacacs-server host 182.16.10.20
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_vlan_config b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_vlan_config new file mode 100644 index 000000000..b42e30f31 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/icx_vlan_config @@ -0,0 +1,32 @@ +************show vlan brief***************** +System-max vlan Params: Max(4095) Default(64) Current(64) +Default vlan Id :1 +Total Number of Vlan Configured :5 +VLANs Configured :1 3 6 10 21 + + +************* show vlan id********** +Maximum PORT-VLAN entries: 64 + +Legend: [Stk=Stack-Id, S=Slot] + +PORT-VLAN 3, Name vlan, Priority level0, Spanning tree On + Untagged Ports: (U1/M1) 1 2 3 4 5 7 20 21 22 23 24 25 + Untagged Ports: (U1/M1) 26 27 28 + Untagged Ports: (LAG) 11 12 15 + Tagged Ports: (U1/M1) 9 10 11 31 + Tagged Ports: (LAG) 13 + Uplink Ports: None + DualMode Ports: None + Mac-Vlan Ports: None + Monitoring: Disabled + +************* show run vlan id********** +vlan 3 name vlan by port + tagged ethe 1/1/31 ethe 1/1/9 to 1/1/11 lag 13 + untagged ethe 1/1/27 ethe 1/1/20 to 1/1/22 lag 11 to 12 + spanning-tree +! +! + + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/lag_running_config.txt b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/lag_running_config.txt new file mode 100644 index 000000000..fdec5106f --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/lag_running_config.txt @@ -0,0 +1,7 @@ +lag LAG1 dynamic id 100 + ports ethe 1/1/3 ethe 1/1/5 to 1/1/8 + disable ethe 1/1/3 ethe 1/1/5 to 1/1/8 +! +lag LAG2 dynamic id 200 + ports ethe 1/1/11 ethe 1/1/13 ethe 1/1/15 + disable ethe 1/1/11 ethe 1/1/13 ethe 1/1/15
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_flash b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_flash new file mode 100644 index 000000000..fff40e91a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_flash @@ -0,0 +1,6 @@ +Stack unit 1: + NAND Type: Micron NAND 2GiB (x 1) + Compressed Pri Code size = 25966800, Version:08.0.80bT211 (primary.bin) + Compressed Sec Code size = 29451996, Version:08.0.70dT213 (SPR08070d.bin) + Compressed Boot-Monitor Image size = 786944, Version:10.1.09T225 + Code Flash Free Space = 1318699008 diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_interfaces b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_interfaces new file mode 100644 index 000000000..d6d0e5760 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_interfaces @@ -0,0 +1,85 @@ +GigabitEthernet1/1/1 is down, line protocol is down + Port down for 2 day(s) 23 hour(s) 4 minute(s) 18 second(s) + Hardware is GigabitEthernet, address is 609c.9fe7.d600 (bia 609c.9fe7.d600) + Configured speed 10Mbit, actual unknown, configured duplex fdx, actual unknown + Configured mdi mode AUTO, actual unknown + Member of L2 VLAN ID 1, port is untagged, port state is BLOCKING + BPDU guard is Disabled, ROOT protect is Disabled, Designated protect is Disabled + Link Error Dampening is Disabled + STP configured to ON, priority is level0, mac-learning is enabled + Openflow is Disabled, Openflow Hybrid mode is Disabled, Flow Control is config enabled, oper enabled, negotiation disabled + Mirror disabled, Monitor disabled + Mac-notification is disabled + Not member of any active trunks + Not member of any configured trunks + Port name is test name + IPG MII 0 bits-time, IPG GMII 0 bits-time + Internet address is 192.168.1.1/24, MTU 1500 bytes, encapsulation ethernet + MMU Mode is Store-and-forward + 300 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 0 packets input, 0 bytes, 0 no buffer + Received 0 broadcasts, 0 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts + 0 output errors, 0 collisions + Relay Agent Information option: Disabled + Protected: No + MAC Port Security: Disabled + + This port is not being monitored for queue drops +Egress queues: +Queue counters Queued packets Dropped Packets + 0 0 0 + 1 0 0 + 2 0 0 + 3 0 0 + 4 0 0 + 5 0 0 + 6 0 0 + 7 0 0 + +GigabitEthernet1/1/2 is down, line protocol is down + Port down for 2 day(s) 23 hour(s) 4 minute(s) 18 second(s) + Hardware is GigabitEthernet, address is 609c.9fe7.d601 (bia 609c.9fe7.d601) + Configured speed auto, actual unknown, configured duplex fdx, actual unknown + Configured mdi mode AUTO, actual unknown + Member of L2 VLAN ID 1, port is untagged, port state is BLOCKING + BPDU guard is Disabled, ROOT protect is Disabled, Designated protect is Disabled + Link Error Dampening is Disabled + STP configured to ON, priority is level0, mac-learning is enabled + Openflow is Disabled, Openflow Hybrid mode is Disabled, Flow Control is config enabled, oper enabled, negotiation disabled + Mirror disabled, Monitor disabled + Mac-notification is disabled + Not member of any active trunks + Not member of any configured trunks + No port name + IPG MII 0 bits-time, IPG GMII 0 bits-time + MTU 1500 bytes, encapsulation ethernet + MMU Mode is Store-and-forward + 300 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 0 packets input, 0 bytes, 0 no buffer + Received 0 broadcasts, 0 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts + 0 output errors, 0 collisions + Relay Agent Information option: Disabled + Protected: No + MAC Port Security: Disabled + + This port is not being monitored for queue drops +Egress queues: +Queue counters Queued packets Dropped Packets + 0 0 0 + 1 0 0 + 2 0 0 + 3 0 0 + 4 0 0 + 5 0 0 + 6 0 0 + 7 0 0 diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_lldp b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_lldp new file mode 100644 index 000000000..163439739 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_lldp @@ -0,0 +1,9 @@ +LLDP transmit interval : 30 seconds +LLDP transmit hold multiplier : 4 (transmit TTL: 120 seconds) +LLDP transmit delay : 2 seconds +LLDP SNMP notification interval : 5 seconds +LLDP reinitialize delay : 2 seconds +LLDP-MED fast start repeat count : 3 + +LLDP maximum neighbors : 2048 +LLDP maximum neighbors per port : 4 diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_lldp_neighbors_detail b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_lldp_neighbors_detail new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_lldp_neighbors_detail diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_media b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_media new file mode 100644 index 000000000..22cc87fd8 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_media @@ -0,0 +1,2 @@ +Port 1/1/1: Type : 1G M-C (Gig-Copper) +Port 1/1/2: Type : 1G M-C (Gig-Copper) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_memory b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_memory new file mode 100644 index 000000000..7e4e070ac --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_memory @@ -0,0 +1,3 @@ +Stack unit 1: +Total DRAM: 954695680 bytes + Dynamic memory: 954695680 bytes total, 375963648 bytes free, 60% used
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_running-config b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_running-config new file mode 100644 index 000000000..dc4c912de --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_running-config @@ -0,0 +1,76 @@ +Current configuration: +! +ver 08.0.70dT213 +! +stack unit 1 + module 1 icx7150-48-port-management-module + module 2 icx7150-2-copper-port-2g-module + module 3 icx7150-4-sfp-plus-port-40g-module +! +! +! +lag LAG1 dynamic id 100 + ports ethe 1/1/4 to 1/1/7 +! +lag LAG2 dynamic id 200 + ports ethe 1/1/12 to 1/1/15 +! +! +! +! +! +! +! +! +! +aaa authentication enable implicit-user +aaa authentication login default local +enable super-user-password ..... +hostname ruchusRouter148 +ip dns domain-list fileserver.alethea.in +ip dns server-address 8.8.8.8 +! +username alethea password ..... +username ale6 password ..... +! +! +banner exec ^C +welcome icx exec^C +^C +! +banner motd ^C +welcome icx motd^C +^C +! +banner incoming ^C +welcome icx incomingg^C +^C +! +! +! +! +! +! +! +! +interface management 1 + no ip dhcp-client enable + ip address 10.10.10.148 255.255.255.0 +! +interface ethernet 1/1/1 + port-name test name + ip address 192.168.1.1 255.255.255.0 + ipv6 address 2001:db8:85a3::8a2e:370:7334/64 + speed-duplex 10-full +! +! +! +! +! +lldp run +! +! +! +! +! +end diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_running-config_begin_interface b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_running-config_begin_interface new file mode 100644 index 000000000..10bdbb995 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_running-config_begin_interface @@ -0,0 +1,77 @@ +router-interface ve 1 +! +! +! +! +! +! +! +! +! +! +! +! +! +aaa authentication enable implicit-user +aaa authentication login default local +enable super-user-password ..... +hostname ruchusRouter148 +ip dns domain-list fileserver.alethea.in +ip dns server-address 8.8.8.8 +! +username alethea password ..... +username ale6 password ..... +! +! +banner exec ^C +welcome icx exec^C +^C +! +banner motd ^C +welcome icx motd^C +^C +! +banner incoming ^C +welcome icx incomingg^C +^C +! +! +! +! +! +! +! +! +interface management 1 + no ip dhcp-client enable + ip address 10.10.10.148 255.255.255.0 +! +interface ethernet 1/1/1 + port-name test name + ip address 192.160.1.1 255.255.255.0 + ipv6 address 2001:db8:85a3::8a2e:370:7334/64 + ipv6 address 2001:db8:85a3:0:0:0:0:0/64 + ip address 192.168.1.1 255.255.255.0 + ipv6 ospf area 1 + ip ospf area 2 + speed-duplex 10-full +! +interface ethernet 1/1/2 + ip address 192.161.1.1 255.255.255.0 + ip address 192.168.255.1 255.255.255.0 +! +interface ve 1 + ip address 10.1.2.1 255.255.255.0 + ip address 192.163.1.1 255.255.255.0 +! +! +! +! +! +lldp run +! +! +! +! +! +end diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_running-config_include_hostname b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_running-config_include_hostname new file mode 100644 index 000000000..6835875d3 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_running-config_include_hostname @@ -0,0 +1 @@ +hostname ruchusRouter148
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_running-config_include_username.txt b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_running-config_include_username.txt new file mode 100644 index 000000000..336427bda --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_running-config_include_username.txt @@ -0,0 +1,8 @@ +username ale1 privilege 5 password ..... +username ale1 expires 3 +username ale2 privilege 5 password ..... +username ale2 expires 3 +username ale3 privilege 5 password ..... +username ale3 expires 3 +username ale4 privilege 5 password ..... +username ale4 expires 3
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_version b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_version new file mode 100644 index 000000000..5559427cb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/show_version @@ -0,0 +1,26 @@ +Copyright (c) 1996-2017 Brocade Communications Systems, Inc. All rights reserved. + UNIT 1: compiled on Feb 17 2017 at 16:03:13 labeled as SPS08060 + (23946048 bytes) from Secondary SPS08060.bin + SW: Version 08.0.60T211 + Compressed Boot-Monitor Image size = 786944, Version:10.1.09T225 (mnz10109) + Compiled on Sat Feb 18 00:15:43 2017 + + HW: Stackable ICX7150-48-POE +========================================================================== +UNIT 1: SL 1: ICX7150-48P-4X1G POE 48-port Management Module + Serial #:FEC3220N00C + Current License: 4X1G + P-ASIC 0: type B160, rev 11 Chip BCM56160_B0 +========================================================================== +UNIT 1: SL 2: ICX7150-2X1GC 2-port 2G Module +========================================================================== +UNIT 1: SL 3: ICX7150-4X10GF 4-port 40G Module +========================================================================== + 1000 MHz ARM processor ARMv7 88 MHz bus + 8192 KB boot flash memory + 2048 MB code flash memory + 1024 MB DRAM +STACKID 1 system uptime is 4 day(s) 19 hour(s) 53 minute(s) 5 second(s) +The system started at 00:01:49 GMT+00 Sat Jan 01 2000 + +The system : started=cold start
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/skip b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/skip new file mode 100644 index 000000000..66cd422fb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_fixtures/skip @@ -0,0 +1 @@ +Disable page display mode
\ No newline at end of file diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/icx_module.py b/ansible_collections/community/network/tests/unit/plugins/modules/icx_module.py new file mode 100644 index 000000000..6f48c8cb7 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/icx_module.py @@ -0,0 +1,93 @@ +# Copyright: (c) 2019, Ansible Project +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os +import json + +from ansible_collections.community.network.tests.unit.plugins.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase + + +fixture_path = os.path.join(os.path.dirname(__file__), 'icx_fixtures') +fixture_data = {} + + +def load_fixture(name): + path = os.path.join(fixture_path, name) + + if path in fixture_data: + return fixture_data[path] + + with open(path) as f: + data = f.read() + + try: + data = json.loads(data) + except Exception: + pass + + fixture_data[path] = data + return data + + +class TestICXModule(ModuleTestCase): + ENV_ICX_USE_DIFF = True + + def set_running_config(self): + self.ENV_ICX_USE_DIFF = self.get_running_config() + + def get_running_config(self, compare=None): + if compare is not None: + diff = compare + elif os.environ.get('ANSIBLE_CHECK_ICX_RUNNING_CONFIG') is not None: + if os.environ.get('ANSIBLE_CHECK_ICX_RUNNING_CONFIG') == 'False': + diff = False + else: + diff = True + else: + diff = True + return diff + + def execute_module(self, failed=False, changed=False, commands=None, sort=True, defaults=False, fields=None): + + self.load_fixtures(commands) + + if failed: + result = self.failed() + self.assertTrue(result['failed'], result) + else: + result = self.changed(changed) + self.assertEqual(result['changed'], changed, result) + + if commands is not None: + if sort: + self.assertEqual(sorted(commands), sorted(result['commands'])) + else: + self.assertEqual(commands, result['commands'], result['commands']) + + if fields is not None: + for key in fields: + if fields.get(key) is not None: + self.assertEqual(fields.get(key), result.get(key)) + + return result + + def failed(self): + with self.assertRaises(AnsibleFailJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertTrue(result['failed'], result) + return result + + def changed(self, changed=False): + with self.assertRaises(AnsibleExitJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertEqual(result['changed'], changed, result) + return result + + def load_fixtures(self, commands=None): + pass diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_add.json b/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_add.json new file mode 100644 index 000000000..84ad945bb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_add.json @@ -0,0 +1,10 @@ +[ + { + "href": "http://192.168.1.1/api/v1/misc/dns_servers/1", + "data": { + "number": "1", + "server": "192.168.1.20" + }, + "id": 1 + } +] diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_delete.json b/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_delete.json new file mode 100644 index 000000000..75bd4bcf1 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_delete.json @@ -0,0 +1,18 @@ +[ + { + "table": "misc.dns_servers", + "data": { + "number": "1", + "server": "192.168.1.20" + }, + "id": 1 + }, + { + "table": "misc.dns_servers", + "data": { + "number": "2", + "server": "192.168.1.30" + }, + "id": 2 + } +] diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_download.json b/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_download.json new file mode 100644 index 000000000..5e2c2d9ec --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_download.json @@ -0,0 +1,9 @@ +[ + { + "download-config": { + "mimetype": "application/x-config-database", + "config": "-----BEGIN CONFIGURATION-DATABASE-----\r\nContent-transfer-encoding: base64\r\nUnitname: \r\nProduct: Software SIParator/Firewall\r\nVersion: 6.2.90\r\nProduct-type: F\r\nProduct-subtype: \r\nSerial: IG-200-840-5001-0\r\nInterfaces: eth0 eth1 eth2 eth3 eth4 eth5\r\nModules: failover vpn sip qturn ems qos rsc voipsm idsips siptrunk sipswitch\r\nTimestamp: 2018-10-25 11:53:09\r\n\r\nZGJ2ZXJzaW9uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAADAwMDA2NDQAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDAwMDA2ADEzMzYxNDAx\r\nNDQ3ADAxMTQ3MQAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHJvb3QAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2LjIuMAoAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAGRiLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNzU1ADAwMDAwNjMAMDAwMDA2MwAwMDAw\r\nMDAwMDAwMAAxMzM2MTQwMjExNAAwMTA0MjIAIDUAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABmdWVnbwAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZ1ZWdvAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nZGIvZGIuZmVudAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAADAwMDA2NDQAMDAwMDA2MwAwMDAwMDYzADAwMDAwMDAxNjM3ADEzMzYxNDAx\r\nNDQ3ADAxMTcwNAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAGZ1ZWdvAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAZnVlZ28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjIFRoaXMgZmlsZSBpcyBh\r\nIHN0cmljdCBmb3JtYXQgY29uZmlndXJhdGlvbiBmaWxlLgojIEVkaXQgY2FyZWZ1\r\nbGx5IG9yIG5vdCBhdCBhbGwuCipTRUNUSU9OIGRiLmZlbnQuYWx3YXlzX2ZlbnQK\r\nZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmVuYWJs\r\nZWQ6IG9mZgoqU0VDVElPTiBkYi5mZW50LmFsd2F5c19mZW50X2V4Y2VwdGlvbnMK\r\nZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAwCipTRUNUSU9OIGRiLmZlbnQuYWx3\r\nYXlzX2ZlbnRfaW50ZXJmYWNlcwpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDAK\r\nKlNFQ1RJT04gZGIuZmVudC5mZW50CmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDog\r\nMQoqKlJPVwpyb3dpZDogMQplbmFibGVkOiBvZmYKKlNFQ1RJT04gZGIuZmVudC5m\r\nZW50X2tlZXBhbGl2ZQpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cK\r\ncm93aWQ6IDEKdGNwX3RpbWVvdXQ6IDE1MAp0eXBlOiBvcHRpb25zCnVkcF90aW1l\r\nb3V0OiAyMAoqU0VDVElPTiBkYi5mZW50Lm1hcF9zaWduYWxfYWRkcmVzcwpnZW5l\r\ncmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKbGlzdGVuX2lw\r\nOiAtCmxpc3Rlbl9wb3J0OiAKc2VuZF9pcDogLQoqU0VDVElPTiBkYi5mZW50Lm1l\r\nZGlhX3JlbGVhc2UKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJv\r\nd2lkOiAxCmVuYWJsZWQ6IG9mZgoqU0VDVElPTiBkYi5mZW50LnJlc2V0X2ZyaWVu\r\nZApnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5h\r\nYmxlZDogb2ZmCipTRUNUSU9OIGRiLmZlbnQuc3R1bgpnZW5lcmF0aW9uOiAwCmxh\r\nc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5hYmxlZDogb2ZmCnBvcnQxOiAz\r\nNDc4CnBvcnQyOiAKc2VydmVyMTogLQpzZXJ2ZXIyOiAtCipTRUNUSU9OIEVPRgoA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nZGIvZGIuaXBzZWMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAADAwMDA2NDQAMDAwMDA2MwAwMDAwMDYzADAwMDAwMDExMjEzADEzMzYxNDAx\r\nNDQ3ADAxMjA0MgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAGZ1ZWdvAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAZnVlZ28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjIFRoaXMgZmlsZSBpcyBh\r\nIHN0cmljdCBmb3JtYXQgY29uZmlndXJhdGlvbiBmaWxlLgojIEVkaXQgY2FyZWZ1\r\nbGx5IG9yIG5vdCBhdCBhbGwuCipTRUNUSU9OIGRiLmlwc2VjLmJsYWNrbGlzdGVk\r\nX3BhY2tldHMKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lk\r\nOiAxCmFjdGlvbjogZGlzY2FyZApsb2djbGFzczogTG9jYWwKKlNFQ1RJT04gZGIu\r\naXBzZWMuYmxhY2tsaXN0aW5nCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoq\r\nKlJPVwpyb3dpZDogMQpkdXJhdGlvbjogMzAKbG9nY2xhc3M6IExvY2FsCipTRUNU\r\nSU9OIGRiLmlwc2VjLmNyeXB0b19kZWYKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lk\r\nOiAxNgoqKlJPVwpyb3dpZDogMQphdXRoOiBtZDUKZW5jcnlwdGlvbjogM2Rlcwpu\r\nYW1lOiAzREVTLU1ENQoqKlJPVwpyb3dpZDogMgphdXRoOiBzaGExCmVuY3J5cHRp\r\nb246IDNkZXMKbmFtZTogM0RFUy1TSEExCioqUk9XCnJvd2lkOiAzCmF1dGg6IHNo\r\nYTJfMjU2CmVuY3J5cHRpb246IDNkZXMKbmFtZTogM0RFUy1TSEEyNTYKKipST1cK\r\ncm93aWQ6IDQKYXV0aDogc2hhMl81MTIKZW5jcnlwdGlvbjogM2RlcwpuYW1lOiAz\r\nREVTLVNIQTUxMgoqKlJPVwpyb3dpZDogNQphdXRoOiBtZDUKZW5jcnlwdGlvbjog\r\nYWVzMTI4Cm5hbWU6IEFFUzEyOC1NRDUKKipST1cKcm93aWQ6IDYKYXV0aDogc2hh\r\nMQplbmNyeXB0aW9uOiBhZXMxMjgKbmFtZTogQUVTMTI4LVNIQTEKKipST1cKcm93\r\naWQ6IDcKYXV0aDogc2hhMl8yNTYKZW5jcnlwdGlvbjogYWVzMTI4Cm5hbWU6IEFF\r\nUzEyOC1TSEEyNTYKKipST1cKcm93aWQ6IDgKYXV0aDogc2hhMl81MTIKZW5jcnlw\r\ndGlvbjogYWVzMTI4Cm5hbWU6IEFFUzEyOC1TSEE1MTIKKipST1cKcm93aWQ6IDkK\r\nYXV0aDogbWQ1CmVuY3J5cHRpb246IGFlczE5MgpuYW1lOiBBRVMxOTItTUQ1Cioq\r\nUk9XCnJvd2lkOiAxMAphdXRoOiBzaGExCmVuY3J5cHRpb246IGFlczE5MgpuYW1l\r\nOiBBRVMxOTItU0hBMQoqKlJPVwpyb3dpZDogMTEKYXV0aDogc2hhMl8yNTYKZW5j\r\ncnlwdGlvbjogYWVzMTkyCm5hbWU6IEFFUzE5Mi1TSEEyNTYKKipST1cKcm93aWQ6\r\nIDEyCmF1dGg6IHNoYTJfNTEyCmVuY3J5cHRpb246IGFlczE5MgpuYW1lOiBBRVMx\r\nOTItU0hBNTEyCioqUk9XCnJvd2lkOiAxMwphdXRoOiBtZDUKZW5jcnlwdGlvbjog\r\nYWVzMjU2Cm5hbWU6IEFFUzI1Ni1NRDUKKipST1cKcm93aWQ6IDE0CmF1dGg6IHNo\r\nYTEKZW5jcnlwdGlvbjogYWVzMjU2Cm5hbWU6IEFFUzI1Ni1TSEExCioqUk9XCnJv\r\nd2lkOiAxNQphdXRoOiBzaGEyXzI1NgplbmNyeXB0aW9uOiBhZXMyNTYKbmFtZTog\r\nQUVTMjU2LVNIQTI1NgoqKlJPVwpyb3dpZDogMTYKYXV0aDogc2hhMl81MTIKZW5j\r\ncnlwdGlvbjogYWVzMjU2Cm5hbWU6IEFFUzI1Ni1TSEE1MTIKKlNFQ1RJT04gZGIu\r\naXBzZWMuZXNwX3Byb3Bvc2FscwpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEw\r\nCioqUk9XCnJvd2lkOiAxCmNyeXB0bzogQUVTMTI4LVNIQTI1NgpuYW1lOiBBRVMK\r\nbnVtYmVyOiAxCioqUk9XCnJvd2lkOiAyCmNyeXB0bzogQUVTMTI4LVNIQTUxMgpu\r\nYW1lOiBBRVMKbnVtYmVyOiAyCioqUk9XCnJvd2lkOiAzCmNyeXB0bzogQUVTMjU2\r\nLVNIQTI1NgpuYW1lOiBBRVMKbnVtYmVyOiAzCioqUk9XCnJvd2lkOiA0CmNyeXB0\r\nbzogQUVTMjU2LVNIQTUxMgpuYW1lOiBBRVMKbnVtYmVyOiA0CioqUk9XCnJvd2lk\r\nOiA1CmNyeXB0bzogQUVTMTI4LVNIQTI1NgpuYW1lOiBBRVMvM0RFUwpudW1iZXI6\r\nIDUKKipST1cKcm93aWQ6IDYKY3J5cHRvOiBBRVMxMjgtU0hBMQpuYW1lOiBBRVMv\r\nM0RFUwpudW1iZXI6IDYKKipST1cKcm93aWQ6IDcKY3J5cHRvOiBBRVMxMjgtTUQ1\r\nCm5hbWU6IEFFUy8zREVTCm51bWJlcjogNwoqKlJPVwpyb3dpZDogOApjcnlwdG86\r\nIDNERVMtU0hBMjU2Cm5hbWU6IEFFUy8zREVTCm51bWJlcjogOAoqKlJPVwpyb3dp\r\nZDogOQpjcnlwdG86IDNERVMtU0hBMQpuYW1lOiBBRVMvM0RFUwpudW1iZXI6IDkK\r\nKipST1cKcm93aWQ6IDEwCmNyeXB0bzogM0RFUy1NRDUKbmFtZTogQUVTLzNERVMK\r\nbnVtYmVyOiAxMAoqU0VDVElPTiBkYi5pcHNlYy5lc3BhaF9sb2djbGFzcwpnZW5l\r\ncmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKbG9nY2xhc3M6\r\nIC0KKlNFQ1RJT04gZGIuaXBzZWMuaWtlX2xvZ2NsYXNzCmdlbmVyYXRpb246IDAK\r\nbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQpsb2djbGFzczogTG9jYWwKKlNF\r\nQ1RJT04gZGIuaXBzZWMuaWtlX3Byb3Bvc2FscwpnZW5lcmF0aW9uOiAwCmxhc3Rf\r\ncm93aWQ6IDE4CioqUk9XCnJvd2lkOiAxCmNyeXB0bzogQUVTMjU2LVNIQTI1Ngpn\r\ncm91cDogbW9kcDIwNDgKbmFtZTogQUVTCm51bWJlcjogMQoqKlJPVwpyb3dpZDog\r\nMgpjcnlwdG86IEFFUzI1Ni1TSEE1MTIKZ3JvdXA6IG1vZHAyMDQ4Cm5hbWU6IEFF\r\nUwpudW1iZXI6IDIKKipST1cKcm93aWQ6IDMKY3J5cHRvOiBBRVMxMjgtU0hBMjU2\r\nCmdyb3VwOiBtb2RwMjA0OApuYW1lOiBBRVMKbnVtYmVyOiAzCioqUk9XCnJvd2lk\r\nOiA0CmNyeXB0bzogQUVTMTI4LVNIQTUxMgpncm91cDogbW9kcDIwNDgKbmFtZTog\r\nQUVTCm51bWJlcjogNAoqKlJPVwpyb3dpZDogNQpjcnlwdG86IEFFUzEyOC1TSEEy\r\nNTYKZ3JvdXA6IG1vZHAyMDQ4Cm5hbWU6IEFFUy8zREVTCm51bWJlcjogNQoqKlJP\r\nVwpyb3dpZDogNgpjcnlwdG86IEFFUzEyOC1TSEEyNTYKZ3JvdXA6IG1vZHAxNTM2\r\nCm5hbWU6IEFFUy8zREVTCm51bWJlcjogNgoqKlJPVwpyb3dpZDogNwpjcnlwdG86\r\nIEFFUzEyOC1TSEEyNTYKZ3JvdXA6IG1vZHAxMDI0Cm5hbWU6IEFFUy8zREVTCm51\r\nbWJlcjogNwoqKlJPVwpyb3dpZDogOApjcnlwdG86IEFFUzEyOC1TSEExCmdyb3Vw\r\nOiBtb2RwMTUzNgpuYW1lOiBBRVMvM0RFUwpudW1iZXI6IDgKKipST1cKcm93aWQ6\r\nIDkKY3J5cHRvOiBBRVMxMjgtU0hBMQpncm91cDogbW9kcDEwMjQKbmFtZTogQUVT\r\nLzNERVMKbnVtYmVyOiA5CioqUk9XCnJvd2lkOiAxMApjcnlwdG86IEFFUzEyOC1N\r\nRDUKZ3JvdXA6IG1vZHAxNTM2Cm5hbWU6IEFFUy8zREVTCm51bWJlcjogMTAKKipS\r\nT1cKcm93aWQ6IDExCmNyeXB0bzogQUVTMTI4LU1ENQpncm91cDogbW9kcDEwMjQK\r\nbmFtZTogQUVTLzNERVMKbnVtYmVyOiAxMQoqKlJPVwpyb3dpZDogMTIKY3J5cHRv\r\nOiAzREVTLVNIQTI1Ngpncm91cDogbW9kcDIwNDgKbmFtZTogQUVTLzNERVMKbnVt\r\nYmVyOiAxMgoqKlJPVwpyb3dpZDogMTMKY3J5cHRvOiAzREVTLVNIQTI1Ngpncm91\r\ncDogbW9kcDE1MzYKbmFtZTogQUVTLzNERVMKbnVtYmVyOiAxMwoqKlJPVwpyb3dp\r\nZDogMTQKY3J5cHRvOiAzREVTLVNIQTI1Ngpncm91cDogbW9kcDEwMjQKbmFtZTog\r\nQUVTLzNERVMKbnVtYmVyOiAxNAoqKlJPVwpyb3dpZDogMTUKY3J5cHRvOiAzREVT\r\nLVNIQTEKZ3JvdXA6IG1vZHAxNTM2Cm5hbWU6IEFFUy8zREVTCm51bWJlcjogMTUK\r\nKipST1cKcm93aWQ6IDE2CmNyeXB0bzogM0RFUy1TSEExCmdyb3VwOiBtb2RwMTAy\r\nNApuYW1lOiBBRVMvM0RFUwpudW1iZXI6IDE2CioqUk9XCnJvd2lkOiAxNwpjcnlw\r\ndG86IDNERVMtTUQ1Cmdyb3VwOiBtb2RwMTUzNgpuYW1lOiBBRVMvM0RFUwpudW1i\r\nZXI6IDE3CioqUk9XCnJvd2lkOiAxOApjcnlwdG86IDNERVMtTUQ1Cmdyb3VwOiBt\r\nb2RwMTAyNApuYW1lOiBBRVMvM0RFUwpudW1iZXI6IDE4CipTRUNUSU9OIGRiLmlw\r\nc2VjLmludGVyb3AKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJv\r\nd2lkOiAxCmVuYWJsZV9wc2tfcnc6IG9mZgplbmFibGVfbm9uX3VuaXF1ZV9wZWVy\r\nOiBvZmYKKlNFQ1RJT04gZGIuaXBzZWMuaXBzZWNfbmV0cwpnZW5lcmF0aW9uOiAw\r\nCmxhc3Rfcm93aWQ6IDAKKlNFQ1RJT04gZGIuaXBzZWMubmF0X3Rfa2VlcGFsaXZl\r\nCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQppbnRl\r\ncnZhbDogNjAKKlNFQ1RJT04gZGIuaXBzZWMucGVlcnMKZ2VuZXJhdGlvbjogMAps\r\nYXN0X3Jvd2lkOiAwCipTRUNUSU9OIGRiLmlwc2VjLnBsdXRvX2xvZ2NsYXNzCmdl\r\nbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQpsb2djbGFz\r\nczogTG9jYWwKKlNFQ1RJT04gZGIuaXBzZWMucGx1dG92ZXJib3NlX2xvZ2NsYXNz\r\nCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQpsb2dj\r\nbGFzczogLQoqU0VDVElPTiBkYi5pcHNlYy5yYWRpdXNhdXRoX3NlcnZlcgpnZW5l\r\ncmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKY2VydDogLQpp\r\ncDogLQpwb3J0OiA0NDMKdGxzOiBUTFN2MS54CipTRUNUSU9OIGRiLmlwc2VjLnR1\r\nbm5lbGVkX25ldHMKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAwCipTRUNUSU9O\r\nIGRiLmlwc2VjLnBlZXJzX2FkdmFuY2VkCmdlbmVyYXRpb246IDAKbGFzdF9yb3dp\r\nZDogMAoqU0VDVElPTiBkYi5pcHNlYy54YXV0aF91c2VycwpnZW5lcmF0aW9uOiAw\r\nCmxhc3Rfcm93aWQ6IDAKKlNFQ1RJT04gZGIuaXBzZWMubW9kZWNmZwpnZW5lcmF0\r\naW9uOiAwCmxhc3Rfcm93aWQ6IDAKKlNFQ1RJT04gZGIuaXBzZWMudXNlcmF1dGhf\r\nbG9nY2xhc3MKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lk\r\nOiAxCmxvZ2NsYXNzOiBMb2NhbAoqU0VDVElPTiBkYi5pcHNlYy54NTA5X2NhY2Vy\r\ndHMKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAwCipTRUNUSU9OIGRiLmlwc2Vj\r\nLng1MDlfY2VydApnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93\r\naWQ6IDEKY2VydDogLQoqU0VDVElPTiBFT0YKAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAGRiL2RiLnNpcHN3aXRjaAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDAwNjMAMDAwMDA2MwAwMDAw\r\nMDAxMDE3NAAxMzM2MTQwMjQ2NwAwMTI3NjQAIDAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABmdWVnbwAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZ1ZWdvAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nIyBUaGlzIGZpbGUgaXMgYSBzdHJpY3QgZm9ybWF0IGNvbmZpZ3VyYXRpb24gZmls\r\nZS4KIyBFZGl0IGNhcmVmdWxseSBvciBub3QgYXQgYWxsLgoqU0VDVElPTiBkYi5z\r\naXBzd2l0Y2guYWNjb3VudHMKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAwCipT\r\nRUNUSU9OIGRiLnNpcHN3aXRjaC5iMmJ1YV90cmFuc2Zlcl9lbmFibGUKZ2VuZXJh\r\ndGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmFsd2F5czogb2Zm\r\nCmNsaWVudHNfbGFja19yZWZlcjogb2ZmCmNsaWVudHNfbGFja19yZXBsYWNlOiBv\r\nZmYKdXNlX2Zyb21fdXJpOiBvZmYKdXNlX3VzZXJfYWdlbnQ6IG9mZgoqU0VDVElP\r\nTiBkYi5zaXBzd2l0Y2guYjJidWFfdHJhbnNmZXJfZm9yX2NsaWVudApnZW5lcmF0\r\naW9uOiAwCmxhc3Rfcm93aWQ6IDAKKlNFQ1RJT04gZGIuc2lwc3dpdGNoLmIyYnVh\r\nX3RyYW5zZmVyX2Zyb21fdXNlcgpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDAK\r\nKlNFQ1RJT04gZGIuc2lwc3dpdGNoLmRpYWxfcGxhbgpnZW5lcmF0aW9uOiAwCmxh\r\nc3Rfcm93aWQ6IDAKKlNFQ1RJT04gZGIuc2lwc3dpdGNoLmRpYWxfcGxhbl9lbmFi\r\nbGUKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmVu\r\nYWJsZWQ6IG9mZgoqU0VDVElPTiBkYi5zaXBzd2l0Y2guZGlhbF9wbGFuX21ldGhv\r\nZHMKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiA2CioqUk9XCnJvd2lkOiAxCm1l\r\ndGhvZDogSU5WSVRFCioqUk9XCnJvd2lkOiAyCm1ldGhvZDogT1BUSU9OUwoqKlJP\r\nVwpyb3dpZDogMwptZXRob2Q6IFNVQlNDUklCRQoqKlJPVwpyb3dpZDogNAptZXRo\r\nb2Q6IE1FU1NBR0UKKipST1cKcm93aWQ6IDUKbWV0aG9kOiBSRUZFUgoqKlJPVwpy\r\nb3dpZDogNgptZXRob2Q6IE5PVElGWQoqU0VDVElPTiBkYi5zaXBzd2l0Y2guZW51\r\nbV9yb290CmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDog\r\nMQpuYW1lOiBlMTY0LmFycGEuCm51bWJlcjogMQpyb290OiBlMTY0LmFycGEuCipT\r\nRUNUSU9OIGRiLnNpcHN3aXRjaC5mb3J3YXJkX3RvCmdlbmVyYXRpb246IDAKbGFz\r\ndF9yb3dpZDogMAoqU0VDVElPTiBkYi5zaXBzd2l0Y2guaW5jb21pbmdfdW5hdXRo\r\nCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMAoqU0VDVElPTiBkYi5zaXBzd2l0\r\nY2gucmVxdWVzdF9mcm9tCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMAoqU0VD\r\nVElPTiBkYi5zaXBzd2l0Y2gucmVxdWVzdF90bwpnZW5lcmF0aW9uOiAwCmxhc3Rf\r\ncm93aWQ6IDAKKlNFQ1RJT04gZGIuc2lwc3dpdGNoLnRydW5rX21haW5fbGluZXMK\r\nZ2VuZXJhdGlvbjogMQpsYXN0X3Jvd2lkOiAyCioqUk9XCnJvd2lkOiAxCmFsaWFz\r\nZXM6IAphdXRoX25hbWU6IApmcm9tX2RuOiAKZnJvbV91c2VyOiAKZndkOiAKaXNf\r\ncmVnOiBvZmYKbnVtYmVyOiAxCnBfYXNzZXJ0ZWRfaWRlbnRpdHk6IApwYXNzd29y\r\nZDogCnRydW5rOiAxCnVzZXI6IAoqKlJPVwpyb3dpZDogMgphbGlhc2VzOiAKYXV0\r\naF9uYW1lOiAKZnJvbV9kbjogCmZyb21fdXNlcjogCmZ3ZDogCmlzX3JlZzogb2Zm\r\nCm51bWJlcjogMQpwX2Fzc2VydGVkX2lkZW50aXR5OiAKcGFzc3dvcmQ6IAp0cnVu\r\nazogMgp1c2VyOiAKKlNFQ1RJT04gZGIuc2lwc3dpdGNoLnRydW5rX3BhcmFtcwpn\r\nZW5lcmF0aW9uOiAxCmxhc3Rfcm93aWQ6IDIKKipST1cKcm93aWQ6IDEKYWxpYXNf\r\naXA6IC0KZG9tYWluOiAKZG9tYWluX2lkOiAKZW5hYmxlZDogb24KZnJvbV9kb21h\r\naW46IHBkb21haW4KZnJvbV9kb21haW5fc3RyOiAKZndkX3JlZmVyOiBvZmYKZ2lu\r\nX3JlZzogb2ZmCmhpZGVfcnI6IG9mZgpoaWRlX3RvX3RhZ3M6IG9mZgppdHNwX2hv\r\nc3RfYWRkcnM6IC0KbHRydW5rX2dyb3VwX3BhcmFtOiAKbHRydW5rX2dyb3VwX3Vz\r\nYWdlOiAtCm1heF9jYWxsc19wZXJfbGluZTogCm1heF9jYWxsc190b3RhbDogCm5h\r\nbWU6IApvdXRib3VuZF9ndzogLQpvdXRib3VuZF9wcm94eTogCnBvcnQ6IApwcmVz\r\nZXJ2ZV9tYXhfZm9yd2FyZHM6IG9mZgpyZWRpcmVjdF9jYWxsZXJfZG9tYWluOiBv\r\nZmYKcmVkaXJlY3RfaG9tZV9kb21haW46IG9mZgpyZWZlcnRvX2RvbWFpbjogCnJl\r\nbGF5X21lZGlhOiBvZmYKcmVtb3ZlX3ZpYTogb2ZmCnJlbW92ZV92aWRlbzogb2Zm\r\nCnJvdXRlX2luY29taW5nOiBydXJpCnNlbmRfZHRtZl92aWFfc2lwX2luZm86IG9m\r\nZgp0cmFuc3BvcnQ6IC0KdHJ1bms6IDEKdHJ1bmtfZ3JvdXBfcGFyYW06IAp0cnVu\r\na19ncm91cF91c2FnZTogLQp0cnVzdGVkX25ldHdvcmtzX2VuYWJsZTogb2ZmCnVz\r\nZV9wcmVmZXJyZWRfaWRlbnRpdHk6IG9mZgoqKlJPVwpyb3dpZDogMgphbGlhc19p\r\ncDogLQpkb21haW46IApkb21haW5faWQ6IAplbmFibGVkOiBvbgpmcm9tX2RvbWFp\r\nbjogcGRvbWFpbgpmcm9tX2RvbWFpbl9zdHI6IApmd2RfcmVmZXI6IG9mZgpnaW5f\r\ncmVnOiBvZmYKaGlkZV9ycjogb2ZmCmhpZGVfdG9fdGFnczogb2ZmCml0c3BfaG9z\r\ndF9hZGRyczogLQpsdHJ1bmtfZ3JvdXBfcGFyYW06IApsdHJ1bmtfZ3JvdXBfdXNh\r\nZ2U6IC0KbWF4X2NhbGxzX3Blcl9saW5lOiAKbWF4X2NhbGxzX3RvdGFsOiAKbmFt\r\nZTogCm91dGJvdW5kX2d3OiAtCm91dGJvdW5kX3Byb3h5OiAKcG9ydDogCnByZXNl\r\ncnZlX21heF9mb3J3YXJkczogb2ZmCnJlZGlyZWN0X2NhbGxlcl9kb21haW46IG9m\r\nZgpyZWRpcmVjdF9ob21lX2RvbWFpbjogb2ZmCnJlZmVydG9fZG9tYWluOiAKcmVs\r\nYXlfbWVkaWE6IG9mZgpyZW1vdmVfdmlhOiBvZmYKcmVtb3ZlX3ZpZGVvOiBvZmYK\r\ncm91dGVfaW5jb21pbmc6IHJ1cmkKc2VuZF9kdG1mX3ZpYV9zaXBfaW5mbzogb2Zm\r\nCnRyYW5zcG9ydDogLQp0cnVuazogMgp0cnVua19ncm91cF9wYXJhbTogCnRydW5r\r\nX2dyb3VwX3VzYWdlOiAtCnRydXN0ZWRfbmV0d29ya3NfZW5hYmxlOiBvZmYKdXNl\r\nX3ByZWZlcnJlZF9pZGVudGl0eTogb2ZmCipTRUNUSU9OIGRiLnNpcHN3aXRjaC50\r\ncnVua19wYngKZ2VuZXJhdGlvbjogMQpsYXN0X3Jvd2lkOiAyCioqUk9XCnJvd2lk\r\nOiAxCmFsaWFzX2lwOiAtCmF1dGhfbmFtZTogCmNvbW1vbl91c2VyX3N1ZmZpeDog\r\nCmRvbWFpbjogCmVuYWJsZWQ6IG9uCmZyb21fbWF0Y2hpbmc6IGZyb21fdXJpCmZy\r\nb21fbWF0Y2hpbmdfc3RyOiAKZndkX3JlZmVyOiBvZmYKaW5jb21pbmdfZndkX3Bv\r\ncnQ6IAppbmNvbWluZ19md2RfdHJhbnNwb3J0OiAtCmlwYWRkcl9kbnM6IAppcGFk\r\nZHJfZXJyOiAKaXBhZGRyX2lwOiAKbHRydW5rX2dyb3VwX3VzYWdlOiAtCm5hbWU6\r\nIApwYXNzd29yZDogCnBieF9ob3N0X2FkZHJzOiAtCnJlZmVydG9fZG9tYWluOiAK\r\nc2VuZF9kdG1mX3ZpYV9zaXBfaW5mbzogb2ZmCnRvX3N0cjogCnRvX3R5cGU6IHJ1\r\ncmkKdHJ1bms6IDEKdHJ1bmtfZ3JvdXBfdXNhZ2U6IC0KdXJpOiAKKipST1cKcm93\r\naWQ6IDIKYWxpYXNfaXA6IC0KYXV0aF9uYW1lOiAKY29tbW9uX3VzZXJfc3VmZml4\r\nOiAKZG9tYWluOiAKZW5hYmxlZDogb24KZnJvbV9tYXRjaGluZzogZnJvbV91cmkK\r\nZnJvbV9tYXRjaGluZ19zdHI6IApmd2RfcmVmZXI6IG9mZgppbmNvbWluZ19md2Rf\r\ncG9ydDogCmluY29taW5nX2Z3ZF90cmFuc3BvcnQ6IC0KaXBhZGRyX2RuczogCmlw\r\nYWRkcl9lcnI6IAppcGFkZHJfaXA6IApsdHJ1bmtfZ3JvdXBfdXNhZ2U6IC0KbmFt\r\nZTogCnBhc3N3b3JkOiAKcGJ4X2hvc3RfYWRkcnM6IC0KcmVmZXJ0b19kb21haW46\r\nIApzZW5kX2R0bWZfdmlhX3NpcF9pbmZvOiBvZmYKdG9fc3RyOiAKdG9fdHlwZTog\r\ncnVyaQp0cnVuazogMgp0cnVua19ncm91cF91c2FnZTogLQp1cmk6IAoqU0VDVElP\r\nTiBkYi5zaXBzd2l0Y2gudHJ1bmtfcGJ4X2xpbmVzCmdlbmVyYXRpb246IDAKbGFz\r\ndF9yb3dpZDogMAoqU0VDVElPTiBkYi5zaXBzd2l0Y2gudHJ1bmtfc2lwX2xpbmVz\r\nCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMAoqU0VDVElPTiBkYi5zaXBzd2l0\r\nY2gudHJ1bmtzCmdlbmVyYXRpb246IDEKbGFzdF9yb3dpZDogMgoqKlJPVwpyb3dp\r\nZDogMQplbmFibGVkOiBvZmYKaWQ6IDEKcGFyYW1zOiAtCnBieDogLQoqKlJPVwpy\r\nb3dpZDogMgplbmFibGVkOiBvZmYKaWQ6IDIKcGFyYW1zOiAtCnBieDogLQoqU0VD\r\nVElPTiBkYi5zaXBzd2l0Y2gudXNlcl9yb3V0aW5nCmdlbmVyYXRpb246IDAKbGFz\r\ndF9yb3dpZDogMAoqU0VDVElPTiBkYi5zaXBzd2l0Y2gudXNlcnMKZ2VuZXJhdGlv\r\nbjogMApsYXN0X3Jvd2lkOiAwCipTRUNUSU9OIGRiLnNpcHN3aXRjaC52b2ljZW1h\r\naWwKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAwCipTRUNUSU9OIEVPRgoAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nZGIvZGIucHB0cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAADAwMDA2NDQAMDAwMDA2MwAwMDAwMDYzADAwMDAwMDAxNTEyADEzMzYxNDAx\r\nNDQ3ADAxMTcyMwAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAGZ1ZWdvAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAZnVlZ28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjIFRoaXMgZmlsZSBpcyBh\r\nIHN0cmljdCBmb3JtYXQgY29uZmlndXJhdGlvbiBmaWxlLgojIEVkaXQgY2FyZWZ1\r\nbGx5IG9yIG5vdCBhdCBhbGwuCipTRUNUSU9OIGRiLnBwdHAuZ3JlX2xvZ2NsYXNz\r\nCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQpsb2dj\r\nbGFzczogLQoqU0VDVElPTiBkYi5wcHRwLnBwdHBfZW5hYmxlCmdlbmVyYXRpb246\r\nIDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQplbmFibGVkOiBvZmYKKlNF\r\nQ1RJT04gZGIucHB0cC5wcHRwX2xvZ2NsYXNzCmdlbmVyYXRpb246IDAKbGFzdF9y\r\nb3dpZDogMQoqKlJPVwpyb3dpZDogMQpsb2djbGFzczogTG9jYWwKKlNFQ1RJT04g\r\nZGIucHB0cC5wcHRwX25ldHMKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioq\r\nUk9XCnJvd2lkOiAxCmNsaWVudF9uZXRncm91cDogLQpkbnMxX2RuczogCmRuczFf\r\nZXJyOiAKZG5zMV9pcDogCmRuczJfZG5zOiAKZG5zMl9lcnI6IApkbnMyX2lwOiAK\r\nbGNwX2VjaG9faW50ZXJ2YWw6IApsb2NhbF9hZGRyOiAtCndpbnMxX2RuczogCndp\r\nbnMxX2VycjogCndpbnMxX2lwOiAKd2luczJfZG5zOiAKd2luczJfZXJyOiAKd2lu\r\nczJfaXA6IAoqU0VDVElPTiBkYi5wcHRwLnBwdHBfc2VydmVyaXAKZ2VuZXJhdGlv\r\nbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmlwOiAtCipTRUNUSU9O\r\nIGRiLnBwdHAucHB0cF91c2VycwpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDAK\r\nKlNFQ1RJT04gZGIucHB0cC5wcHRwbmVnX2xvZ2NsYXNzCmdlbmVyYXRpb246IDAK\r\nbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQpsb2djbGFzczogTG9jYWwKKlNF\r\nQ1RJT04gRU9GCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nZGIvZGIudGxzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAADAwMDA2NDQAMDAwMDA2MwAwMDAwMDYzADAwMDAwMDEwNTA3ADEzMzYxNDAx\r\nNDQ3ADAxMTU0NgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAGZ1ZWdvAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAZnVlZ28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjIFRoaXMgZmlsZSBpcyBh\r\nIHN0cmljdCBmb3JtYXQgY29uZmlndXJhdGlvbiBmaWxlLgojIEVkaXQgY2FyZWZ1\r\nbGx5IG9yIG5vdCBhdCBhbGwuCipTRUNUSU9OIGRiLnRscy5jaXBoZXJzCmdlbmVy\r\nYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQpjaXBoZXJzOiBI\r\nSUdIOiFhTlVMTDohTUQ1Cm5hbWU6IEhJR0gKKlNFQ1RJT04gZGIudGxzLmRocGFy\r\nYW1zCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogNAoqKlJPVwpyb3dpZDogMQpk\r\naHBhcmFtOiAtLS0tLUJFR0lOIERIIFBBUkFNRVRFUlMtLS0tLVxuTUlHSEFvR0JB\r\nUC8vLy8vLy8vLy95US9hb2lGb3dqVEV4bUtMZ053YzBTa0NUZ2lLWjh4MEFndStw\r\nanNUbXlKUlxuU2doNWpqUUUzZStWR2JQTk9rTWJNQ3NLYmZKZkZEZFA0VFZ0YlZI\r\nQ1JlU0Z0WFppWG43RzlFeEM2YVkzN1dzTFxuLzF5MjlBYTM3ZTQ0YS90YWlaK2xy\r\ncDhrRVh4TEgrWkpLR1pSN09aVGdmLy8vLy8vLy8vL0FnRUNcbi0tLS0tRU5EIERI\r\nIFBBUkFNRVRFUlMtLS0tLVxuCm5hbWU6IE1PRFAxMDI0IChHcm91cCAyKQoqKlJP\r\nVwpyb3dpZDogMgpkaHBhcmFtOiAtLS0tLUJFR0lOIERIIFBBUkFNRVRFUlMtLS0t\r\nLVxuTUlJQkNBS0NBUUVBLy8vLy8vLy8vLy9KRDlxaUlXakNOTVRHWW91QTNCelJL\r\nUUpPQ0lwbnpIUUNDNzZtT3hPYlxuSWxGS0NIbU9OQVRkNzVVWnM4MDZReHN3S3dw\r\ndDhsOFVOMC9oTlcxdFVjSkY1SVcxZG1KZWZzYjBURUxwcGpmdFxuYXd2L1hMYjBC\r\ncmZ0N2pocisxcUpuNld1bnlRUmZFc2Y1a2tvWmxIczVGczl3Z0I4dUtGanZ3V1ky\r\na2cySEZYVFxubW1rV1A2ajlKTTlmZzJWZEk5eWpyWlljWXZOV0lJVlN1NTdWS1Fk\r\nd2xwWnRad3cxVGtxOG1BVHhkR3dJeWhnaFxuZkRLUVhrWXVOczQ3NDU1M0xCZ09o\r\nZ09iSjRPaTdBZWlqN1hGWGZCdlRGTEozaXZMOXBWWUZ4ZzVsVWw4NnBWcVxuNVJY\r\nU0poaVkrZ1VRRlhLT1dvcXNxbWovLy8vLy8vLy8vd0lCQWc9PVxuLS0tLS1FTkQg\r\nREggUEFSQU1FVEVSUy0tLS0tXG4KbmFtZTogTU9EUDIwNDggKEdyb3VwIDE0KQoq\r\nKlJPVwpyb3dpZDogMwpkaHBhcmFtOiAtLS0tLUJFR0lOIERIIFBBUkFNRVRFUlMt\r\nLS0tLVxuTUlJQ0NBS0NBZ0VBLy8vLy8vLy8vLy9KRDlxaUlXakNOTVRHWW91QTNC\r\nelJLUUpPQ0lwbnpIUUNDNzZtT3hPYlxuSWxGS0NIbU9OQVRkNzVVWnM4MDZReHN3\r\nS3dwdDhsOFVOMC9oTlcxdFVjSkY1SVcxZG1KZWZzYjBURUxwcGpmdFxuYXd2L1hM\r\nYjBCcmZ0N2pocisxcUpuNld1bnlRUmZFc2Y1a2tvWmxIczVGczl3Z0I4dUtGanZ3\r\nV1kya2cySEZYVFxubW1rV1A2ajlKTTlmZzJWZEk5eWpyWlljWXZOV0lJVlN1NTdW\r\nS1Fkd2xwWnRad3cxVGtxOG1BVHhkR3dJeWhnaFxuZkRLUVhrWXVOczQ3NDU1M0xC\r\nZ09oZ09iSjRPaTdBZWlqN1hGWGZCdlRGTEozaXZMOXBWWUZ4ZzVsVWw4NnBWcVxu\r\nNVJYU0poaVkrZ1VRRlhLT1dvcXF4QzJ0TXhjTkJGQjZNNmhWSWF2ZkhMcGs3UHVG\r\nQkZqYjd3cUs2bkZYWFFZTVxuZmJPWEQ0V200ZVRIcS9XdWpOc0pNOWNlakpUZ1Np\r\nVmhuYzdqMGlZYTB1NXI4Uy82QnRtS0NHVFlkZ0p6UHNocVxuWkZJZkt4Z1hleUFN\r\ndStFWFYzcGhYV3gzQ1lqQXV0bEc0Z2ppVDZCMDVhc3hROXRiL09EOUVJNUxndEVn\r\ncVNFSVxuQVJweVBCS25oK2JYaUhHYUVMMjZXeWFad3ljWWF2VGlQQnFVYURTMkZR\r\ndmFKWVBweWlyVVRPamJ1OExiQk42T1xuK1M2Ty9CUWZ2c3FtS0h4WlIwNXJ3RjJa\r\nc3BaUG9KRERvaU03b1laUlcrZnRIMkVwY003aTE2KzRHOTEySVhCSVxuSE5BR2tT\r\nZlZzRnFwazdUcW1JMlAzY0dHLzdmY2tLYkFqMDMwTmNrMEJqR1ovLy8vLy8vLy8v\r\nOENBUUk9XG4tLS0tLUVORCBESCBQQVJBTUVURVJTLS0tLS1cbgpuYW1lOiBNT0RQ\r\nNDA5NiAoR3JvdXAgMTYpCioqUk9XCnJvd2lkOiA0CmRocGFyYW06IC0tLS0tQkVH\r\nSU4gREggUEFSQU1FVEVSUy0tLS0tXG5NSUlFQ0FLQ0JBRUEvLy8vLy8vLy8vL0pE\r\nOXFpSVdqQ05NVEdZb3VBM0J6UktRSk9DSXBuekhRQ0M3Nm1PeE9iXG5JbEZLQ0ht\r\nT05BVGQ3NVVaczgwNlF4c3dLd3B0OGw4VU4wL2hOVzF0VWNKRjVJVzFkbUplZnNi\r\nMFRFTHBwamZ0XG5hd3YvWExiMEJyZnQ3amhyKzFxSm42V3VueVFSZkVzZjVra29a\r\nbEhzNUZzOXdnQjh1S0ZqdndXWTJrZzJIRlhUXG5tbWtXUDZqOUpNOWZnMlZkSTl5\r\nanJaWWNZdk5XSUlWU3U1N1ZLUWR3bHBadFp3dzFUa3E4bUFUeGRHd0l5aGdoXG5m\r\nREtRWGtZdU5zNDc0NTUzTEJnT2hnT2JKNE9pN0FlaWo3WEZYZkJ2VEZMSjNpdkw5\r\ncFZZRnhnNWxVbDg2cFZxXG41UlhTSmhpWStnVVFGWEtPV29xcXhDMnRNeGNOQkZC\r\nNk02aFZJYXZmSExwazdQdUZCRmpiN3dxSzZuRlhYUVlNXG5mYk9YRDRXbTRlVEhx\r\nL1d1ak5zSk05Y2VqSlRnU2lWaG5jN2owaVlhMHU1cjhTLzZCdG1LQ0dUWWRnSnpQ\r\nc2hxXG5aRklmS3hnWGV5QU11K0VYVjNwaFhXeDNDWWpBdXRsRzRnamlUNkIwNWFz\r\neFE5dGIvT0Q5RUk1TGd0RWdxU0VJXG5BUnB5UEJLbmgrYlhpSEdhRUwyNld5YVp3\r\neWNZYXZUaVBCcVVhRFMyRlF2YUpZUHB5aXJVVE9qYnU4TGJCTjZPXG4rUzZPL0JR\r\nZnZzcW1LSHhaUjA1cndGMlpzcFpQb0pERG9pTTdvWVpSVytmdEgyRXBjTTdpMTYr\r\nNEc5MTJJWEJJXG5ITkFHa1NmVnNGcXBrN1RxbUkyUDNjR0cvN2Zja0tiQWowMzBO\r\nY2swQW9TU05zUDZ0Tko4Y0NiQjFOeXlZQ1pHXG4zc2wxSG5ZOXVqZTkrUCtVQnEy\r\nZVV3N2wyemd2UVRBQnJyQnFVKzJRSjlneEY1Y25zSVphaVJqYVB0dnJ6NXNVXG43\r\nVVRPYkxyTzFMc2IyMzhVUitiTUpVc3pJRkZSSzlldlFtKzQ5QUUzak5LL1dZUEtB\r\nY1pMa3V6d011b1YwWElkXG5BL1NDMTg1dWRQNzIxVjV3TDBhWURJSzFxRUF4a0Fz\r\nY25sbm55WCsreCtqekk2bDZmamJNaUw0UEhVVzMvMWhhXG54VXZVQjdJclFWU3F6\r\nSTl0ZnI5STRkZ1V6RjdTRDRBMzRLZVhGZTd5bStNb0JxSFZpN2ZGMm5iMVVLbzlp\r\naCsvXG44T3NaekxHakU5VmMybGJKN0M3eWxqSTRmK2pYYmp3RWFBUStqMlkvU0dE\r\ndUVyOHRXd3QwZE5ibWxQa2ViYjRSXG5XWFNqa204Uy91WGtPSGQ4dHFreTM0ell2\r\nc1RRYzdreHVqdklNcmFObmRNQWRCK252NHI4UiswbGR2YVRhNlFrXG5aanFyWTV4\r\nYTVQVm9OQ08wZEN2eHlYZ2pqeGJMNDUxbExlUDl1TDc4aElyWklpSXVCS1FEZkFj\r\nVDYxZW9HaVB3XG54elJ6L0dSczZqQnJTOHZJaGkrRGhkMzZuVXQvb3NDSDZIbG9N\r\nd1B0VzkwNkJpczg5Yk9pZUtadEtoUDRQMFQ0XG5MZDh4RHVCMHEybzJSWmZvbWFB\r\nbFhjRms4eHpGQ0VhRkhmbXJTQmxkN1g2aHNkVVF2WDduVFhQNjgydkRIcytpXG5h\r\nRFdRUnZUcmg1K1NRQWxEaTBnY2JOZUltZ0F1MWU0NEs4a1pEYWI4QW01SGxWamtS\r\nMVozNmFxZU1GRGlkbGFVXG4zOGdmVnVpQXVXNXhZTW1BM1pqdDA5Ly8vLy8vLy8v\r\nLy93SUJBZz09XG4tLS0tLUVORCBESCBQQVJBTUVURVJTLS0tLS1cbgpuYW1lOiBN\r\nT0RQODE5MiAoR3JvdXAgMTgpCipTRUNUSU9OIGRiLnRscy5wcm90b2NvbHMKZ2Vu\r\nZXJhdGlvbjogMApsYXN0X3Jvd2lkOiA5CioqUk9XCnJvd2lkOiAxCm5hbWU6IERU\r\nTFN2MS54CnByb3RvY29sOiBEVExTdjEKKipST1cKcm93aWQ6IDIKbmFtZTogRFRM\r\nU3YxLngKcHJvdG9jb2w6IERUTFN2MV8yCioqUk9XCnJvd2lkOiAzCm5hbWU6IFNT\r\nTHYzLjAKcHJvdG9jb2w6IFNTTHYzCioqUk9XCnJvd2lkOiA0Cm5hbWU6IFRMU3Yx\r\nLnggJiBTU0x2My4wCnByb3RvY29sOiBTU0x2MwoqKlJPVwpyb3dpZDogNQpuYW1l\r\nOiBUTFN2MS54ICYgU1NMdjMuMApwcm90b2NvbDogVExTdjEKKipST1cKcm93aWQ6\r\nIDYKbmFtZTogVExTdjEueCAmIFNTTHYzLjAKcHJvdG9jb2w6IFRMU3YxXzEKKipS\r\nT1cKcm93aWQ6IDcKbmFtZTogVExTdjEueCAmIFNTTHYzLjAKcHJvdG9jb2w6IFRM\r\nU3YxXzIKKipST1cKcm93aWQ6IDgKbmFtZTogVExTdjEueApwcm90b2NvbDogVExT\r\ndjFfMQoqKlJPVwpyb3dpZDogOQpuYW1lOiBUTFN2MS54CnByb3RvY29sOiBUTFN2\r\nMV8yCipTRUNUSU9OIGRiLnRscy50bHMKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lk\r\nOiA0CioqUk9XCnJvd2lkOiAxCmNpcGhlcnM6IEhJR0gKZGhwYXJhbTogTU9EUDIw\r\nNDggKEdyb3VwIDE0KQplY2RoOiBwcmltZTI1NnYxCm5hbWU6IERUTFN2MS54CnBy\r\nb3RvY29sczogRFRMU3YxLngKKipST1cKcm93aWQ6IDIKY2lwaGVyczogSElHSApk\r\naHBhcmFtOiBNT0RQMjA0OCAoR3JvdXAgMTQpCmVjZGg6IHByaW1lMjU2djEKbmFt\r\nZTogU1NMdjMuMApwcm90b2NvbHM6IFNTTHYzLjAKKipST1cKcm93aWQ6IDMKY2lw\r\naGVyczogSElHSApkaHBhcmFtOiBNT0RQMjA0OCAoR3JvdXAgMTQpCmVjZGg6IHBy\r\naW1lMjU2djEKbmFtZTogVExTdjEueCAmIFNTTHYzLjAKcHJvdG9jb2xzOiBUTFN2\r\nMS54ICYgU1NMdjMuMAoqKlJPVwpyb3dpZDogNApjaXBoZXJzOiBISUdICmRocGFy\r\nYW06IE1PRFAyMDQ4IChHcm91cCAxNCkKZWNkaDogcHJpbWUyNTZ2MQpuYW1lOiBU\r\nTFN2MS54CnByb3RvY29sczogVExTdjEueAoqU0VDVElPTiBFT0YKAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkYi9kYi5taXNjAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAw\r\nMDYzADAwMDAwNjMAMDAwMDAwMDYyMzYAMTMzNjQzMjYxMzIAMDExNzAzACAwAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAHVzdGFyICAAZnVlZ28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmdWVnbwAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAACMgVGhpcyBmaWxlIGlzIGEgc3RyaWN0IGZvcm1hdCBj\r\nb25maWd1cmF0aW9uIGZpbGUuCiMgRWRpdCBjYXJlZnVsbHkgb3Igbm90IGF0IGFs\r\nbC4KKlNFQ1RJT04gZGIubWlzYy5jbG91ZHlfZGVidWdfbG9nY2xhc3MKZ2VuZXJh\r\ndGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmxvZ2NsYXNzOiAt\r\nCipTRUNUSU9OIGRiLm1pc2MuY2xvdWR5X2Vycm9yX2xvZ2NsYXNzCmdlbmVyYXRp\r\nb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQpsb2djbGFzczogTG9j\r\nYWwKKlNFQ1RJT04gZGIubWlzYy5jbG91ZHlfaW5mb19sb2djbGFzcwpnZW5lcmF0\r\naW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKbG9nY2xhc3M6IExv\r\nY2FsCipTRUNUSU9OIGRiLm1pc2MuY29ubnRyYWNrX3RpbWVvdXRzCmdlbmVyYXRp\r\nb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQppY21wOiAzMAppY21w\r\nNjogMzAKdGNwX2VzdGFibGlzaGVkOiA0MzIwMDAKdWRwOiAxMAp1ZHBfc3RyZWFt\r\nOiAxODAKKlNFQ1RJT04gZGIubWlzYy5kZWZhdWx0X2RvbWFpbgpnZW5lcmF0aW9u\r\nOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZG9tYWluOiAuCipTRUNU\r\nSU9OIGRiLm1pc2MuZGhjcF9zZXJ2ZXIKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lk\r\nOiAwCipTRUNUSU9OIGRiLm1pc2MuZGhjcF9zZXJ2ZXJfZGF0YV90eXBlCmdlbmVy\r\nYXRpb246IDAKbGFzdF9yb3dpZDogMTEKKipST1cKcm93aWQ6IDEKbmFtZTogQm9v\r\nbGVhbgpvcmRlcjogMQp0eXBlOiBCT09MRUFOCioqUk9XCnJvd2lkOiAyCm5hbWU6\r\nIFVuc2lnbmVkIEludGVnZXIgKDgpCm9yZGVyOiAxCnR5cGU6IFVJTlQ4CioqUk9X\r\nCnJvd2lkOiAzCm5hbWU6IFVuc2lnbmVkIEludGVnZXIgKDE2KQpvcmRlcjogMQp0\r\neXBlOiBVSU5UMTYKKipST1cKcm93aWQ6IDQKbmFtZTogVW5zaWduZWQgSW50ZWdl\r\nciAoMzIpCm9yZGVyOiAxCnR5cGU6IFVJTlQzMgoqKlJPVwpyb3dpZDogNQpuYW1l\r\nOiBJbnRlZ2VyICg4KQpvcmRlcjogMQp0eXBlOiBJTlQ4CioqUk9XCnJvd2lkOiA2\r\nCm5hbWU6IEludGVnZXIgKDE2KQpvcmRlcjogMQp0eXBlOiBJTlQxNgoqKlJPVwpy\r\nb3dpZDogNwpuYW1lOiBJbnRlZ2VyICgzMikKb3JkZXI6IDEKdHlwZTogSU5UMzIK\r\nKipST1cKcm93aWQ6IDgKbmFtZTogSVB2NCBhZGRyZXNzCm9yZGVyOiAxCnR5cGU6\r\nIElQdjQKKipST1cKcm93aWQ6IDkKbmFtZTogSVB2NiBhZGRyZXNzCm9yZGVyOiAx\r\nCnR5cGU6IElQdjYKKipST1cKcm93aWQ6IDEwCm5hbWU6IFRleHQKb3JkZXI6IDEK\r\ndHlwZTogVEVYVAoqKlJPVwpyb3dpZDogMTEKbmFtZTogU3RyaW5nCm9yZGVyOiAx\r\nCnR5cGU6IFNUUklORwoqU0VDVElPTiBkYi5taXNjLmRoY3Bfc2VydmVyX2Ruc19z\r\nZXJ2ZXJzCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMAoqU0VDVElPTiBkYi5t\r\naXNjLmRoY3Bfc2VydmVyX2RvbWFpbgpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6\r\nIDEKKipST1cKcm93aWQ6IDEKZG9tYWluOgoqU0VDVElPTiBkYi5taXNjLmRoY3Bf\r\nc2VydmVyX2dpdmVfbnMKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9X\r\nCnJvd2lkOiAxCmVuYWJsZWQ6IG9mZgoqU0VDVElPTiBkYi5taXNjLmRoY3Bfc2Vy\r\ndmVyX2xlYXNldGltZQpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cK\r\ncm93aWQ6IDEKZGVmYXVsdDogNDMyMDAKbWF4OiA4NjQwMAptaW46IDYwCipTRUNU\r\nSU9OIGRiLm1pc2MuZGhjcF9zZXJ2ZXJfbmV0Ymlvc19lbmFibGVkCmdlbmVyYXRp\r\nb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQplbmFibGVkOiAtCipT\r\nRUNUSU9OIGRiLm1pc2MuZGhjcF9zZXJ2ZXJfbmV0Ymlvc19ub2RldHlwZQpnZW5l\r\ncmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKdHlwZTogLQoq\r\nU0VDVElPTiBkYi5taXNjLmRoY3Bfc2VydmVyX29wdGlvbnMKZ2VuZXJhdGlvbjog\r\nMApsYXN0X3Jvd2lkOiAwCipTRUNUSU9OIGRiLm1pc2MuZGhjcF9zZXJ2ZXJfc3Rh\r\ndHVzCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQpl\r\nbmFibGVkOiBvZmYKKlNFQ1RJT04gZGIubWlzYy5kaGNwX3NlcnZlcl93aW5zX3Nl\r\ncnZlcnMKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAwCipTRUNUSU9OIGRiLm1p\r\nc2MuZG5zX3ByZWZlcmVuY2UKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioq\r\nUk9XCnJvd2lkOiAxCnByZWZlcmVuY2U6IGF1dG8KKlNFQ1RJT04gZGIubWlzYy5k\r\nbnNfc2VydmVycwpnZW5lcmF0aW9uOiA0Cmxhc3Rfcm93aWQ6IDIKKlNFQ1RJT04g\r\nZGIubWlzYy5keW5kbnMKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9X\r\nCnJvd2lkOiAxCmJhY2t1cDogb2ZmCmNhOiAtCmVuYWJsZWQ6IG9mZgppcDogLQpt\r\neDoKb2ZmbGluZTogb2ZmCnBhc3N3b3JkOgpzZXJ2aWNlOiAtCnVzZXI6CndpbGRj\r\nYXJkOiBvZmYKKlNFQ1RJT04gZGIubWlzYy5keW5kbnNfbmFtZQpnZW5lcmF0aW9u\r\nOiAwCmxhc3Rfcm93aWQ6IDAKKlNFQ1RJT04gZGIubWlzYy5mb3JjZV9ubGNrCmdl\r\nbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQplbmFibGVk\r\nOiBvZmYKKlNFQ1RJT04gZGIubWlzYy5mdmVyc2lvbgpnZW5lcmF0aW9uOiAwCmxh\r\nc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5hYmxlZDogb2ZmCipTRUNUSU9O\r\nIGRiLm1pc2MubnRwX3NlcnZlcnMKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAw\r\nCipTRUNUSU9OIGRiLm1pc2Mub3B0aW9ucwpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93\r\naWQ6IDAKKlNFQ1RJT04gZGIubWlzYy5yYWR2ZF9pbnRlcmZhY2Vfc2V0dGluZ3MK\r\nZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAwCipTRUNUSU9OIGRiLm1pc2MucmFk\r\ndmRfcHJlZml4X3NldHRpbmdzCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMAoq\r\nU0VDVElPTiBkYi5taXNjLnJhZHZkX3ByZWZpeGVzCmdlbmVyYXRpb246IDAKbGFz\r\ndF9yb3dpZDogMAoqU0VDVElPTiBkYi5taXNjLnJhZHZkX3N0YXR1cwpnZW5lcmF0\r\naW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5hYmxlZDogb2Zm\r\nCipTRUNUSU9OIGRiLm1pc2MudW5pdG5hbWUKZ2VuZXJhdGlvbjogMApsYXN0X3Jv\r\nd2lkOiAxCioqUk9XCnJvd2lkOiAxCnVuaXRuYW1lOgoqU0VDVElPTiBkYi5taXNj\r\nLnVzZV9udHAKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lk\r\nOiAxCmVuYWJsZWQ6IG9mZgoqU0VDVElPTiBFT0YKAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nZGIvZGIucW9zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAADAwMDA2NDQAMDAwMDA2MwAwMDAwMDYzADAwMDAwMDA1NjcwADEzMzYxNDAy\r\nNDY3ADAxMTU1NgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAGZ1ZWdvAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAZnVlZ28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjIFRoaXMgZmlsZSBpcyBh\r\nIHN0cmljdCBmb3JtYXQgY29uZmlndXJhdGlvbiBmaWxlLgojIEVkaXQgY2FyZWZ1\r\nbGx5IG9yIG5vdCBhdCBhbGwuCipTRUNUSU9OIGRiLnFvcy5iYW5kd2lkdGhzCmdl\r\nbmVyYXRpb246IDEKbGFzdF9yb3dpZDogNgoqKlJPVwpyb3dpZDogMQplZ3Jlc3Nf\r\nYmFuZHdpZHRoOiAKZWdyZXNzX2VuYWJsZWQ6IG9mZgplZ3Jlc3NfcmVzZXJ2ZV9z\r\naXBfbWVkaWE6IAplZ3Jlc3NfcmVzZXJ2ZV9zaXBfbWVkaWFfZW1lcmdlbmN5OiAK\r\naW5ncmVzc19iYW5kd2lkdGg6IAppbmdyZXNzX2VuYWJsZWQ6IG9mZgppbmdyZXNz\r\nX3Jlc2VydmVfc2lwX21lZGlhOiAKaW5ncmVzc19yZXNlcnZlX3NpcF9tZWRpYV9l\r\nbWVyZ2VuY3k6IAppbnRlcmZhY2U6IGV0aDAKKipST1cKcm93aWQ6IDIKZWdyZXNz\r\nX2JhbmR3aWR0aDogCmVncmVzc19lbmFibGVkOiBvZmYKZWdyZXNzX3Jlc2VydmVf\r\nc2lwX21lZGlhOiAKZWdyZXNzX3Jlc2VydmVfc2lwX21lZGlhX2VtZXJnZW5jeTog\r\nCmluZ3Jlc3NfYmFuZHdpZHRoOiAKaW5ncmVzc19lbmFibGVkOiBvZmYKaW5ncmVz\r\nc19yZXNlcnZlX3NpcF9tZWRpYTogCmluZ3Jlc3NfcmVzZXJ2ZV9zaXBfbWVkaWFf\r\nZW1lcmdlbmN5OiAKaW50ZXJmYWNlOiBldGgxCioqUk9XCnJvd2lkOiAzCmVncmVz\r\nc19iYW5kd2lkdGg6IAplZ3Jlc3NfZW5hYmxlZDogb2ZmCmVncmVzc19yZXNlcnZl\r\nX3NpcF9tZWRpYTogCmVncmVzc19yZXNlcnZlX3NpcF9tZWRpYV9lbWVyZ2VuY3k6\r\nIAppbmdyZXNzX2JhbmR3aWR0aDogCmluZ3Jlc3NfZW5hYmxlZDogb2ZmCmluZ3Jl\r\nc3NfcmVzZXJ2ZV9zaXBfbWVkaWE6IAppbmdyZXNzX3Jlc2VydmVfc2lwX21lZGlh\r\nX2VtZXJnZW5jeTogCmludGVyZmFjZTogZXRoMgoqKlJPVwpyb3dpZDogNAplZ3Jl\r\nc3NfYmFuZHdpZHRoOiAKZWdyZXNzX2VuYWJsZWQ6IG9mZgplZ3Jlc3NfcmVzZXJ2\r\nZV9zaXBfbWVkaWE6IAplZ3Jlc3NfcmVzZXJ2ZV9zaXBfbWVkaWFfZW1lcmdlbmN5\r\nOiAKaW5ncmVzc19iYW5kd2lkdGg6IAppbmdyZXNzX2VuYWJsZWQ6IG9mZgppbmdy\r\nZXNzX3Jlc2VydmVfc2lwX21lZGlhOiAKaW5ncmVzc19yZXNlcnZlX3NpcF9tZWRp\r\nYV9lbWVyZ2VuY3k6IAppbnRlcmZhY2U6IGV0aDMKKipST1cKcm93aWQ6IDUKZWdy\r\nZXNzX2JhbmR3aWR0aDogCmVncmVzc19lbmFibGVkOiBvZmYKZWdyZXNzX3Jlc2Vy\r\ndmVfc2lwX21lZGlhOiAKZWdyZXNzX3Jlc2VydmVfc2lwX21lZGlhX2VtZXJnZW5j\r\neTogCmluZ3Jlc3NfYmFuZHdpZHRoOiAKaW5ncmVzc19lbmFibGVkOiBvZmYKaW5n\r\ncmVzc19yZXNlcnZlX3NpcF9tZWRpYTogCmluZ3Jlc3NfcmVzZXJ2ZV9zaXBfbWVk\r\naWFfZW1lcmdlbmN5OiAKaW50ZXJmYWNlOiBldGg0CioqUk9XCnJvd2lkOiA2CmVn\r\ncmVzc19iYW5kd2lkdGg6IAplZ3Jlc3NfZW5hYmxlZDogb2ZmCmVncmVzc19yZXNl\r\ncnZlX3NpcF9tZWRpYTogCmVncmVzc19yZXNlcnZlX3NpcF9tZWRpYV9lbWVyZ2Vu\r\nY3k6IAppbmdyZXNzX2JhbmR3aWR0aDogCmluZ3Jlc3NfZW5hYmxlZDogb2ZmCmlu\r\nZ3Jlc3NfcmVzZXJ2ZV9zaXBfbWVkaWE6IAppbmdyZXNzX3Jlc2VydmVfc2lwX21l\r\nZGlhX2VtZXJnZW5jeTogCmludGVyZmFjZTogZXRoNQoqU0VDVElPTiBkYi5xb3Mu\r\nY2xhc3NlcwpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6\r\nIDEKY2xpZW50X25ldGdyb3VwOiAtCmRzY3A6IAptYXhfcGFja2V0X3NpemU6IApt\r\naW5fcGFja2V0X3NpemU6IApuYW1lOiBTSVAgU2lnbmFsaW5nCm51bWJlcjogMQpz\r\nZXJ2ZXJfbmV0Z3JvdXA6IC0Kc2VydmljZTogLQpzaXA6IHNpZ25hbGluZwp0b3M6\r\nIC0KKlNFQ1RJT04gZGIucW9zLmVncmVzc19kZWZhdWx0X3F1ZXVlaW5nCmdlbmVy\r\nYXRpb246IDEKbGFzdF9yb3dpZDogNgoqKlJPVwpyb3dpZDogMQppbnRlcmZhY2U6\r\nIGV0aDAKbGltaXQ6IApxdWV1ZTogcHJpbzgKcmF0ZTogCioqUk9XCnJvd2lkOiAy\r\nCmludGVyZmFjZTogZXRoMQpsaW1pdDogCnF1ZXVlOiBwcmlvOApyYXRlOiAKKipS\r\nT1cKcm93aWQ6IDMKaW50ZXJmYWNlOiBldGgyCmxpbWl0OiAKcXVldWU6IHByaW84\r\nCnJhdGU6IAoqKlJPVwpyb3dpZDogNAppbnRlcmZhY2U6IGV0aDMKbGltaXQ6IApx\r\ndWV1ZTogcHJpbzgKcmF0ZTogCioqUk9XCnJvd2lkOiA1CmludGVyZmFjZTogZXRo\r\nNApsaW1pdDogCnF1ZXVlOiBwcmlvOApyYXRlOiAKKipST1cKcm93aWQ6IDYKaW50\r\nZXJmYWNlOiBldGg1CmxpbWl0OiAKcXVldWU6IHByaW84CnJhdGU6IAoqU0VDVElP\r\nTiBkYi5xb3MuZWdyZXNzX3F1ZXVlaW5nCmdlbmVyYXRpb246IDAKbGFzdF9yb3dp\r\nZDogMAoqU0VDVElPTiBkYi5xb3MuaW5ncmVzc19kZWZhdWx0X3F1ZXVlaW5nCmdl\r\nbmVyYXRpb246IDEKbGFzdF9yb3dpZDogNgoqKlJPVwpyb3dpZDogMQppbnRlcmZh\r\nY2U6IGV0aDAKbGltaXQ6IApxdWV1ZTogcHJpbzgKcmF0ZTogCioqUk9XCnJvd2lk\r\nOiAyCmludGVyZmFjZTogZXRoMQpsaW1pdDogCnF1ZXVlOiBwcmlvOApyYXRlOiAK\r\nKipST1cKcm93aWQ6IDMKaW50ZXJmYWNlOiBldGgyCmxpbWl0OiAKcXVldWU6IHBy\r\naW84CnJhdGU6IAoqKlJPVwpyb3dpZDogNAppbnRlcmZhY2U6IGV0aDMKbGltaXQ6\r\nIApxdWV1ZTogcHJpbzgKcmF0ZTogCioqUk9XCnJvd2lkOiA1CmludGVyZmFjZTog\r\nZXRoNApsaW1pdDogCnF1ZXVlOiBwcmlvOApyYXRlOiAKKipST1cKcm93aWQ6IDYK\r\naW50ZXJmYWNlOiBldGg1CmxpbWl0OiAKcXVldWU6IHByaW84CnJhdGU6IAoqU0VD\r\nVElPTiBkYi5xb3MuaW5ncmVzc19xdWV1ZWluZwpnZW5lcmF0aW9uOiAwCmxhc3Rf\r\ncm93aWQ6IDAKKlNFQ1RJT04gZGIucW9zLnNpcF9jYWMKZ2VuZXJhdGlvbjogMAps\r\nYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmVuYWJsZWQ6IG9mZgoqU0VDVElP\r\nTiBkYi5xb3Muc3RhdHVzCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJP\r\nVwpyb3dpZDogMQpwcmlvX3NhdmU6IDAKdHlwZTogcHJpb3JpdHkKKlNFQ1RJT04g\r\nZGIucW9zLnRhZ2dpbmcKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAwCipTRUNU\r\nSU9OIEVPRgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkYi9kYi5jZXJ0AAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAw\r\nMDYzADAwMDAwNjMAMDAwMDAwMDAzMTAAMTMzNjE0MDE0NDcAMDExNjcwACAwAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAHVzdGFyICAAZnVlZ28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmdWVnbwAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAACMgVGhpcyBmaWxlIGlzIGEgc3RyaWN0IGZvcm1hdCBj\r\nb25maWd1cmF0aW9uIGZpbGUuCiMgRWRpdCBjYXJlZnVsbHkgb3Igbm90IGF0IGFs\r\nbC4KKlNFQ1RJT04gZGIuY2VydC5jYXMKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lk\r\nOiAwCipTRUNUSU9OIGRiLmNlcnQub3duX2NlcnRzCmdlbmVyYXRpb246IDAKbGFz\r\ndF9yb3dpZDogMAoqU0VDVElPTiBFT0YKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nZGIvZGIucnVudGltZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAADAwMDA2NDQAMDAwMDA2MwAwMDAwMDYzADAwMDAwMDAwNDIwADEzMzYxNDAx\r\nNDQ3ADAxMjQyMAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAGZ1ZWdvAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAZnVlZ28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjIFRoaXMgZmlsZSBpcyBh\r\nIHN0cmljdCBmb3JtYXQgY29uZmlndXJhdGlvbiBmaWxlLgojIEVkaXQgY2FyZWZ1\r\nbGx5IG9yIG5vdCBhdCBhbGwuCipTRUNUSU9OIGRiLnJ1bnRpbWUuYWN0aXZlX3Jv\r\ndXRlcnMKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAx\r\nCmRlZnJvdXRlcnM6IAoqU0VDVElPTiBkYi5ydW50aW1lLmR5bmlwX2xlYXNlcwpn\r\nZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKbGVhc2Vz\r\nOiAKKlNFQ1RJT04gRU9GCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAGRiL2RiLnF0dXJuAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDAwNjMAMDAwMDA2MwAwMDAw\r\nMDAwMjM0NgAxMzM2MTQwMTQ0NwAwMTIxMTcAIDAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABmdWVnbwAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZ1ZWdvAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nIyBUaGlzIGZpbGUgaXMgYSBzdHJpY3QgZm9ybWF0IGNvbmZpZ3VyYXRpb24gZmls\r\nZS4KIyBFZGl0IGNhcmVmdWxseSBvciBub3QgYXQgYWxsLgoqU0VDVElPTiBkYi5x\r\ndHVybi5hY2NvdW50aW5nCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJP\r\nVwpyb3dpZDogMQpsZXZlbDogb2ZmCipTRUNUSU9OIGRiLnF0dXJuLmFjdGl2ZQpn\r\nZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5hYmxl\r\nZDogb2ZmCipTRUNUSU9OIGRiLnF0dXJuLmFsbG93X3VuYXV0aGVudGljYXRlZApn\r\nZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKY2xpZW50\r\nX25ldGdyb3VwOiAtCipTRUNUSU9OIGRiLnF0dXJuLmNlcnQKZ2VuZXJhdGlvbjog\r\nMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmNlcnQ6IC0KKlNFQ1RJT04g\r\nZGIucXR1cm4uZGVidWdfbGV2ZWwKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAx\r\nCioqUk9XCnJvd2lkOiAxCmxldmVsOiAwCipTRUNUSU9OIGRiLnF0dXJuLmRlZmF1\r\nbHRfcGFzc3dvcmQKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJv\r\nd2lkOiAxCnBhc3N3b3JkOgoqU0VDVElPTiBkYi5xdHVybi5saXN0ZW4KZ2VuZXJh\r\ndGlvbjogMApsYXN0X3Jvd2lkOiA0CioqUk9XCnJvd2lkOiAxCmVuYWJsZWQ6IG9u\r\nCnBvcnQ6IDM0NzgKdHJhbnNwb3J0OiB1ZHAKY29tbWVudDoKKipST1cKcm93aWQ6\r\nIDIKZW5hYmxlZDogb24KcG9ydDogMzQ3OAp0cmFuc3BvcnQ6IHRjcApjb21tZW50\r\nOgoqKlJPVwpyb3dpZDogMwplbmFibGVkOiBvZmYKcG9ydDogNTM0OQp0cmFuc3Bv\r\ncnQ6IHRscwpjb21tZW50OgoqKlJPVwpyb3dpZDogNAplbmFibGVkOiBvZmYKcG9y\r\ndDogNTM0OQp0cmFuc3BvcnQ6IGR0bHMKY29tbWVudDoKKlNFQ1RJT04gZGIucXR1\r\ncm4ubWVkaWFfcG9ydHMKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9X\r\nCnJvd2lkOiAxCnBvcnRzX2xvd2VyOiA0OTE1Mgpwb3J0c191cHBlcjogNTY5OTkK\r\nKlNFQ1RJT04gZGIucXR1cm4ucmVsYXlfZGV2aWNlCmdlbmVyYXRpb246IDAKbGFz\r\ndF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQppbnRlcmZhY2U6IC0KKlNFQ1RJT04g\r\nZGIucXR1cm4uc2lnbmFsaW5nX2FjbApnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6\r\nIDEKKipST1cKcm93aWQ6IDEKY2xpZW50X25ldGdyb3VwOiAtCipTRUNUSU9OIGRi\r\nLnF0dXJuLnVzZXJzCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMAoqU0VDVElP\r\nTiBFT0YKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nZGIvZGIuZmlyZXdhbGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAADAwMDA2NDQAMDAwMDA2MwAwMDAwMDYzADAwMDAwMDI2NzIzADEzMzYxNDAx\r\nNDQ3ADAxMjU2MAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAGZ1ZWdvAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAZnVlZ28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjIFRoaXMgZmlsZSBpcyBh\r\nIHN0cmljdCBmb3JtYXQgY29uZmlndXJhdGlvbiBmaWxlLgojIEVkaXQgY2FyZWZ1\r\nbGx5IG9yIG5vdCBhdCBhbGwuCipTRUNUSU9OIGRiLmZpcmV3YWxsLmJsaW5kX3Jv\r\ndXRlX3BvbGljeQpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93\r\naWQ6IDEKYWN0aW9uOiBkaXNjYXJkCipTRUNUSU9OIGRiLmZpcmV3YWxsLmJyb2Fk\r\nY2FzdF9sb2djbGFzcwpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cK\r\ncm93aWQ6IDEKbG9nY2xhc3M6IC0KKlNFQ1RJT04gZGIuZmlyZXdhbGwuZGVmYXVs\r\ndF9wb2xpY3kKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lk\r\nOiAxCmFjdGlvbjogZGlzY2FyZAoqU0VDVElPTiBkYi5maXJld2FsbC5kaGNwX2xv\r\nZ2NsYXNzCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDog\r\nMQpsb2djbGFzczogTG9jYWwKKlNFQ1RJT04gZGIuZmlyZXdhbGwudHVubmVsX2xv\r\nZ2NsYXNzCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDog\r\nMQpsb2djbGFzczogLQoqU0VDVElPTiBkYi5maXJld2FsbC5uZF9sb2djbGFzcwpn\r\nZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKbG9nY2xh\r\nc3M6IC0KKlNFQ1RJT04gZGIuZmlyZXdhbGwuY2xvdWRfbG9nY2xhc3MKZ2VuZXJh\r\ndGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmxvZ2NsYXNzOiAt\r\nCipTRUNUSU9OIGRiLmZpcmV3YWxsLmRoY3BfcmVsYXkKZ2VuZXJhdGlvbjogMAps\r\nYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmVuYWJsZWQ6IG9mZgppbnRlcmZh\r\nY2U6IC0KcG9ydDogNjcKc2VydmVyX2RuczoKc2VydmVyX2VycjoKc2VydmVyX2lw\r\nOgoqU0VDVElPTiBkYi5maXJld2FsbC5mb3J3YXJkaW5nX3J1bGVzCmdlbmVyYXRp\r\nb246IDAKbGFzdF9yb3dpZDogMAoqU0VDVElPTiBkYi5maXJld2FsbC5tYXN0ZXJf\r\nbG9nY2xhc3MKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lk\r\nOiAxCmxvZ2NsYXNzOiBMb2NhbApvdmVycmlkZTogbWFya2VkCipTRUNUSU9OIGRi\r\nLmZpcmV3YWxsLm5ldHdvcmtfZ3JvdXBzCmdlbmVyYXRpb246IDAKbGFzdF9yb3dp\r\nZDogMAoqU0VDVElPTiBkYi5maXJld2FsbC5vd25fbG9nY2xhc3MKZ2VuZXJhdGlv\r\nbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmxvZ2NsYXNzOiBMb2Nh\r\nbAoqU0VDVElPTiBkYi5maXJld2FsbC5waW5nX3BvbGljeQpnZW5lcmF0aW9uOiAw\r\nCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKcG9saWN5OiBuZXZlcgoqU0VD\r\nVElPTiBkYi5maXJld2FsbC5wb2xpY3lfbG9nY2xhc3MKZ2VuZXJhdGlvbjogMAps\r\nYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmxvZ2NsYXNzOiBMb2NhbAoqU0VD\r\nVElPTiBkYi5maXJld2FsbC5wcm90b2NvbHMKZ2VuZXJhdGlvbjogMApsYXN0X3Jv\r\nd2lkOiA4CioqUk9XCnJvd2lkOiAxCm5hbWU6IEFICnByb3RvY29sOiA1MQoqKlJP\r\nVwpyb3dpZDogMgpuYW1lOiBFU1AKcHJvdG9jb2w6IDUwCioqUk9XCnJvd2lkOiAz\r\nCm5hbWU6IEdSRQpwcm90b2NvbDogNDcKKipST1cKcm93aWQ6IDQKbmFtZTogSUNN\r\nUApwcm90b2NvbDogMQoqKlJPVwpyb3dpZDogNQpuYW1lOiBJR01QCnByb3RvY29s\r\nOiAyCioqUk9XCnJvd2lkOiA2Cm5hbWU6IElQdjYKcHJvdG9jb2w6IDQxCioqUk9X\r\nCnJvd2lkOiA3Cm5hbWU6IFRDUApwcm90b2NvbDogNgoqKlJPVwpyb3dpZDogOApu\r\nYW1lOiBVRFAKcHJvdG9jb2w6IDE3CioqUk9XCnJvd2lkOiA5Cm5hbWU6IElDTVB2\r\nNgpwcm90b2NvbDogNTgKKlNFQ1RJT04gZGIuZmlyZXdhbGwucmVsYXlzCmdlbmVy\r\nYXRpb246IDAKbGFzdF9yb3dpZDogMAoqU0VDVElPTiBkYi5maXJld2FsbC5zZXJ2\r\naWNlcwpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDcyCioqUk9XCnJvd2lkOiAx\r\nCmNsaWVudF9wb3J0czoKZGF0YV9wb3J0czoKZnd0eXBlOiBzdGF0aWMKaXhtcHR5\r\ncGU6Cm5hbWU6IGFoCnByb3RvY29sOiBBSApzZXJ2ZXJfcG9ydHM6CnN1Ymdyb3Vw\r\nOiAtCioqUk9XCnJvd2lkOiAyCmNsaWVudF9wb3J0czogMTAyNC02NTUzNQpkYXRh\r\nX3BvcnRzOgpmd3R5cGU6IGR5bmFtaWMKaXhtcHR5cGU6Cm5hbWU6IGRheXRpbWUK\r\ncHJvdG9jb2w6IFRDUApzZXJ2ZXJfcG9ydHM6IDEzCnN1Ymdyb3VwOiAtCioqUk9X\r\nCnJvd2lkOiAzCmNsaWVudF9wb3J0czogNjgKZGF0YV9wb3J0czoKZnd0eXBlOiBz\r\ndGF0aWMKaXhtcHR5cGU6Cm5hbWU6IGRoY3AKcHJvdG9jb2w6IFVEUApzZXJ2ZXJf\r\ncG9ydHM6IDY3CnN1Ymdyb3VwOiAtCioqUk9XCnJvd2lkOiA0CmNsaWVudF9wb3J0\r\nczogNTMsMTAyNC02NTUzNQpkYXRhX3BvcnRzOgpmd3R5cGU6IHN0YXRpYwppeG1w\r\ndHlwZToKbmFtZTogZG5zCnByb3RvY29sOiBVRFAKc2VydmVyX3BvcnRzOiA1Mwpz\r\ndWJncm91cDogLQoqKlJPVwpyb3dpZDogNQpjbGllbnRfcG9ydHM6IDUzCmRhdGFf\r\ncG9ydHM6CmZ3dHlwZTogc3RhdGljCml4bXB0eXBlOgpuYW1lOiBkbnMtcmVwbHkK\r\ncHJvdG9jb2w6IFVEUApzZXJ2ZXJfcG9ydHM6IDUzLDEwMjQtNjU1MzUKc3ViZ3Jv\r\ndXA6IC0KKipST1cKcm93aWQ6IDYKY2xpZW50X3BvcnRzOiA1MywxMDI0LTY1NTM1\r\nCmRhdGFfcG9ydHM6CmZ3dHlwZTogZHluYW1pYwppeG1wdHlwZToKbmFtZTogZG5z\r\nLXRjcApwcm90b2NvbDogVENQCnNlcnZlcl9wb3J0czogNTMKc3ViZ3JvdXA6IC0K\r\nKipST1cKcm93aWQ6IDcKY2xpZW50X3BvcnRzOgpkYXRhX3BvcnRzOgpmd3R5cGU6\r\nIHN0YXRpYwppeG1wdHlwZTogMApuYW1lOiBlY2hvLXJlcGx5CnByb3RvY29sOiBJ\r\nQ01QCnNlcnZlcl9wb3J0czoKc3ViZ3JvdXA6IC0KKipST1cKcm93aWQ6IDgKY2xp\r\nZW50X3BvcnRzOgpkYXRhX3BvcnRzOgpmd3R5cGU6IHN0YXRpYwppeG1wdHlwZTog\r\nOApuYW1lOiBlY2hvLXJlcXVlc3QKcHJvdG9jb2w6IElDTVAKc2VydmVyX3BvcnRz\r\nOgpzdWJncm91cDogLQoqKlJPVwpyb3dpZDogOQpjbGllbnRfcG9ydHM6CmRhdGFf\r\ncG9ydHM6CmZ3dHlwZTogc3RhdGljCml4bXB0eXBlOgpuYW1lOiBlc3AKcHJvdG9j\r\nb2w6IEVTUApzZXJ2ZXJfcG9ydHM6CnN1Ymdyb3VwOiAtCioqUk9XCnJvd2lkOiAx\r\nMApjbGllbnRfcG9ydHM6IDEwMjQtNjU1MzUKZGF0YV9wb3J0czoKZnd0eXBlOiBk\r\neW5hbWljCml4bXB0eXBlOgpuYW1lOiBmaW5nZXIKcHJvdG9jb2w6IFRDUApzZXJ2\r\nZXJfcG9ydHM6IDc5CnN1Ymdyb3VwOiAtCioqUk9XCnJvd2lkOiAxMQpjbGllbnRf\r\ncG9ydHM6IDEwMjQtNjU1MzUKZGF0YV9wb3J0czoKZnd0eXBlOiBmdHAKaXhtcHR5\r\ncGU6Cm5hbWU6IGZ0cApwcm90b2NvbDogVENQCnNlcnZlcl9wb3J0czogMjEKc3Vi\r\nZ3JvdXA6IC0KKipST1cKcm93aWQ6IDEyCmNsaWVudF9wb3J0czogMTAyNC02NTUz\r\nNQpkYXRhX3BvcnRzOgpmd3R5cGU6IGR5bmFtaWMKaXhtcHR5cGU6Cm5hbWU6IGhp\r\nZ2gtaGlnaApwcm90b2NvbDogVENQCnNlcnZlcl9wb3J0czogMTAyNC02NTUzNQpz\r\ndWJncm91cDogLQoqKlJPVwpyb3dpZDogMTMKY2xpZW50X3BvcnRzOiAxMDI0LTY1\r\nNTM1CmRhdGFfcG9ydHM6CmZ3dHlwZTogZHluYW1pYwppeG1wdHlwZToKbmFtZTog\r\naHR0cApwcm90b2NvbDogVENQCnNlcnZlcl9wb3J0czogODAKc3ViZ3JvdXA6IC0K\r\nKipST1cKcm93aWQ6IDE0CmNsaWVudF9wb3J0czogMTAyNC02NTUzNQpkYXRhX3Bv\r\ncnRzOgpmd3R5cGU6IGR5bmFtaWMKaXhtcHR5cGU6Cm5hbWU6IGh0dHBzCnByb3Rv\r\nY29sOiBUQ1AKc2VydmVyX3BvcnRzOiA0NDMKc3ViZ3JvdXA6IC0KKipST1cKcm93\r\naWQ6IDE1CmNsaWVudF9wb3J0czoKZGF0YV9wb3J0czoKZnd0eXBlOiBzdGF0aWMK\r\naXhtcHR5cGU6IDAtMTIwCm5hbWU6IGljbXAKcHJvdG9jb2w6IElDTVAKc2VydmVy\r\nX3BvcnRzOgpzdWJncm91cDogLQoqKlJPVwpyb3dpZDogMTYKY2xpZW50X3BvcnRz\r\nOiAxMDI0LTY1NTM1CmRhdGFfcG9ydHM6CmZ3dHlwZTogZHluYW1pYwppeG1wdHlw\r\nZToKbmFtZTogaWRlbnQKcHJvdG9jb2w6IFRDUApzZXJ2ZXJfcG9ydHM6IDExMwpz\r\ndWJncm91cDogLQoqKlJPVwpyb3dpZDogMTcKY2xpZW50X3BvcnRzOiAxMDI0LTY1\r\nNTM1CmRhdGFfcG9ydHM6CmZ3dHlwZTogZHluYW1pYwppeG1wdHlwZToKbmFtZTog\r\naW1hcApwcm90b2NvbDogVENQCnNlcnZlcl9wb3J0czogMTQzCnN1Ymdyb3VwOiAt\r\nCioqUk9XCnJvd2lkOiAxOApjbGllbnRfcG9ydHM6IDEwMjQtNjU1MzUKZGF0YV9w\r\nb3J0czoKZnd0eXBlOiBkeW5hbWljCml4bXB0eXBlOgpuYW1lOiBpbWFwcwpwcm90\r\nb2NvbDogVENQCnNlcnZlcl9wb3J0czogOTkzCnN1Ymdyb3VwOiAtCioqUk9XCnJv\r\nd2lkOiAxOQpjbGllbnRfcG9ydHM6CmRhdGFfcG9ydHM6CmZ3dHlwZTogc3RhdGlj\r\nCml4bXB0eXBlOgpuYW1lOiBpcHY2dG80CnByb3RvY29sOiBJUHY2CnNlcnZlcl9w\r\nb3J0czoKc3ViZ3JvdXA6IC0KKipST1cKcm93aWQ6IDIwCmNsaWVudF9wb3J0czog\r\nMTAyNC02NTUzNQpkYXRhX3BvcnRzOgpmd3R5cGU6IGR5bmFtaWMKaXhtcHR5cGU6\r\nCm5hbWU6IG5mcy10Y3AKcHJvdG9jb2w6IFRDUApzZXJ2ZXJfcG9ydHM6IDIwNDkK\r\nc3ViZ3JvdXA6IC0KKipST1cKcm93aWQ6IDIxCmNsaWVudF9wb3J0czogMTAyNC02\r\nNTUzNQpkYXRhX3BvcnRzOgpmd3R5cGU6IHN0YXRpYwppeG1wdHlwZToKbmFtZTog\r\nbmZzLXVkcApwcm90b2NvbDogVURQCnNlcnZlcl9wb3J0czogMjA0OQpzdWJncm91\r\ncDogLQoqKlJPVwpyb3dpZDogMjIKY2xpZW50X3BvcnRzOiAxMDI0LTY1NTM1CmRh\r\ndGFfcG9ydHM6CmZ3dHlwZTogZHluYW1pYwppeG1wdHlwZToKbmFtZTogbm50cApw\r\ncm90b2NvbDogVENQCnNlcnZlcl9wb3J0czogMTE5CnN1Ymdyb3VwOiAtCioqUk9X\r\nCnJvd2lkOiAyMwpjbGllbnRfcG9ydHM6IDEyMwpkYXRhX3BvcnRzOgpmd3R5cGU6\r\nIHN0YXRpYwppeG1wdHlwZToKbmFtZTogbnRwCnByb3RvY29sOiBVRFAKc2VydmVy\r\nX3BvcnRzOiAxMjMKc3ViZ3JvdXA6IC0KKipST1cKcm93aWQ6IDI0CmNsaWVudF9w\r\nb3J0czogMTAyNC02NTUzNQpkYXRhX3BvcnRzOgpmd3R5cGU6IGR5bmFtaWMKaXht\r\ncHR5cGU6Cm5hbWU6IHBvcDMKcHJvdG9jb2w6IFRDUApzZXJ2ZXJfcG9ydHM6IDEx\r\nMApzdWJncm91cDogLQoqKlJPVwpyb3dpZDogMjUKY2xpZW50X3BvcnRzOiAxMDI0\r\nLTY1NTM1CmRhdGFfcG9ydHM6CmZ3dHlwZTogZHluYW1pYwppeG1wdHlwZToKbmFt\r\nZTogcG9wM3MKcHJvdG9jb2w6IFRDUApzZXJ2ZXJfcG9ydHM6IDk5NQpzdWJncm91\r\ncDogLQoqKlJPVwpyb3dpZDogMjYKY2xpZW50X3BvcnRzOiAxMDI0LTY1NTM1CmRh\r\ndGFfcG9ydHM6CmZ3dHlwZTogZHluYW1pYwppeG1wdHlwZToKbmFtZTogc210cApw\r\ncm90b2NvbDogVENQCnNlcnZlcl9wb3J0czogMjUKc3ViZ3JvdXA6IC0KKipST1cK\r\ncm93aWQ6IDI3CmNsaWVudF9wb3J0czogMTAyNC02NTUzNQpkYXRhX3BvcnRzOgpm\r\nd3R5cGU6IGR5bmFtaWMKaXhtcHR5cGU6Cm5hbWU6IHNzaApwcm90b2NvbDogVENQ\r\nCnNlcnZlcl9wb3J0czogMjIKc3ViZ3JvdXA6IC0KKipST1cKcm93aWQ6IDI4CmNs\r\naWVudF9wb3J0czogMC02NTUzNQpkYXRhX3BvcnRzOgpmd3R5cGU6IGR5bmFtaWMK\r\naXhtcHR5cGU6Cm5hbWU6IHRjcApwcm90b2NvbDogVENQCnNlcnZlcl9wb3J0czog\r\nMC02NTUzNQpzdWJncm91cDogLQoqKlJPVwpyb3dpZDogMjkKY2xpZW50X3BvcnRz\r\nOiAxMDI0LTY1NTM1CmRhdGFfcG9ydHM6CmZ3dHlwZTogZHluYW1pYwppeG1wdHlw\r\nZToKbmFtZTogdGVsbmV0CnByb3RvY29sOiBUQ1AKc2VydmVyX3BvcnRzOiAyMwpz\r\ndWJncm91cDogLQoqKlJPVwpyb3dpZDogMzAKY2xpZW50X3BvcnRzOgpkYXRhX3Bv\r\ncnRzOgpmd3R5cGU6IHN0YXRpYwppeG1wdHlwZTogMTEKbmFtZTogdGltZS1leGNl\r\nZWRlZApwcm90b2NvbDogSUNNUApzZXJ2ZXJfcG9ydHM6CnN1Ymdyb3VwOiAtCioq\r\nUk9XCnJvd2lkOiAzMQpjbGllbnRfcG9ydHM6IDEwMjQtNjU1MzUKZGF0YV9wb3J0\r\nczoKZnd0eXBlOiBzdGF0aWMKaXhtcHR5cGU6Cm5hbWU6IHRyYWNlcm91dGUKcHJv\r\ndG9jb2w6IFVEUApzZXJ2ZXJfcG9ydHM6IDMzNDM0LTMzNjkwCnN1Ymdyb3VwOiAt\r\nCioqUk9XCnJvd2lkOiAzMgpjbGllbnRfcG9ydHM6CmRhdGFfcG9ydHM6CmZ3dHlw\r\nZTogc3RhdGljCml4bXB0eXBlOiAzLDExCm5hbWU6IHRyYWNlcm91dGUtcmVwbHkK\r\ncHJvdG9jb2w6IElDTVAKc2VydmVyX3BvcnRzOgpzdWJncm91cDogLQoqKlJPVwpy\r\nb3dpZDogMzMKY2xpZW50X3BvcnRzOiAwLTY1NTM1CmRhdGFfcG9ydHM6CmZ3dHlw\r\nZTogZHluYW1pYwppeG1wdHlwZToKbmFtZTogdWRwCnByb3RvY29sOiBVRFAKc2Vy\r\ndmVyX3BvcnRzOiAwLTY1NTM1CnN1Ymdyb3VwOiAtCioqUk9XCnJvd2lkOiAzNApj\r\nbGllbnRfcG9ydHM6CmRhdGFfcG9ydHM6CmZ3dHlwZTogLQppeG1wdHlwZToKbmFt\r\nZTogd3d3CnByb3RvY29sOiAtCnNlcnZlcl9wb3J0czoKc3ViZ3JvdXA6IGh0dHAK\r\nKipST1cKcm93aWQ6IDM1CmNsaWVudF9wb3J0czoKZGF0YV9wb3J0czoKZnd0eXBl\r\nOiAtCml4bXB0eXBlOgpuYW1lOiB3d3cKcHJvdG9jb2w6IC0Kc2VydmVyX3BvcnRz\r\nOgpzdWJncm91cDogaHR0cHMKKipST1cKcm93aWQ6IDM2CmNsaWVudF9wb3J0czog\r\nMTAyNC02NTUzNQpkYXRhX3BvcnRzOgpmd3R5cGU6IGR5bmFtaWMKaXhtcHR5cGU6\r\nCm5hbWU6IHgxMS1kaXNwbGF5MApwcm90b2NvbDogVENQCnNlcnZlcl9wb3J0czog\r\nNjAwMApzdWJncm91cDogLQoqKlJPVwpyb3dpZDogMzcKY2xpZW50X3BvcnRzOgpk\r\nYXRhX3BvcnRzOgpmd3R5cGU6IC0KaXhtcHR5cGU6Cm5hbWU6IGljbXAvdWRwL3Rj\r\ncApwcm90b2NvbDogLQpzZXJ2ZXJfcG9ydHM6CnN1Ymdyb3VwOiBpY21wCioqUk9X\r\nCnJvd2lkOiAzOApjbGllbnRfcG9ydHM6CmRhdGFfcG9ydHM6CmZ3dHlwZTogLQpp\r\neG1wdHlwZToKbmFtZTogaWNtcC91ZHAvdGNwCnByb3RvY29sOiAtCnNlcnZlcl9w\r\nb3J0czoKc3ViZ3JvdXA6IHVkcAoqKlJPVwpyb3dpZDogMzkKY2xpZW50X3BvcnRz\r\nOgpkYXRhX3BvcnRzOgpmd3R5cGU6IC0KaXhtcHR5cGU6Cm5hbWU6IGljbXAvdWRw\r\nL3RjcApwcm90b2NvbDogLQpzZXJ2ZXJfcG9ydHM6CnN1Ymdyb3VwOiB0Y3AKKipS\r\nT1cKcm93aWQ6IDQwCmNsaWVudF9wb3J0czogMTAyNC02NTUzNQpkYXRhX3BvcnRz\r\nOgpmd3R5cGU6IGR5bmFtaWMKaXhtcHR5cGU6Cm5hbWU6IGtlcmJlcm9zLXVkcApw\r\ncm90b2NvbDogVURQCnNlcnZlcl9wb3J0czogODgKc3ViZ3JvdXA6IC0KKipST1cK\r\ncm93aWQ6IDQxCmNsaWVudF9wb3J0czogMTAyNC02NTUzNQpkYXRhX3BvcnRzOgpm\r\nd3R5cGU6IGR5bmFtaWMKaXhtcHR5cGU6Cm5hbWU6IGtlcmJlcm9zLXRjcApwcm90\r\nb2NvbDogVENQCnNlcnZlcl9wb3J0czogODgKc3ViZ3JvdXA6IC0KKipST1cKcm93\r\naWQ6IDQyCmNsaWVudF9wb3J0czoKZGF0YV9wb3J0czoKZnd0eXBlOiAtCml4bXB0\r\neXBlOgpuYW1lOiBrZXJiZXJvcwpwcm90b2NvbDogLQpzZXJ2ZXJfcG9ydHM6CnN1\r\nYmdyb3VwOiBrZXJiZXJvcy11ZHAKKipST1cKcm93aWQ6IDQzCmNsaWVudF9wb3J0\r\nczoKZGF0YV9wb3J0czoKZnd0eXBlOiAtCml4bXB0eXBlOgpuYW1lOiBrZXJiZXJv\r\ncwpwcm90b2NvbDogLQpzZXJ2ZXJfcG9ydHM6CnN1Ymdyb3VwOiBrZXJiZXJvcy10\r\nY3AKKipST1cKcm93aWQ6IDQ0CmNsaWVudF9wb3J0czogMTAyNC02NTUzNQpkYXRh\r\nX3BvcnRzOgpmd3R5cGU6IGR5bmFtaWMKaXhtcHR5cGU6Cm5hbWU6IGxkYXAtdWRw\r\nCnByb3RvY29sOiBVRFAKc2VydmVyX3BvcnRzOiAzODkKc3ViZ3JvdXA6IC0KKipS\r\nT1cKcm93aWQ6IDQ1CmNsaWVudF9wb3J0czogMTAyNC02NTUzNQpkYXRhX3BvcnRz\r\nOgpmd3R5cGU6IGR5bmFtaWMKaXhtcHR5cGU6Cm5hbWU6IGxkYXAtdGNwCnByb3Rv\r\nY29sOiBUQ1AKc2VydmVyX3BvcnRzOiAzODkKc3ViZ3JvdXA6IC0KKipST1cKcm93\r\naWQ6IDQ2CmNsaWVudF9wb3J0czoKZGF0YV9wb3J0czoKZnd0eXBlOiAtCml4bXB0\r\neXBlOgpuYW1lOiBsZGFwCnByb3RvY29sOiAtCnNlcnZlcl9wb3J0czoKc3ViZ3Jv\r\ndXA6IGxkYXAtdWRwCioqUk9XCnJvd2lkOiA0NwpjbGllbnRfcG9ydHM6CmRhdGFf\r\ncG9ydHM6CmZ3dHlwZTogLQppeG1wdHlwZToKbmFtZTogbGRhcApwcm90b2NvbDog\r\nLQpzZXJ2ZXJfcG9ydHM6CnN1Ymdyb3VwOiBsZGFwLXRjcAoqKlJPVwpyb3dpZDog\r\nNDgKY2xpZW50X3BvcnRzOiAxMDI0LTY1NTM1CmRhdGFfcG9ydHM6CmZ3dHlwZTog\r\nZHluYW1pYwppeG1wdHlwZToKbmFtZTogbXMtcnBjCnByb3RvY29sOiBUQ1AKc2Vy\r\ndmVyX3BvcnRzOiAxMzUKc3ViZ3JvdXA6IC0KKipST1cKcm93aWQ6IDQ5CmNsaWVu\r\ndF9wb3J0czogMTAyNC02NTUzNQpkYXRhX3BvcnRzOgpmd3R5cGU6IHBwdHAKaXht\r\ncHR5cGU6Cm5hbWU6IHBwdHAKcHJvdG9jb2w6IFRDUApzZXJ2ZXJfcG9ydHM6IDE3\r\nMjMKc3ViZ3JvdXA6IC0KKipST1cKcm93aWQ6IDUwCmNsaWVudF9wb3J0czogMTAy\r\nNC02NTUzNQpkYXRhX3BvcnRzOgpmd3R5cGU6IGR5bmFtaWMKaXhtcHR5cGU6Cm5h\r\nbWU6IHJkcApwcm90b2NvbDogVENQCnNlcnZlcl9wb3J0czogMzM4OQpzdWJncm91\r\ncDogLQoqKlJPVwpyb3dpZDogNTEKY2xpZW50X3BvcnRzOiAxMDI0LTY1NTM1CmRh\r\ndGFfcG9ydHM6CmZ3dHlwZTogZHluYW1pYwppeG1wdHlwZToKbmFtZTogc21iCnBy\r\nb3RvY29sOiBUQ1AKc2VydmVyX3BvcnRzOiA0NDUKc3ViZ3JvdXA6IC0KKipST1cK\r\ncm93aWQ6IDUyCmNsaWVudF9wb3J0czoKZGF0YV9wb3J0czoKZnd0eXBlOiAtCml4\r\nbXB0eXBlOgpuYW1lOiB3d3cvZG5zCnByb3RvY29sOiAtCnNlcnZlcl9wb3J0czoK\r\nc3ViZ3JvdXA6IHd3dwoqKlJPVwpyb3dpZDogNTMKY2xpZW50X3BvcnRzOgpkYXRh\r\nX3BvcnRzOgpmd3R5cGU6IC0KaXhtcHR5cGU6Cm5hbWU6IHd3dy9kbnMKcHJvdG9j\r\nb2w6IC0Kc2VydmVyX3BvcnRzOgpzdWJncm91cDogZG5zCioqUk9XCnJvd2lkOiA1\r\nNApjbGllbnRfcG9ydHM6CmRhdGFfcG9ydHM6CmZ3dHlwZTogLQppeG1wdHlwZToK\r\nbmFtZTogd3d3L2Rucwpwcm90b2NvbDogLQpzZXJ2ZXJfcG9ydHM6CnN1Ymdyb3Vw\r\nOiBkbnMtdGNwCioqUk9XCnJvd2lkOiA1NQpjbGllbnRfcG9ydHM6IDEwMjQtNjU1\r\nMzUKZGF0YV9wb3J0czoKZnd0eXBlOiBydHNwCml4bXB0eXBlOgpuYW1lOiBydHNw\r\nCnByb3RvY29sOiBUQ1AKc2VydmVyX3BvcnRzOiA1NTQKc3ViZ3JvdXA6IC0KKipS\r\nT1cKcm93aWQ6IDU2CmNsaWVudF9wb3J0czogMTAyNC02NTUzNQpkYXRhX3BvcnRz\r\nOgpmd3R5cGU6IHRmdHAKaXhtcHR5cGU6Cm5hbWU6IHRmdHAKcHJvdG9jb2w6IFVE\r\nUApzZXJ2ZXJfcG9ydHM6IDY5CnN1Ymdyb3VwOiAtCioqUk9XCnJvd2lkOiA1Nwpj\r\nbGllbnRfcG9ydHM6CmRhdGFfcG9ydHM6CmZ3dHlwZTogc3RhdGljCml4bXB0eXBl\r\nOiAwLTE5OQpuYW1lOiBpY21wdjYKcHJvdG9jb2w6IElDTVB2NgpzZXJ2ZXJfcG9y\r\ndHM6CnN1Ymdyb3VwOiAtCioqUk9XCnJvd2lkOiA1OApjbGllbnRfcG9ydHM6CmRh\r\ndGFfcG9ydHM6CmZ3dHlwZTogLQppeG1wdHlwZToKbmFtZTogaWNtcC91ZHAvdGNw\r\nCnByb3RvY29sOiAtCnNlcnZlcl9wb3J0czoKc3ViZ3JvdXA6IGljbXB2NgoqKlJP\r\nVwpyb3dpZDogNTkKY2xpZW50X3BvcnRzOgpkYXRhX3BvcnRzOgpmd3R5cGU6IHN0\r\nYXRpYwppeG1wdHlwZTogMTI5Cm5hbWU6IGVjaG8tcmVwbHkKcHJvdG9jb2w6IElD\r\nTVB2NgpzZXJ2ZXJfcG9ydHM6CnN1Ymdyb3VwOiAtCioqUk9XCnJvd2lkOiA2MApj\r\nbGllbnRfcG9ydHM6CmRhdGFfcG9ydHM6CmZ3dHlwZTogc3RhdGljCml4bXB0eXBl\r\nOiAxMjgKbmFtZTogZWNoby1yZXF1ZXN0CnByb3RvY29sOiBJQ01QdjYKc2VydmVy\r\nX3BvcnRzOgpzdWJncm91cDogLQoqKlJPVwpyb3dpZDogNjEKY2xpZW50X3BvcnRz\r\nOgpkYXRhX3BvcnRzOgpmd3R5cGU6IHN0YXRpYwppeG1wdHlwZTogMQpuYW1lOiBk\r\nZXN0aW5hdGlvbi11bnJlYWNoYWJsZTYKcHJvdG9jb2w6IElDTVB2NgpzZXJ2ZXJf\r\ncG9ydHM6CnN1Ymdyb3VwOiAtCioqUk9XCnJvd2lkOiA2MgpjbGllbnRfcG9ydHM6\r\nCmRhdGFfcG9ydHM6CmZ3dHlwZTogc3RhdGljCml4bXB0eXBlOiAyCm5hbWU6IHBh\r\nY2tldC10b28tYmlnNgpwcm90b2NvbDogSUNNUHY2CnNlcnZlcl9wb3J0czoKc3Vi\r\nZ3JvdXA6IC0KKipST1cKcm93aWQ6IDYzCmNsaWVudF9wb3J0czoKZGF0YV9wb3J0\r\nczoKZnd0eXBlOiBzdGF0aWMKaXhtcHR5cGU6IDMKbmFtZTogdGltZS1leGNlZWRl\r\nZDYKcHJvdG9jb2w6IElDTVB2NgpzZXJ2ZXJfcG9ydHM6CnN1Ymdyb3VwOiAtCioq\r\nUk9XCnJvd2lkOiA2NApjbGllbnRfcG9ydHM6CmRhdGFfcG9ydHM6CmZ3dHlwZTog\r\nc3RhdGljCml4bXB0eXBlOiA0Cm5hbWU6IHBhcmFtZXRlci1wcm9ibGVtNgpwcm90\r\nb2NvbDogSUNNUHY2CnNlcnZlcl9wb3J0czoKc3ViZ3JvdXA6IC0KKipST1cKcm93\r\naWQ6IDY1CmNsaWVudF9wb3J0czoKZGF0YV9wb3J0czoKZnd0eXBlOiAtCml4bXB0\r\neXBlOgpuYW1lOiBpY21wdjZfcmZjXzQ4OTAKcHJvdG9jb2w6IC0Kc2VydmVyX3Bv\r\ncnRzOgpzdWJncm91cDogZGVzdGluYXRpb24tdW5yZWFjaGFibGU2CioqUk9XCnJv\r\nd2lkOiA2NgpjbGllbnRfcG9ydHM6CmRhdGFfcG9ydHM6CmZ3dHlwZTogLQppeG1w\r\ndHlwZToKbmFtZTogaWNtcHY2X3JmY180ODkwCnByb3RvY29sOiAtCnNlcnZlcl9w\r\nb3J0czoKc3ViZ3JvdXA6IHBhY2tldC10b28tYmlnNgoqKlJPVwpyb3dpZDogNjcK\r\nY2xpZW50X3BvcnRzOgpkYXRhX3BvcnRzOgpmd3R5cGU6IC0KaXhtcHR5cGU6Cm5h\r\nbWU6IGljbXB2Nl9yZmNfNDg5MApwcm90b2NvbDogLQpzZXJ2ZXJfcG9ydHM6CnN1\r\nYmdyb3VwOiBwYXJhbWV0ZXItcHJvYmxlbTYKKipST1cKcm93aWQ6IDY4CmNsaWVu\r\ndF9wb3J0czoKZGF0YV9wb3J0czoKZnd0eXBlOiAtCml4bXB0eXBlOgpuYW1lOiBp\r\nY21wdjZfcmZjXzQ4OTAKcHJvdG9jb2w6IC0Kc2VydmVyX3BvcnRzOgpzdWJncm91\r\ncDogdGltZS1leGNlZWRlZDYKKipST1cKcm93aWQ6IDY5CmNsaWVudF9wb3J0czoK\r\nZGF0YV9wb3J0czoKZnd0eXBlOiBzdGF0aWMKaXhtcHR5cGU6IDEyOApuYW1lOiBl\r\nY2hvLXJlcXVlc3Q2CnByb3RvY29sOiBJQ01QdjYKc2VydmVyX3BvcnRzOgpzdWJn\r\ncm91cDogLQoqKlJPVwpyb3dpZDogNzAKY2xpZW50X3BvcnRzOgpkYXRhX3BvcnRz\r\nOgpmd3R5cGU6IHN0YXRpYwppeG1wdHlwZTogMTI5Cm5hbWU6IGVjaG8tcmVzcG9u\r\nc2U2CnByb3RvY29sOiBJQ01QdjYKc2VydmVyX3BvcnRzOgpzdWJncm91cDogLQoq\r\nKlJPVwpyb3dpZDogNzEKY2xpZW50X3BvcnRzOgpkYXRhX3BvcnRzOgpmd3R5cGU6\r\nIC0KaXhtcHR5cGU6Cm5hbWU6IGljbXB2Nl9yZmNfNDg5MApwcm90b2NvbDogLQpz\r\nZXJ2ZXJfcG9ydHM6CnN1Ymdyb3VwOiBlY2hvLXJlcXVlc3Q2CioqUk9XCnJvd2lk\r\nOiA3MgpjbGllbnRfcG9ydHM6CmRhdGFfcG9ydHM6CmZ3dHlwZTogLQppeG1wdHlw\r\nZToKbmFtZTogaWNtcHY2X3JmY180ODkwCnByb3RvY29sOiAtCnNlcnZlcl9wb3J0\r\nczoKc3ViZ3JvdXA6IGVjaG8tcmVzcG9uc2U2CipTRUNUSU9OIGRiLmZpcmV3YWxs\r\nLnNwb29maW5nX2xvZ2NsYXNzCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoq\r\nKlJPVwpyb3dpZDogMQpsb2djbGFzczogTG9jYWwKKlNFQ1RJT04gZGIuZmlyZXdh\r\nbGwudGltZWNsYXNzZXMKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9X\r\nCnJvd2lkOiAxCmZyb21fZGF5OiBtb25kYXkKZnJvbV90aW1lOiAwMDowMApuYW1l\r\nOiAyNC83CnRvX2RheTogc3VuZGF5CnRvX3RpbWU6IDI0OjAwCipTRUNUSU9OIGRi\r\nLmZpcmV3YWxsLmFsbG93X2ljbXB2Nl9yZmM0ODkwCmdlbmVyYXRpb246IDAKbGFz\r\ndF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQplbmFibGVkOiBvbgoqU0VDVElPTiBF\r\nT0YKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nZGIvZGIudm9pcHNtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAADAwMDA2NDQAMDAwMDA2MwAwMDAwMDYzADAwMDAwMDAwNTcyADEzMzYxNDAx\r\nNDQ3ADAxMjI2MgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAGZ1ZWdvAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAZnVlZ28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjIFRoaXMgZmlsZSBpcyBh\r\nIHN0cmljdCBmb3JtYXQgY29uZmlndXJhdGlvbiBmaWxlLgojIEVkaXQgY2FyZWZ1\r\nbGx5IG9yIG5vdCBhdCBhbGwuCipTRUNUSU9OIGRiLnZvaXBzbS52b2lwc20KZ2Vu\r\nZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmFyZWFjb2Rl\r\nOiAKY2FjaGV0dGw6IDE0CmVuYWJsZWQ6IG9mZgptYXhucmxlbjogCnJlZ2lzdHJh\r\ndGlvbl90aW1lOiA2MAp0aW1lb3V0OiAxODAKKlNFQ1RJT04gZGIudm9pcHNtLnZv\r\naXBzbV9kb21haW5zCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMAoqU0VDVElP\r\nTiBkYi52b2lwc20udm9pcHNtX3BzdG5fZ2F0ZXdheXMKZ2VuZXJhdGlvbjogMAps\r\nYXN0X3Jvd2lkOiAwCipTRUNUSU9OIEVPRgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAGRiL2RiLmZhaWxvdmVyAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDAwNjMAMDAwMDA2MwAwMDAw\r\nMDAwMDMzMgAxMzM2MTQwMTQ0NwAwMTI1NDYAIDAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABmdWVnbwAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZ1ZWdvAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nIyBUaGlzIGZpbGUgaXMgYSBzdHJpY3QgZm9ybWF0IGNvbmZpZ3VyYXRpb24gZmls\r\nZS4KIyBFZGl0IGNhcmVmdWxseSBvciBub3QgYXQgYWxsLgoqU0VDVElPTiBkYi5m\r\nYWlsb3Zlci5pZmFjZV9yZWZfaG9zdHMKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lk\r\nOiAwCipTRUNUSU9OIGRiLmZhaWxvdmVyLnNlcnZlcnMKZ2VuZXJhdGlvbjogMAps\r\nYXN0X3Jvd2lkOiAwCipTRUNUSU9OIEVPRgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkYi9kYi5lbXMAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAw\r\nMDYzADAwMDAwNjMAMDAwMDAwMDI0NjIAMTMzNjE0MDE0NDcAMDExNTMxACAwAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAHVzdGFyICAAZnVlZ28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmdWVnbwAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAACMgVGhpcyBmaWxlIGlzIGEgc3RyaWN0IGZvcm1hdCBj\r\nb25maWd1cmF0aW9uIGZpbGUuCiMgRWRpdCBjYXJlZnVsbHkgb3Igbm90IGF0IGFs\r\nbC4KKlNFQ1RJT04gZGIuZW1zLmVtc19hY3RpdmUKZ2VuZXJhdGlvbjogMApsYXN0\r\nX3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmVuYWJsZWQ6IG9mZgoqU0VDVElPTiBk\r\nYi5lbXMuY3dtcF9hY3MKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9X\r\nCnJvd2lkOiAxCmFjc191c2VybmFtZToKYWNzX3Bhc3N3b3JkOgpwYXRoOgpwb3J0\r\nOiA3NTQ3CnVyaXNjaGVtZTogLQpzZXJ2ZXJfZG5zOgpzZXJ2ZXJfZXJyOgpzZXJ2\r\nZXJfaXA6CnNzbHZlcjogLQpjYWNlcnQ6IC0KKlNFQ1RJT04gZGIuZW1zLmN3bXBf\r\nYWNzX21pc2MKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lk\r\nOiAxCnBfZW5hYmxlOiBvZmYKcF9pbnRlcnZhbDogMzYwMApwX3RpbWU6CipTRUNU\r\nSU9OIGRiLmVtcy5jd21wX2Fjc19oaWRkZW4KZ2VuZXJhdGlvbjogMApsYXN0X3Jv\r\nd2lkOiAxCioqUk9XCnJvd2lkOiAxCnBhcmFtZXRlcmtleToKKlNFQ1RJT04gZGIu\r\nZW1zLmN3bXBfY3BlCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpy\r\nb3dpZDogMQpsb2NhbF9pcDogLQpsb2NhbF9wb3J0OiA3NTQ3CmNyX3VzZXJuYW1l\r\nOgpjcl9wYXNzd29yZDoKcHJpdmNlcnQ6IC0KKlNFQ1RJT04gZGIuZW1zLmN3bXBf\r\nY3BlX21pc2MKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lk\r\nOiAxCmJrbF9tYXg6IDEwCmJrbF9pbnRlcnZhbDogMzAKYmtsX2R1cmF0aW9uOiAz\r\nMDAKKlNFQ1RJT04gZGIuZW1zLmN3bXBfY3BlX2d1aV9hY2Nlc3NfYWN0aXZlCmdl\r\nbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQplbmFibGVk\r\nOiBvZmYKKlNFQ1RJT04gZGIuZW1zLmN3bXBfY3BlX2d1aV9hY2Nlc3MKZ2VuZXJh\r\ndGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCnVyaXNjaGVtZTog\r\nLQpsb2NhbF9pcDogLQpsb2NhbF9wb3J0OiA4MAphY2Nlc3NfdHlwZTogcm8KKlNF\r\nQ1RJT04gZGIuZW1zLmN3bXBfZGVidWdfbG9nY2xhc3MKZ2VuZXJhdGlvbjogMAps\r\nYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmxvZ2NsYXNzOiAtCipTRUNUSU9O\r\nIGRiLmVtcy5jd21wX2Vycm9yX2xvZ2NsYXNzCmdlbmVyYXRpb246IDAKbGFzdF9y\r\nb3dpZDogMQoqKlJPVwpyb3dpZDogMQpsb2djbGFzczogTG9jYWwKKlNFQ1RJT04g\r\nZGIuZW1zLmN3bXBfaW5mb19sb2djbGFzcwpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93\r\naWQ6IDEKKipST1cKcm93aWQ6IDEKbG9nY2xhc3M6IExvY2FsCipTRUNUSU9OIEVP\r\nRgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAGRiL2RiLm5ldHdvcmsAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDAwNjMAMDAwMDA2MwAwMDAw\r\nMDAwNDE1MwAxMzM2MTQwMjU0MgAwMTI0MzIAIDAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABmdWVnbwAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZ1ZWdvAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nIyBUaGlzIGZpbGUgaXMgYSBzdHJpY3QgZm9ybWF0IGNvbmZpZ3VyYXRpb24gZmls\r\nZS4KIyBFZGl0IGNhcmVmdWxseSBvciBub3QgYXQgYWxsLgoqU0VDVElPTiBkYi5u\r\nZXR3b3JrLmFsaWFzX2FkZHJlc3NlcwpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6\r\nIDAKKlNFQ1RJT04gZGIubmV0d29yay5kaXNjYXJkX3dlaXJkX2ZyYWdtZW50cwpn\r\nZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5hYmxl\r\nZDogb24KKlNFQ1RJT04gZGIubmV0d29yay5leHRyYV9kZWZhdWx0X2dhdGV3YXlz\r\nCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMAoqU0VDVElPTiBkYi5uZXR3b3Jr\r\nLmludGVyZmFjZXMKZ2VuZXJhdGlvbjogMgpsYXN0X3Jvd2lkOiA2CioqUk9XCnJv\r\nd2lkOiAxCmF1dG9uZWc6IGF1dG8KZW5hYmxlZDogb24KaW50ZXJmYWNlOiBldGgw\r\nCm5hbWU6IEV0aGVybmV0MAoqKlJPVwpyb3dpZDogMgphdXRvbmVnOiBhdXRvCmVu\r\nYWJsZWQ6IG9mZgppbnRlcmZhY2U6IGV0aDEKbmFtZTogRXRoZXJuZXQxCioqUk9X\r\nCnJvd2lkOiAzCmF1dG9uZWc6IGF1dG8KZW5hYmxlZDogb2ZmCmludGVyZmFjZTog\r\nZXRoMgpuYW1lOiBFdGhlcm5ldDIKKipST1cKcm93aWQ6IDQKYXV0b25lZzogYXV0\r\nbwplbmFibGVkOiBvZmYKaW50ZXJmYWNlOiBldGgzCm5hbWU6IEV0aGVybmV0Mwoq\r\nKlJPVwpyb3dpZDogNQphdXRvbmVnOiBhdXRvCmVuYWJsZWQ6IG9mZgppbnRlcmZh\r\nY2U6IGV0aDQKbmFtZTogRXRoZXJuZXQ0CioqUk9XCnJvd2lkOiA2CmF1dG9uZWc6\r\nIGF1dG8KZW5hYmxlZDogb2ZmCmludGVyZmFjZTogZXRoNQpuYW1lOiBFdGhlcm5l\r\ndDUKKlNFQ1RJT04gZGIubmV0d29yay5sb2NhbF9uZXRzCmdlbmVyYXRpb246IDIK\r\nbGFzdF9yb3dpZDogMgoqKlJPVwpyb3dpZDogMgphZGRyZXNzX2RuczogMTAuNDgu\r\nMjguNzgKYWRkcmVzc19lcnI6IAphZGRyZXNzX2lwOiAxMC40OC4yOC43OAphZGRy\r\nZXNzX21hc2s6IDI1NS4yNTUuMC4wCmFkZHJlc3NfdHlwZTogc3RhdGljCmludGVy\r\nZmFjZTogZXRoMApuYW1lOiBldGgwCnZsYW5pZDogCipTRUNUSU9OIGRiLm5ldHdv\r\ncmsubWFzcXVlcmFkaW5nCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMAoqU0VD\r\nVElPTiBkYi5uZXR3b3JrLnBvcnRfYWxsb2NhdGlvbnMKZ2VuZXJhdGlvbjogMAps\r\nYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmF1dG9fbG93ZXI6IDEwMjQKYXV0\r\nb191cHBlcjogMzI3NjcKZnRwX2xvd2VyOiA1NzAwMApmdHBfdXBwZXI6IDU4MDIz\r\nCm5hdF9sb3dlcjogNjEwMDAKbmF0X3VwcGVyOiA2NTA5Ngpsb2NhbF9sb3dlcjog\r\nNjUwOTcKbG9jYWxfdXBwZXI6IDY1MjAwCipTRUNUSU9OIGRiLm5ldHdvcmsucHBw\r\nb2UKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmxj\r\ncF9lY2hvX2ludGVydmFsOiAxMApsb2djbGFzczogTG9jYWwKcGFzc3dvcmQ6CnNl\r\ncnZpY2U6CnVzZXI6CipTRUNUSU9OIGRiLm5ldHdvcmsucHJveHlfYXJwCmdlbmVy\r\nYXRpb246IDAKbGFzdF9yb3dpZDogMAoqU0VDVElPTiBkYi5uZXR3b3JrLnJvdXRl\r\nX3Rlc3Rfc2VydmVycwpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDAKKlNFQ1RJ\r\nT04gZGIubmV0d29yay5yb3V0ZXMKZ2VuZXJhdGlvbjogMQpsYXN0X3Jvd2lkOiAx\r\nCioqUk9XCnJvd2lkOiAxCmRlc3RpbmF0aW9uX2RuczogMC4wLjAuMApkZXN0aW5h\r\ndGlvbl9lcnI6IApkZXN0aW5hdGlvbl9pcDogMC4wLjAuMApkZXN0aW5hdGlvbl9t\r\nYXNrOiAwLjAuMC4wCmdhdGV3YXlfZG5zOiAxMC40OC4yNTUuMQpnYXRld2F5X2R5\r\nbjogLQpnYXRld2F5X2VycjogCmdhdGV3YXlfaXA6IDEwLjQ4LjI1NS4xCmludGVy\r\nZmFjZTogZXRoMApwcmlvcml0eTogCipTRUNUSU9OIGRiLm5ldHdvcmsudHVubmVs\r\nc182aW40CmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMAoqU0VDVElPTiBkYi5u\r\nZXR3b3JrLnR1bm5lbHNfNnJkCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMAoq\r\nU0VDVElPTiBkYi5uZXR3b3JrLnR1bm5lbHNfNnRvNApnZW5lcmF0aW9uOiAwCmxh\r\nc3Rfcm93aWQ6IDAKKlNFQ1RJT04gZGIubmV0d29yay51bnJlYWNoYWJsZQpnZW5l\r\ncmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDAKKlNFQ1RJT04gZGIubmV0d29yay52bGFu\r\ncwpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDAKKlNFQ1RJT04gRU9GCgAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAGRiL19fZ2VuZXJhdGlvbl9fAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDAwNjMAMDAwMDA2MwAwMDAw\r\nMDAwMDAwMgAxMzM2NDMyNjEzMgAwMTMyNzQAIDAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABmdWVnbwAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZ1ZWdvAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nNwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkYi9kYi5jb25maWcAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAw\r\nMDYzADAwMDAwNjMAMDAwMDAwMDIxMjMAMTMzNjE0MDI1NzQAMDEyMjA2ACAwAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAHVzdGFyICAAZnVlZ28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmdWVnbwAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAACMgVGhpcyBmaWxlIGlzIGEgc3RyaWN0IGZvcm1hdCBj\r\nb25maWd1cmF0aW9uIGZpbGUuCiMgRWRpdCBjYXJlZnVsbHkgb3Igbm90IGF0IGFs\r\nbC4KKlNFQ1RJT04gZGIuY29uZmlnLmFsbG93X2NvbmZpZwpnZW5lcmF0aW9uOiAz\r\nCmxhc3Rfcm93aWQ6IDIKKipST1cKcm93aWQ6IDIKY2xpZW50X25ldHdvcmtfZG5z\r\nOiAwLjAuMC4wCmNsaWVudF9uZXR3b3JrX2VycjogCmNsaWVudF9uZXR3b3JrX2lw\r\nOiAwLjAuMC4wCmNsaWVudF9uZXR3b3JrX21hc2s6IDAuMC4wLjAKZnJvbV90dW5u\r\nZWw6IC0KaHR0cDogb24KaHR0cHM6IG9mZgpsb2djbGFzczogLQpudW1iZXI6IDEK\r\ncmVzdGFwaTogb24Kc3NoOiBvZmYKKlNFQ1RJT04gZGIuY29uZmlnLmFsbG93X3Zp\r\nYV9pbnRlcmZhY2UKZ2VuZXJhdGlvbjogMgpsYXN0X3Jvd2lkOiAyCioqUk9XCnJv\r\nd2lkOiAyCmNvbmZpZ19vbjogb24KaW50ZXJmYWNlOiBldGgwCipTRUNUSU9OIGRi\r\nLmNvbmZpZy5hdXRoX2xvZ2NsYXNzCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDog\r\nMQoqKlJPVwpyb3dpZDogMQpsb2djbGFzczogTG9jYWwKKlNFQ1RJT04gZGIuY29u\r\nZmlnLmF1dGhlbnRpY2F0aW9uCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoq\r\nKlJPVwpyb3dpZDogMQphdXRoX3R5cGU6IGxvY2FsCipTRUNUSU9OIGRiLmNvbmZp\r\nZy5hdXRoZW50aWNhdGlvbl9zZXNzaW9uCmdlbmVyYXRpb246IDEKbGFzdF9yb3dp\r\nZDogMQoqKlJPVwpyb3dpZDogMQpwd2RfdGltZW91dDogMjg4MDAKdG9rZW5fdGlt\r\nZW91dDogMzYwMAoqU0VDVElPTiBkYi5jb25maWcubWdtdF9sb2djbGFzcwpnZW5l\r\ncmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKbG9nY2xhc3M6\r\nIExvY2FsCipTRUNUSU9OIGRiLmNvbmZpZy5zZXJ2ZXJzCmdlbmVyYXRpb246IDEK\r\nbGFzdF9yb3dpZDogNgoqKlJPVwpyb3dpZDogNApjZXJ0OiAtCmlwOiBldGgwCnBv\r\ncnQ6IDgwCnByb3RvY29sOiBodHRwCnRsczogLQoqKlJPVwpyb3dpZDogNQpjZXJ0\r\nOiAtCmlwOiAtCnBvcnQ6IDQ0Mwpwcm90b2NvbDogaHR0cHMKdGxzOiAtCioqUk9X\r\nCnJvd2lkOiA2CmNlcnQ6IC0KaXA6IC0KcG9ydDogMjIKcHJvdG9jb2w6IHNzaAp0\r\nbHM6IC0KKlNFQ1RJT04gRU9GCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAGRiL2RiLm1vbml0b3IAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDAwNjMAMDAwMDA2MwAwMDAw\r\nMDAwNTE2NAAxMzM2MTQwMjQ2NwAwMTI0NDEAIDAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABmdWVnbwAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZ1ZWdvAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nIyBUaGlzIGZpbGUgaXMgYSBzdHJpY3QgZm9ybWF0IGNvbmZpZ3VyYXRpb24gZmls\r\nZS4KIyBFZGl0IGNhcmVmdWxseSBvciBub3QgYXQgYWxsLgoqU0VDVElPTiBkYi5t\r\nb25pdG9yLmNwdWxvYWRfbGV2ZWxfYWxhcm0KZ2VuZXJhdGlvbjogMApsYXN0X3Jv\r\nd2lkOiAxCioqUk9XCnJvd2lkOiAxCm1heF9jcHVsb2FkOgpva19jcHVsb2FkOgoq\r\nU0VDVElPTiBkYi5tb25pdG9yLmVtYWlsX2FsZXJ0X2xvZ2NsYXNzCmdlbmVyYXRp\r\nb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQpsb2djbGFzczogTG9j\r\nYWwKKlNFQ1RJT04gZGIubW9uaXRvci5lbWFpbF9zZXJ2ZXIKZ2VuZXJhdGlvbjog\r\nMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCnNlcnZlcl9kbnM6CnNlcnZl\r\ncl9lcnI6CnNlcnZlcl9pcDoKKlNFQ1RJT04gZGIubW9uaXRvci5mYW5fbGV2ZWxf\r\nYWxhcm1zCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMwoqKlJPVwpyb3dpZDog\r\nMQphbGFybWJ5OiA3MApyZXN1bWVieTogODAKKipST1cKcm93aWQ6IDIKYWxhcm1i\r\neTogNTAKcmVzdW1lYnk6IDYwCioqUk9XCnJvd2lkOiAzCmFsYXJtYnk6IDAKcmVz\r\ndW1lYnk6IDEwCipTRUNUSU9OIGRiLm1vbml0b3IuaGFyZHdhcmVfbG9nY2xhc3MK\r\nZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmxvZ2Ns\r\nYXNzOiBMb2NhbAoqU0VDVElPTiBkYi5tb25pdG9yLmxvZ2NsYXNzZXMKZ2VuZXJh\r\ndGlvbjogMApsYXN0X3Jvd2lkOiAzCioqUk9XCnJvd2lkOiAxCmVtYWlsOgpmYWNp\r\nbGl0eTogLQpsZXZlbDogLQpsb2NhbDogb24KbmFtZTogTG9jYWwKKipST1cKcm93\r\naWQ6IDIKZW1haWw6CmZhY2lsaXR5OiBBdXRoCmxldmVsOiBOb3RpY2UKbG9jYWw6\r\nIG9uCm5hbWU6IExvY2FsK1N5c2xvZwoqKlJPVwpyb3dpZDogMwplbWFpbDoKZmFj\r\naWxpdHk6IEF1dGgKbGV2ZWw6IE5vdGljZQpsb2NhbDogb2ZmCm5hbWU6IFN5c2xv\r\nZwoqU0VDVElPTiBkYi5tb25pdG9yLm1lbW9yeV9sZXZlbF9hbGFybQpnZW5lcmF0\r\naW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKbWF4X21lbW9yeToK\r\nb2tfbWVtb3J5OgoqU0VDVElPTiBkYi5tb25pdG9yLnJhZGl1c19lcnJvcnNfbG9n\r\nY2xhc3MKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAx\r\nCmxvZ2NsYXNzOiBMb2NhbAoqU0VDVElPTiBkYi5tb25pdG9yLnNpcF9sZXZlbF9h\r\nbGFybXMKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAx\r\nCm1heF9yZWdpc3RlcmVkX3VzZXJzOgptYXhfc2Vzc2lvbnM6Cm9rX3JlZ2lzdGVy\r\nZWRfdXNlcnM6Cm9rX3Nlc3Npb25zOgoqU0VDVElPTiBkYi5tb25pdG9yLnNubXBf\r\nYWdlbnRfYWRkcmVzcwpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cK\r\ncm93aWQ6IDEKc25tcGFnZW50aXA6IC0KKlNFQ1RJT04gZGIubW9uaXRvci5zbm1w\r\nX2FnZW50X2xvZ2NsYXNzCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJP\r\nVwpyb3dpZDogMQpsb2djbGFzczogTG9jYWwKKlNFQ1RJT04gZGIubW9uaXRvci5z\r\nbm1wX2NvbnRhY3RfcGVyc29uCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoq\r\nKlJPVwpyb3dpZDogMQpzbm1wX2NvbnRhY3RfcGVyc29uOgoqU0VDVElPTiBkYi5t\r\nb25pdG9yLnNubXBfbWFuYWdlbWVudF9zdGF0aW9ucwpnZW5lcmF0aW9uOiAwCmxh\r\nc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKY2xpZW50X25ldGdyb3VwOiAtCipT\r\nRUNUSU9OIGRiLm1vbml0b3Iuc25tcF9ub2RlX2xvY2F0aW9uCmdlbmVyYXRpb246\r\nIDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQpzbm1wX25vZGVfbG9jYXRp\r\nb246CipTRUNUSU9OIGRiLm1vbml0b3Iuc25tcF9wYWNrZXRfbG9nY2xhc3MKZ2Vu\r\nZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmxvZ2NsYXNz\r\nOiBMb2NhbAoqU0VDVElPTiBkYi5tb25pdG9yLnNubXBfdHJhcF9jd21wX3NlbmRp\r\nbmcKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmVu\r\nYWJsZWQ6IG9mZgoqU0VDVElPTiBkYi5tb25pdG9yLnNubXBfdHJhcF9yZWNlaXZl\r\ncnMKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAwCipTRUNUSU9OIGRiLm1vbml0\r\nb3Iuc25tcF90cmFwX3NlbmRpbmcKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAx\r\nCioqUk9XCnJvd2lkOiAxCmVuYWJsZWQ6IG9mZgoqU0VDVElPTiBkYi5tb25pdG9y\r\nLnNubXBfdjF2MmNfYWNjZXNzCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoq\r\nKlJPVwpyb3dpZDogMQplbmFibGVkOiBvZmYKKlNFQ1RJT04gZGIubW9uaXRvci5z\r\nbm1wX3YxdjJjX2F1dGgKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAwCipTRUNU\r\nSU9OIGRiLm1vbml0b3Iuc25tcF92M19hY2Nlc3MKZ2VuZXJhdGlvbjogMApsYXN0\r\nX3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmVuYWJsZWQ6IG9mZgoqU0VDVElPTiBk\r\nYi5tb25pdG9yLnNubXBfdjNfYXV0aApnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6\r\nIDAKKlNFQ1RJT04gZGIubW9uaXRvci5zeXNsb2dfc2VydmVycwpnZW5lcmF0aW9u\r\nOiAwCmxhc3Rfcm93aWQ6IDAKKlNFQ1RJT04gZGIubW9uaXRvci53YXRjaGRvZ3MK\r\nZ2VuZXJhdGlvbjogMQpsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmVuYWJs\r\nZWQ6IG9mZgpzZXJ2aWNlOiBzaXBmdwoqU0VDVElPTiBFT0YKAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nZGIvZGIuc2lwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAADAwMDA2NDQAMDAwMDA2MwAwMDAwMDYzADAwMDAwMDQ0NDA1ADEzMzYxNDAx\r\nNDQ3ADAxMTU0MwAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAGZ1ZWdvAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAZnVlZ28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjIFRoaXMgZmlsZSBpcyBh\r\nIHN0cmljdCBmb3JtYXQgY29uZmlndXJhdGlvbiBmaWxlLgojIEVkaXQgY2FyZWZ1\r\nbGx5IG9yIG5vdCBhdCBhbGwuCipTRUNUSU9OIGRiLnNpcC5hY2NlbGVyYXRlZF90\r\nbHMKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmVu\r\nYWJsZWQ6IG9mZgoqU0VDVElPTiBkYi5zaXAuYWN0aXZlCmdlbmVyYXRpb246IDAK\r\nbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQplbmFibGVkOiBvZmYKKlNFQ1RJ\r\nT04gZGIuc2lwLmFkZF9kdG1mX2FkZHJzCmdlbmVyYXRpb246IDAKbGFzdF9yb3dp\r\nZDogMAoqU0VDVElPTiBkYi5zaXAuYWRkX2R0bWZfcHQKZ2VuZXJhdGlvbjogMAps\r\nYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCnB0OgoqU0VDVElPTiBkYi5zaXAu\r\nYWRkX2V4cGlyZV9oZWFkZXIKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioq\r\nUk9XCnJvd2lkOiAxCmFjdGlvbjogbmV2ZXIKKlNFQ1RJT04gZGIuc2lwLmFsbG93\r\nZWRfY29kZWNzCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMTQKKipST1cKcm93\r\naWQ6IDEKYWxsb3c6IG9uCmJhbmR3aWR0aDogODAKbmFtZTogcGNtdQp0eXBlOiBh\r\ndWRpbwoqKlJPVwpyb3dpZDogMgphbGxvdzogb24KYmFuZHdpZHRoOiA4MApuYW1l\r\nOiBwY21hCnR5cGU6IGF1ZGlvCioqUk9XCnJvd2lkOiAzCmFsbG93OiBvbgpiYW5k\r\nd2lkdGg6IDI0Cm5hbWU6IGc3MjkKdHlwZTogYXVkaW8KKipST1cKcm93aWQ6IDQK\r\nYWxsb3c6IG9uCmJhbmR3aWR0aDogMjQKbmFtZTogZzcyOWEKdHlwZTogYXVkaW8K\r\nKipST1cKcm93aWQ6IDUKYWxsb3c6IG9uCmJhbmR3aWR0aDogMjkKbmFtZTogZ3Nt\r\nCnR5cGU6IGF1ZGlvCioqUk9XCnJvd2lkOiA2CmFsbG93OiBvbgpiYW5kd2lkdGg6\r\nIDE4Cm5hbWU6IGc3MjMKdHlwZTogYXVkaW8KKipST1cKcm93aWQ6IDcKYWxsb3c6\r\nIG9uCmJhbmR3aWR0aDogMzIKbmFtZTogZzcyNi0xNgp0eXBlOiBhdWRpbwoqKlJP\r\nVwpyb3dpZDogOAphbGxvdzogb24KYmFuZHdpZHRoOiA0MApuYW1lOiBnNzI2LTI0\r\nCnR5cGU6IGF1ZGlvCioqUk9XCnJvd2lkOiA5CmFsbG93OiBvbgpiYW5kd2lkdGg6\r\nIDQ4Cm5hbWU6IGc3MjYtMzIKdHlwZTogYXVkaW8KKipST1cKcm93aWQ6IDEwCmFs\r\nbG93OiBvbgpiYW5kd2lkdGg6IDU2Cm5hbWU6IGc3MjYtNDAKdHlwZTogYXVkaW8K\r\nKipST1cKcm93aWQ6IDExCmFsbG93OiBvbgpiYW5kd2lkdGg6IDYwCm5hbWU6IHNw\r\nZWV4CnR5cGU6IGF1ZGlvCioqUk9XCnJvd2lkOiAxMgphbGxvdzogb24KYmFuZHdp\r\nZHRoOiAzMgpuYW1lOiBpbGJjCnR5cGU6IGF1ZGlvCioqUk9XCnJvd2lkOiAxMwph\r\nbGxvdzogb2ZmCmJhbmR3aWR0aDoKbmFtZTogKgp0eXBlOiBhdWRpbwoqKlJPVwpy\r\nb3dpZDogMTQKYWxsb3c6IG9mZgpiYW5kd2lkdGg6Cm5hbWU6ICoKdHlwZTogdmlk\r\nZW8KKlNFQ1RJT04gZGIuc2lwLmFsbG93ZWRfbWVkaWEKZ2VuZXJhdGlvbjogMAps\r\nYXN0X3Jvd2lkOiAyCioqUk9XCnJvd2lkOiAxCnRyYW5zcG9ydDogdWRwCnBvcnRz\r\nX2xvd2VyOiAxMDI0CnBvcnRzX3VwcGVyOiA2NTUzNQoqKlJPVwpyb3dpZDogMgp0\r\ncmFuc3BvcnQ6IHRjcApwb3J0c19sb3dlcjogMTAyNApwb3J0c191cHBlcjogNjU1\r\nMzUKKlNFQ1RJT04gZGIuc2lwLmFsbG93ZWRfb3JpZ2lucwpnZW5lcmF0aW9uOiAw\r\nCmxhc3Rfcm93aWQ6IDAKKlNFQ1RJT04gZGIuc2lwLmFsd2F5c19yZWxheV9tZWRp\r\nYQpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5h\r\nYmxlZDogb2ZmCipTRUNUSU9OIGRiLnNpcC5hc3NlcnRlZF9pZGVudGl0eQpnZW5l\r\ncmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5hYmxlZDog\r\nb2ZmCipTRUNUSU9OIGRiLnNpcC5hc3NpZ25faXBfYWxpYXNfYnlfdXNlcgpnZW5l\r\ncmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5hYmxlZDog\r\nb2ZmCipTRUNUSU9OIGRiLnNpcC5hdXRoX21ldGhvZHMKZ2VuZXJhdGlvbjogMAps\r\nYXN0X3Jvd2lkOiAxNAoqKlJPVwpyb3dpZDogMQphbGxvdzogb24KYXV0aDogb2Zm\r\nCm1ldGhvZDogQllFCnRyYWZmaWNfdG86IGJvdGgKKipST1cKcm93aWQ6IDIKYWxs\r\nb3c6IG9uCmF1dGg6IG9mZgptZXRob2Q6IEZFQVRVUkUKdHJhZmZpY190bzogYm90\r\naAoqKlJPVwpyb3dpZDogMwphbGxvdzogb24KYXV0aDogb2ZmCm1ldGhvZDogSU5G\r\nTwp0cmFmZmljX3RvOiBib3RoCioqUk9XCnJvd2lkOiA0CmFsbG93OiBvbgphdXRo\r\nOiBvZmYKbWV0aG9kOiBJTlZJVEUKdHJhZmZpY190bzogYm90aAoqKlJPVwpyb3dp\r\nZDogNQphbGxvdzogb24KYXV0aDogb2ZmCm1ldGhvZDogTUVTU0FHRQp0cmFmZmlj\r\nX3RvOiBib3RoCioqUk9XCnJvd2lkOiA2CmFsbG93OiBvbgphdXRoOiBvZmYKbWV0\r\naG9kOiBOT1RJRlkKdHJhZmZpY190bzogYm90aAoqKlJPVwpyb3dpZDogNwphbGxv\r\ndzogb24KYXV0aDogb2ZmCm1ldGhvZDogT1BUSU9OUwp0cmFmZmljX3RvOiBib3Ro\r\nCioqUk9XCnJvd2lkOiA4CmFsbG93OiBvbgphdXRoOiBvZmYKbWV0aG9kOiBQUkFD\r\nSwp0cmFmZmljX3RvOiBib3RoCioqUk9XCnJvd2lkOiA5CmFsbG93OiBvbgphdXRo\r\nOiBvZmYKbWV0aG9kOiBQVUJMSVNICnRyYWZmaWNfdG86IGJvdGgKKipST1cKcm93\r\naWQ6IDEwCmFsbG93OiBvbgphdXRoOiBvZmYKbWV0aG9kOiBSRUZFUgp0cmFmZmlj\r\nX3RvOiBib3RoCioqUk9XCnJvd2lkOiAxMQphbGxvdzogb24KYXV0aDogb2ZmCm1l\r\ndGhvZDogUkVHSVNURVIKdHJhZmZpY190bzogYm90aAoqKlJPVwpyb3dpZDogMTIK\r\nYWxsb3c6IG9uCmF1dGg6IG9mZgptZXRob2Q6IFNFUlZJQ0UKdHJhZmZpY190bzog\r\nYm90aAoqKlJPVwpyb3dpZDogMTMKYWxsb3c6IG9uCmF1dGg6IG9mZgptZXRob2Q6\r\nIFNVQlNDUklCRQp0cmFmZmljX3RvOiBib3RoCioqUk9XCnJvd2lkOiAxNAphbGxv\r\ndzogb24KYXV0aDogb2ZmCm1ldGhvZDogVVBEQVRFCnRyYWZmaWNfdG86IGJvdGgK\r\nKlNFQ1RJT04gZGIuc2lwLmIyYnVhX2Fuc3dlcl9wdF9jaGFuZ2VzCmdlbmVyYXRp\r\nb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQpjb25kOiBmaXJzdAoq\r\nU0VDVElPTiBkYi5zaXAuYjJidWFfZGV0ZWN0X25vb3Bfc2RwCmdlbmVyYXRpb246\r\nIDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQplbmFibGVkOiBvZmYKKlNF\r\nQ1RJT04gZGIuc2lwLmIyYnVhX2Z3ZF8zeHhfaGRycwpnZW5lcmF0aW9uOiAwCmxh\r\nc3Rfcm93aWQ6IDAKKlNFQ1RJT04gZGIuc2lwLmIyYnVhX29mZmVyX2Zyb21fdGVt\r\ncGxhdGUKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAx\r\nCmVuYWJsZWQ6IG9mZgoqU0VDVElPTiBkYi5zaXAuYjJidWFfb2ZmZXJfaW5faW52\r\naXRlCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQpl\r\nbmFibGVkOiBvZmYKKlNFQ1RJT04gZGIuc2lwLmIyYnVhX3BlbmRpbmdfdGltZW91\r\ndApnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKdGlt\r\nZW91dDogMAoqU0VDVElPTiBkYi5zaXAuYjJidWFfcmVpbnZpdGVzX2VuZF90b19l\r\nbmQKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmVu\r\nYWJsZWQ6IG9uCipTRUNUSU9OIGRiLnNpcC5icmVha19mcmllbmRzaGlwcwpnZW5l\r\ncmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5hYmxlZDog\r\nb2ZmCipTRUNUSU9OIGRiLnNpcC5jYWxsX2NvbnRyb2wKZ2VuZXJhdGlvbjogMAps\r\nYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCnZlcmJvc2U6IG9mZgoqU0VDVElP\r\nTiBkYi5zaXAuY2FsbF9jb250cm9sX2NhcwpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93\r\naWQ6IDAKKlNFQ1RJT04gZGIuc2lwLmNhbGxfY29udHJvbF9zZXJ2ZXJzCmdlbmVy\r\nYXRpb246IDAKbGFzdF9yb3dpZDogMAoqU0VDVElPTiBkYi5zaXAuY29kZWNfZmls\r\ndGVyaW5nCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDog\r\nMQplbmFibGVkOiBvZmYKKlNFQ1RJT04gZGIuc2lwLmRhdGFfaW50ZXJmYWNlcwpn\r\nZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDAKKlNFQ1RJT04gZGIuc2lwLmRlZmF1\r\nbHRfZ2F0ZXdheQpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93\r\naWQ6IDEKZ2F0ZXdheTogLQoqU0VDVElPTiBkYi5zaXAuZGlhbGluZ19kb21haW5z\r\nCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMAoqU0VDVElPTiBkYi5zaXAuZG5z\r\nX292ZXJyaWRlX29uX3JlY3Vyc2lvbgpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6\r\nIDEKKipST1cKcm93aWQ6IDEKZW5hYmxlZDogb24KKlNFQ1RJT04gZGIuc2lwLmVt\r\nZXJnZW5jeQpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6\r\nIDEKZW1lcmdlbmN5OiA5MTEKKlNFQ1RJT04gZGIuc2lwLmV4dGVybl9yYWRpdXNf\r\nZGIKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmNs\r\naWVudF9uZXRncm91cDogLQpkYl90eXBlOiBsb2NhbAoqU0VDVElPTiBkYi5zaXAu\r\nZXh0ZXJuYWxfcmVsYXkKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAwCipTRUNU\r\nSU9OIGRiLnNpcC5mYWtlX3Byb3h5X3N1cHBvcnRlZF9wcml2YWN5CmdlbmVyYXRp\r\nb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQplbmFibGVkOiBvZmYK\r\nKlNFQ1RJT04gZGIuc2lwLmZpeF9maWxlX3RyYW5zZmVyX3BvcnQKZ2VuZXJhdGlv\r\nbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmVuYWJsZWQ6IG9mZgoq\r\nU0VDVElPTiBkYi5zaXAuZm9yY2VfMzI2NF9ob2xkCmdlbmVyYXRpb246IDAKbGFz\r\ndF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQplbmFibGVkOiBvZmYKKlNFQ1RJT04g\r\nZGIuc2lwLmZvcmNlX21vZGlmeQpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDAK\r\nKlNFQ1RJT04gZGIuc2lwLmZvcndhcmRfY2FuY2VsX2JvZHkKZ2VuZXJhdGlvbjog\r\nMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmVuYWJsZWQ6IG9mZgoqU0VD\r\nVElPTiBkYi5zaXAuZm9yd2FyZF90b19oZWFkZXIKZ2VuZXJhdGlvbjogMApsYXN0\r\nX3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmVuYWJsZWQ6IG9mZgoqU0VDVElPTiBk\r\nYi5zaXAuZm9yd2FyZF91c2VyX2FnZW50CmdlbmVyYXRpb246IDAKbGFzdF9yb3dp\r\nZDogMQoqKlJPVwpyb3dpZDogMQplbmFibGVkOiBvZmYKKlNFQ1RJT04gZGIuc2lw\r\nLmdsb2JhbF9wb2xpY2llcwpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipS\r\nT1cKcm93aWQ6IDEKc2lwX3BvbGljeTogcHJvY2VzcwpzaXBhdXRoX2FsbG93X3Jm\r\nYzIwNjk6IG9mZgpzaXBhdXRoX2VuYWJsZWQ6IG9mZgpzaXBhdXRoX3JlYWxtOgoq\r\nU0VDVElPTiBkYi5zaXAuaGVhZGVyX2ZpbHRlcl9kZWZhdWx0CmdlbmVyYXRpb246\r\nIDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQphY3Rpb246IHByb2Nlc3MK\r\nKlNFQ1RJT04gZGIuc2lwLmhlYWRlcl9maWx0ZXJfcnVsZXMKZ2VuZXJhdGlvbjog\r\nMApsYXN0X3Jvd2lkOiAwCipTRUNUSU9OIGRiLnNpcC5pZ25vcmVfdXJpX3BvcnRf\r\nd2hlbl9tYWRkcgpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93\r\naWQ6IDEKZW5hYmxlZDogb2ZmCipTRUNUSU9OIGRiLnNpcC5pbmhpYml0X2hvbGQK\r\nZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmFjdGlv\r\nbjogbm8KKlNFQ1RJT04gZGIuc2lwLmxhcmdlX3VkcApnZW5lcmF0aW9uOiAwCmxh\r\nc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5hYmxlZDogb2ZmCipTRUNUSU9O\r\nIGRiLnNpcC5saXN0ZW4KZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAyCioqUk9X\r\nCnJvd2lkOiAxCmVuYWJsZWQ6IG9uCnBvcnQ6IDUwNjAKdHJhbnNwb3J0OiB1ZHAs\r\ndGNwCnRyYW5zcGFyZW50OiBvbgpjb21tZW50OiBTdGFuZGFyZCBTSVAgcG9ydAoq\r\nKlJPVwpyb3dpZDogMgplbmFibGVkOiBvZmYKcG9ydDogNTA2MQp0cmFuc3BvcnQ6\r\nIHRscwp0cmFuc3BhcmVudDogb24KY29tbWVudDogU3RhbmRhcmQgVExTIHBvcnQK\r\nKlNFQ1RJT04gZGIuc2lwLmxvY2FsX2RvbWFpbnMKZ2VuZXJhdGlvbjogMApsYXN0\r\nX3Jvd2lkOiAwCipTRUNUSU9OIGRiLnNpcC5sb29zZV9yZWZlcl90bwpnZW5lcmF0\r\naW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5hYmxlZDogb2Zm\r\nCipTRUNUSU9OIGRiLnNpcC5sb29zZV91c2VyX25hbWVfY2hlY2sKZ2VuZXJhdGlv\r\nbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmVuYWJsZWQ6IG9mZgoq\r\nU0VDVElPTiBkYi5zaXAubHJfdHJ1ZQpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6\r\nIDEKKipST1cKcm93aWQ6IDEKZW5hYmxlZDogb2ZmCipTRUNUSU9OIGRiLnNpcC5t\r\nZWRpYV9lbmNyeXB0aW9uX3BvbGljeQpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6\r\nIDEKKipST1cKcm93aWQ6IDEKYWxsb3dfdHJhbnNjb2Rpbmc6IG9mZgphbGxvd2Vk\r\nX3N1aXRlczogLQoqU0VDVElPTiBkYi5zaXAubWVkaWFfZW5jcnlwdGlvbl9ydWxl\r\ncwpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDAKKlNFQ1RJT04gZGIuc2lwLm1l\r\nZGlhX2VuY3J5cHRpb25fc2V0dGluZ3MKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lk\r\nOiAxCioqUk9XCnJvd2lkOiAxCmIyYnVhOiBvbgplbmFibGVkOiBvZmYKbXVsdGlf\r\ncHJvZmlsZTogb2ZmCnJlcXVpcmVfdGxzOiBvZmYKdXNlX2xhc3RfY29tcHV0ZWQ6\r\nIG9mZgpwcmVmZXJfcnRwX3NhdnA6IGF2cAoqU0VDVElPTiBkYi5zaXAubWVkaWFf\r\nZW5jcnlwdGlvbl9kdGxzX3NydHAKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAx\r\nCioqUk9XCnJvd2lkOiAxCmNlcnQ6IC0KZHRsczogRFRMU3YxLngKaWduX2NlcnRf\r\nZGF0ZXM6IG9mZgphZGRfY2xpZW50X2lwOiBvbgoqU0VDVElPTiBkYi5zaXAubWVk\r\naWFfZW5jcnlwdGlvbl9zdWl0ZQpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDkK\r\nKipST1cKcm93aWQ6IDEKbmFtZTogQ2xlYXJ0ZXh0CnN1aXRlOiBjbGVhcnRleHQK\r\nKipST1cKcm93aWQ6IDIKbmFtZTogRW5jcnlwdGVkICh0cmFuc2NvZGFibGUpCnN1\r\naXRlOiBzZGVzY3JpcHRpb25zLUFFU19DTV8xMjhfSE1BQ19TSEExXzMyCioqUk9X\r\nCnJvd2lkOiAzCm5hbWU6IEVuY3J5cHRlZCAodHJhbnNjb2RhYmxlKQpzdWl0ZTog\r\nc2Rlc2NyaXB0aW9ucy1BRVNfQ01fMTI4X0hNQUNfU0hBMV84MAoqKlJPVwpyb3dp\r\nZDogNApuYW1lOiBTUlRQCnN1aXRlOiBzZGVzY3JpcHRpb25zLUFFU19DTV8xMjhf\r\nSE1BQ19TSEExXzMyCioqUk9XCnJvd2lkOiA1Cm5hbWU6IFNSVFAKc3VpdGU6IHNk\r\nZXNjcmlwdGlvbnMtQUVTX0NNXzEyOF9ITUFDX1NIQTFfODAKKipST1cKcm93aWQ6\r\nIDYKbmFtZTogU1JUUApzdWl0ZTogc2Rlc2NyaXB0aW9ucy1GOF8xMjhfSE1BQ19T\r\nSEExXzgwCioqUk9XCnJvd2lkOiA3Cm5hbWU6IEFueSAodHJhbnNjb2RhYmxlKQpz\r\ndWl0ZTogY2xlYXJ0ZXh0CioqUk9XCnJvd2lkOiA4Cm5hbWU6IEFueSAodHJhbnNj\r\nb2RhYmxlKQpzdWl0ZTogc2Rlc2NyaXB0aW9ucy1BRVNfQ01fMTI4X0hNQUNfU0hB\r\nMV8zMgoqKlJPVwpyb3dpZDogOQpuYW1lOiBBbnkgKHRyYW5zY29kYWJsZSkKc3Vp\r\ndGU6IHNkZXNjcmlwdGlvbnMtQUVTX0NNXzEyOF9ITUFDX1NIQTFfODAKKlNFQ1RJ\r\nT04gZGIuc2lwLm1lZGlhX3BvcnRzCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDog\r\nMQoqKlJPVwpyb3dpZDogMQpwb3J0c19sb3dlcjogNTgwMjQKcG9ydHNfdXBwZXI6\r\nIDYwOTk5CipTRUNUSU9OIGRiLnNpcC5tZWRpYV9wcm94eQpnZW5lcmF0aW9uOiAw\r\nCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5hYmxlZDogb2ZmCmZvcmNl\r\nOiBvZmYKKlNFQ1RJT04gZGIuc2lwLm1lZGlhX3Jlc3RyaWN0aW9uCmdlbmVyYXRp\r\nb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQptYXhfc2VuZGVyczog\r\nMTAKbWVkaWFsb2NrOiBsb2NrCipTRUNUSU9OIGRiLnNpcC5tZWRpYV9zdHJlYW1f\r\nbGluZ2VyCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDog\r\nMQp0aW1lOiAwCipTRUNUSU9OIGRiLnNpcC5tZWRpYV90aW1lb3V0cwpnZW5lcmF0\r\naW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKb25ld2F5OgpydGNw\r\nOgpydHA6CnRlYXJfZG93bjogb2ZmCipTRUNUSU9OIGRiLnNpcC5tZWRpYV90cmFu\r\nc2NvZGluZwpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6\r\nIDEKZW5hYmxlZDogb2ZmCipTRUNUSU9OIGRiLnNpcC5tZWRpYV90cmFuc2NvZGlu\r\nZ19ydWxlcwpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDAKKlNFQ1RJT04gZGIu\r\nc2lwLm1lZGlhX3RyYW5zY29kaW5nX2NvZGVjcwpnZW5lcmF0aW9uOiAwCmxhc3Rf\r\ncm93aWQ6IDAKKlNFQ1RJT04gZGIuc2lwLm1lZGlhX3RyYW5zY29kaW5nX29wdGlv\r\nbnMKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAwCipTRUNUSU9OIGRiLnNpcC5t\r\nZXNzYWdlCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDog\r\nMQptYXhfbWVzc2FnZV9zaXplOiAxMzEwNzIKbGltaXRfbWF4X2ZvcndhcmRzOiA3\r\nMApzZXJ2ZXJuYW1lOiAlcHJvZHVjdC8ldmVyc2lvbgoqU0VDVElPTiBkYi5zaXAu\r\nbWZ1bGwKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAx\r\nCmVuYWJsZWQ6IG9uCipTRUNUSU9OIGRiLnNpcC5taW1ldHlwZXMKZ2VuZXJhdGlv\r\nbjogMApsYXN0X3Jvd2lkOiAxNgoqKlJPVwpyb3dpZDogMQphbGxvd2VkOiBvZmYK\r\nbWltZXR5cGU6IGFwcGxpY2F0aW9uL1NPQVAreG1sCioqUk9XCnJvd2lkOiAyCmFs\r\nbG93ZWQ6IG9mZgptaW1ldHlwZTogYXBwbGljYXRpb24vcGlkZit4bWwKKipST1cK\r\ncm93aWQ6IDMKYWxsb3dlZDogb2ZmCm1pbWV0eXBlOiBhcHBsaWNhdGlvbi92bmQt\r\nbWljcm9zb2Z0LXJvYW1pbmctYWNscyt4bWwKKipST1cKcm93aWQ6IDQKYWxsb3dl\r\nZDogb2ZmCm1pbWV0eXBlOiBhcHBsaWNhdGlvbi92bmQtbWljcm9zb2Z0LXJvYW1p\r\nbmctY29udGFjdHMreG1sCioqUk9XCnJvd2lkOiA1CmFsbG93ZWQ6IG9mZgptaW1l\r\ndHlwZTogYXBwbGljYXRpb24vdm5kLW1pY3Jvc29mdC1yb2FtaW5nLXByb3Zpc2lv\r\nbmluZyt4bWwKKipST1cKcm93aWQ6IDYKYWxsb3dlZDogb2ZmCm1pbWV0eXBlOiBh\r\ncHBsaWNhdGlvbi94bWwKKipST1cKcm93aWQ6IDcKYWxsb3dlZDogb2ZmCm1pbWV0\r\neXBlOiBpbWFnZS9qcGVnCioqUk9XCnJvd2lkOiA4CmFsbG93ZWQ6IG9mZgptaW1l\r\ndHlwZTogdGV4dC9odG1sCioqUk9XCnJvd2lkOiA5CmFsbG93ZWQ6IG9mZgptaW1l\r\ndHlwZTogdGV4dC9scGlkZgoqKlJPVwpyb3dpZDogMTAKYWxsb3dlZDogb2ZmCm1p\r\nbWV0eXBlOiB0ZXh0L3BsYWluCioqUk9XCnJvd2lkOiAxMQphbGxvd2VkOiBvZmYK\r\nbWltZXR5cGU6IHRleHQveG1sCioqUk9XCnJvd2lkOiAxMgphbGxvd2VkOiBvZmYK\r\nbWltZXR5cGU6IHRleHQveG1sK21zcnRjLnBpZGYKKipST1cKcm93aWQ6IDEzCmFs\r\nbG93ZWQ6IG9mZgptaW1ldHlwZTogdGV4dC94bWwrbXNydGMud3BlbmRpbmcKKipS\r\nT1cKcm93aWQ6IDE0CmFsbG93ZWQ6IG9mZgptaW1ldHlwZTogYXBwbGljYXRpb24v\r\nYWRybCt4bWwKKipST1cKcm93aWQ6IDE1CmFsbG93ZWQ6IG9mZgptaW1ldHlwZTog\r\nbWVzc2FnZS9zaXBmcmFnCioqUk9XCnJvd2lkOiAxNgphbGxvd2VkOiBvbgptaW1l\r\ndHlwZTogKi8qCipTRUNUSU9OIGRiLnNpcC5tb2RpZnlfcmVmZXJ0bwpnZW5lcmF0\r\naW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5hYmxlZDogb24K\r\nKlNFQ1RJT04gZGIuc2lwLm1vbml0b3Jfc2VydmVyCmdlbmVyYXRpb246IDAKbGFz\r\ndF9yb3dpZDogMAoqU0VDVElPTiBkYi5zaXAubXVzaWNfb25faG9sZApnZW5lcmF0\r\naW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5hYmxlZDogb2Zm\r\nCipTRUNUSU9OIGRiLnNpcC5tdXNpY19vbl9ob2xkX3NlcnZlcnMKZ2VuZXJhdGlv\r\nbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCnBvcnQ6CnRyYW5zcG9y\r\ndDogLQp1c2VyZG9tYWluOgoqU0VDVElPTiBkYi5zaXAubm9fc2lwX3RvX25hdApn\r\nZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5hYmxl\r\nZDogb2ZmCipTRUNUSU9OIGRiLnNpcC5vcHRpb25fdGltZW91dApnZW5lcmF0aW9u\r\nOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKdGltZW91dDogNDEKKlNF\r\nQ1RJT04gZGIuc2lwLm91dGJvdW5kX3Byb3h5CmdlbmVyYXRpb246IDAKbGFzdF9y\r\nb3dpZDogMAoqU0VDVElPTiBkYi5zaXAucGFpX3VzZV9mcm9tCmdlbmVyYXRpb246\r\nIDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQplbmFibGVkOiBvZmYKKlNF\r\nQ1RJT04gZGIuc2lwLnBlcmNlbnQyMF90b193aGl0ZXNwYWNlCmdlbmVyYXRpb246\r\nIDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQplbmFibGVkOiBvZmYKKlNF\r\nQ1RJT04gZGIuc2lwLnByZXNlcnZlXzI1NDNfaG9sZApnZW5lcmF0aW9uOiAwCmxh\r\nc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5hYmxlZDogb2ZmCipTRUNUSU9O\r\nIGRiLnNpcC5wcmVsb2FkZWRfcm91dGVfcnVsZXMKZ2VuZXJhdGlvbjogMApsYXN0\r\nX3Jvd2lkOiAwCipTRUNUSU9OIGRiLnNpcC5wcmVsb2FkZWRfcm91dGVfZGVmYXVs\r\ndApnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKYWN0\r\naW9uOiByZWplY3QKKlNFQ1RJT04gZGIuc2lwLnB1YmxpY19pcApnZW5lcmF0aW9u\r\nOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKaXBfZG5zOgppcF9lcnI6\r\nCmlwX2lwOgoqU0VDVElPTiBkYi5zaXAucmFkaXVzX2FjY3QKZ2VuZXJhdGlvbjog\r\nMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmRpdmVyc2lvbjogb2ZmCmVu\r\nYWJsZWQ6IG9mZgptZWRpYTogb2ZmCnBfYXNzZXJ0ZWRfaWRlbnRpdHk6IG9mZgpy\r\nZW1vdGVfcGFydHlfaWQ6IG9mZgoqU0VDVElPTiBkYi5zaXAucmFkaXVzX2FjY3Rf\r\naW50ZXJmYWNlcwpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDAKKlNFQ1RJT04g\r\nZGIuc2lwLnJlY3Vyc2Vfb25fM3h4X2luX2IyYnVhCmdlbmVyYXRpb246IDAKbGFz\r\ndF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQplbmFibGVkOiBvZmYKKlNFQ1RJT04g\r\nZGIuc2lwLnJlZGlyZWN0X3NlcnZlcgpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6\r\nIDEKKipST1cKcm93aWQ6IDEKc2VydmVyX2RuczoKc2VydmVyX2VycjoKc2VydmVy\r\nX2lwOgoqU0VDVElPTiBkYi5zaXAucmVmZXJ0b19yZXBsYWNlbWVudApnZW5lcmF0\r\naW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZG9tYWluOgp0eXBl\r\nOiBuZXZlcgoqU0VDVElPTiBkYi5zaXAucmVmZXJ0b193aXRoX2IyYnVhX2NhbGxp\r\nZApnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5h\r\nYmxlZDogb24KKlNFQ1RJT04gZGIuc2lwLnJlZ19jdF91cmlfcGFyYW1zCmdlbmVy\r\nYXRpb246IDAKbGFzdF9yb3dpZDogMAoqU0VDVElPTiBkYi5zaXAucmVnaXN0ZXJf\r\nZm9yY2VfYW9yX3VzZXIKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9X\r\nCnJvd2lkOiAxCmVuYWJsZWQ6IG9mZgoqU0VDVElPTiBkYi5zaXAucmVnaXN0cmFy\r\nX2xpbWl0cwpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6\r\nIDEKbWF4X3JlZ2lzdHJhdGlvbnM6IDUKbWF4X3VzZXJzOgpyZWdpc3RyYXRpb25f\r\ndGltZW91dDogMzYwMAoqU0VDVElPTiBkYi5zaXAucmVsYXlfcnVsZXMKZ2VuZXJh\r\ndGlvbjogMApsYXN0X3Jvd2lkOiAwCipTRUNUSU9OIGRiLnNpcC5yZW1vdmVfdmlh\r\nCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMAoqU0VDVElPTiBkYi5zaXAucmVt\r\nb3ZlX3ZpYV9hbGwKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJv\r\nd2lkOiAxCmVuYWJsZWQ6IG9mZgoqU0VDVElPTiBkYi5zaXAucmVwbHlfY29uZmln\r\nCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQpjbGFz\r\nczM6IGFsbAoqU0VDVElPTiBkYi5zaXAucmV3cml0ZV90b19mb3JfcmVnaXN0ZXJf\r\naW5fZHAKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAx\r\nCmVuYWJsZWQ6IG9mZgoqU0VDVElPTiBkYi5zaXAucmV3cml0ZV9mcm9tX2Zvcl9y\r\nZWdpc3Rlcl9pbl9kcApnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cK\r\ncm93aWQ6IDEKZW5hYmxlZDogb2ZmCipTRUNUSU9OIGRiLnNpcC5yaW5nYmFjawpn\r\nZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKYWN0aW9u\r\nOiBuZXZlcgp0b25lX3R5cGU6IHVzCipTRUNUSU9OIGRiLnNpcC5yb3V0ZTE4MApn\r\nZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5hYmxl\r\nZDogb2ZmCipTRUNUSU9OIGRiLnNpcC5yb3V0ZV91c2Vfc3BvcnQKZ2VuZXJhdGlv\r\nbjogMApsYXN0X3Jvd2lkOiAwCipTRUNUSU9OIGRiLnNpcC5yb3V0aW5nX29yZGVy\r\nCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMwoqKlJPVwpyb3dpZDogMQpmdW5j\r\ndGlvbjogZG5zX292ZXJyaWRlCm51bWJlcjogMQoqKlJPVwpyb3dpZDogMgpmdW5j\r\ndGlvbjogcmVnaXN0cmFyCm51bWJlcjogMgoqKlJPVwpyb3dpZDogMwpmdW5jdGlv\r\nbjogZGlhbHBsYW4KbnVtYmVyOiAzCipTRUNUSU9OIGRiLnNpcC5yZXVzZV9tZWRp\r\nYV9wb3J0CmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDog\r\nMQppZ25vcmVfbWVkaWE6IG9mZgppbl9zZXNzaW9uOiBvZmYKKlNFQ1RJT04gZGIu\r\nc2lwLnJyb3V0ZV9hbHdheXMKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioq\r\nUk9XCnJvd2lkOiAxCmVuYWJsZWQ6IG9mZgoqU0VDVElPTiBkYi5zaXAucnJvdXRl\r\nX291dGJvdW5kCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dp\r\nZDogMQplbmFibGVkOiBvZmYKKlNFQ1RJT04gZGIuc2lwLnNlc3Npb25fbGltaXRz\r\nCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQptYXhf\r\nc2lwc2Vzc2lvbnM6Cm1heF9zdHJlYW1zX3Blcl9yZXE6IDYKc2Vzc2lvbl90aW1l\r\nb3V0OiAxNDQwMAoqU0VDVElPTiBkYi5zaXAuc2lnbmFsX2FkZHJlc3NfZm9yX2Rl\r\nc3RpbmF0aW9uCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMAoqU0VDVElPTiBk\r\nYi5zaXAuc2lwX2FsaWFzCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMAoqU0VD\r\nVElPTiBkYi5zaXAuc2lwX2Vycm9yc19sb2djbGFzcwpnZW5lcmF0aW9uOiAwCmxh\r\nc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKbG9nY2xhc3M6IExvY2FsCipTRUNU\r\nSU9OIGRiLnNpcC5zaXBfaWRzaXBzX2xvZ2NsYXNzCmdlbmVyYXRpb246IDAKbGFz\r\ndF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQpsb2djbGFzczogTG9jYWwKKlNFQ1RJ\r\nT04gZGIuc2lwLnNpcF9saWNlbnNlX2xvZ2NsYXNzCmdlbmVyYXRpb246IDAKbGFz\r\ndF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQpsb2djbGFzczogTG9jYWwKKlNFQ1RJ\r\nT04gZGIuc2lwLnNpcF9tZWRpYV9sb2djbGFzcwpnZW5lcmF0aW9uOiAwCmxhc3Rf\r\ncm93aWQ6IDEKKipST1cKcm93aWQ6IDEKbG9nY2xhc3M6IExvY2FsCipTRUNUSU9O\r\nIGRiLnNpcC5zaXBfbWVzc2FnZV9sb2djbGFzcwpnZW5lcmF0aW9uOiAwCmxhc3Rf\r\ncm93aWQ6IDEKKipST1cKcm93aWQ6IDEKbG9nY2xhc3M6IExvY2FsCipTRUNUSU9O\r\nIGRiLnNpcC5zaXBfc2lnbmFsaW5nX2xvZ2NsYXNzCmdlbmVyYXRpb246IDAKbGFz\r\ndF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQpsb2djbGFzczogTG9jYWwKKlNFQ1RJ\r\nT04gZGIuc2lwLnNpcF92ZXJib3NlX2xvZ2NsYXNzCmdlbmVyYXRpb246IDAKbGFz\r\ndF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQpsb2djbGFzczogLQoqU0VDVElPTiBk\r\nYi5zaXAuc3RfdHlwZQpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cK\r\ncm93aWQ6IDEKc3RfdHlwZTogc3RhbmRhbG9uZQoqU0VDVElPTiBkYi5zaXAuc3Ry\r\naXBfaWNlX2F0dHJpYnV0ZXMKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioq\r\nUk9XCnJvd2lkOiAxCmVuYWJsZWQ6IG9mZgoqU0VDVElPTiBkYi5zaXAuYWRkX2lj\r\nZV9jYW5kaWRhdGVzCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpy\r\nb3dpZDogMQplbmFibGVkOiBvbgoqU0VDVElPTiBkYi5zaXAuc3RyaXBfc2RwX2xp\r\nbmVzCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMAoqU0VDVElPTiBkYi5zaXAu\r\nc3Vycm91bmRpbmdzCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMAoqU0VDVElP\r\nTiBkYi5zaXAudGNwX3RpbWVvdXQKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAx\r\nCioqUk9XCnJvd2lkOiAxCnRjcF90aW1lb3V0OiA5MAoqU0VDVElPTiBkYi5zaXAu\r\ndGVsX3RvX291dGJvdW5kX3Byb3h5CmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDog\r\nMQoqKlJPVwpyb3dpZDogMQplbmFibGVkOiBvZmYKKlNFQ1RJT04gZGIuc2lwLnRl\r\nc3R1YQpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEK\r\nZGlzcGxheV9uYW1lOgp1cmk6IHNpcDp0ZXN0YWdlbnRAYW5vbnltb3VzLmludmFs\r\naWQKKlNFQ1RJT04gZGIuc2lwLnRlc3R1YV9hY2wKZ2VuZXJhdGlvbjogMApsYXN0\r\nX3Jvd2lkOiAwCipTRUNUSU9OIGRiLnNpcC50ZXN0dWFfYWN0aXZlCmdlbmVyYXRp\r\nb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQplbmFibGVkOiBvZmYK\r\nKlNFQ1RJT04gZGIuc2lwLnRlc3R1YV9jbGllbnQKZ2VuZXJhdGlvbjogMApsYXN0\r\nX3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmNhbGxfZHVyYXRpb246IDMwCmNhbGxf\r\naW50ZXJ2YWw6IDM2MDAKY2FsbF9wcmVmZXJyZWRfcHQ6IHBjbXUKY2FsbF9wdGlt\r\nZTogMjAKY2FsbF90bzoKKlNFQ1RJT04gZGIuc2lwLnRlc3R1YV9jbGllbnRfYWN0\r\naXZlCmdlbmVyYXRpb246IDAKKipST1cKcm93aWQ6IDEKZW5hYmxlZDogb2ZmCipT\r\nRUNUSU9OIGRiLnNpcC50ZXN0dWFfc2VydmVyX2FjdGl2ZQpnZW5lcmF0aW9uOiAw\r\nCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5hYmxlZDogb2ZmCipTRUNU\r\nSU9OIGRiLnNpcC50bHNfY2FjZXJ0cwpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6\r\nIDAKKlNFQ1RJT04gZGIuc2lwLnRsc19jbGllbnRfY2ZnCmdlbmVyYXRpb246IDAK\r\nbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQpkZWZhdWx0X2NlcnQ6IC0KdGxz\r\nOiBUTFN2MS54CipTRUNUSU9OIGRiLnNpcC50bHNfc2VydmVyX2NmZwpnZW5lcmF0\r\naW9uOiAwCmxhc3Rfcm93aWQ6IDAKKlNFQ1RJT04gZGIuc2lwLnRsc19zZXR0aW5n\r\ncwpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKY2hl\r\nY2tfeDUwOV9zZXJ2ZXJfc3ViamVjdDogb24KY2hlY2tfeDUwOV9zZXJ2ZXJfd2ls\r\nZGNhcmQ6IG9mZgplbmFibGVkOiBvZmYKKlNFQ1RJT04gZGIuc2lwLnRoaXJkcGNj\r\nX2NvZGVjcwpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDMKKipST1cKcm93aWQ6\r\nIDEKbnVtYmVyOiAxCm5hbWU6IFBDTVUKcHQ6CnJhdGU6CnBhcmFtczoKZm10cDoK\r\nKipST1cKcm93aWQ6IDIKbnVtYmVyOiAyCm5hbWU6IEc3MjkKcHQ6CnJhdGU6CnBh\r\ncmFtczoKZm10cDogYW5uZXhiPXllcwoqKlJPVwpyb3dpZDogMwpudW1iZXI6IDMK\r\nbmFtZTogdGVsZXBob25lLWV2ZW50CnB0OiA5NgpyYXRlOiA4MDAwCnBhcmFtczoK\r\nZm10cDogMC0xNQoqU0VDVElPTiBkYi5zaXAudHJhbnNhY3Rpb25fY29uZmlnCmdl\r\nbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQpkZWZhdWx0\r\nX3RpbWVvdXQ6IDE4MAppbnZfcnQ6IDYKbWF4X3RpbWVvdXQ6IDMwMApuaW52X3J0\r\nOiAxMAp0aW1lcl9hOiAwLjUKKlNFQ1RJT04gZGIuc2lwLnRydXN0ZWRfZG9tYWlu\r\nCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMAoqU0VDVElPTiBkYi5zaXAudWFf\r\ncmVnaXN0ZXIKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lk\r\nOiAxCmV4cGlyZXM6IDM2MDAKcmV0cnlfdGltZTogMzAwCnJlZ19yZXRyaWVzOiBv\r\nZmYKKlNFQ1RJT04gZGIuc2lwLnVyaV9lbmNvZGluZwpnZW5lcmF0aW9uOiAwCmxh\r\nc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKdHlwZTogZW5jcnlwdAoqU0VDVElP\r\nTiBkYi5zaXAudXJpX2VuY29kZV91cGRhdGVfb25fcmVmZXJfdG8KZ2VuZXJhdGlv\r\nbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmVuYWJsZWQ6IG9mZgoq\r\nU0VDVElPTiBkYi5zaXAudXNlX2NhbmNlbF9ib2R5X2luX2FjawpnZW5lcmF0aW9u\r\nOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5hYmxlZDogb2ZmCipT\r\nRUNUSU9OIGRiLnNpcC51c2VfcnRjcF9hdHRyaWJ1dGUKZ2VuZXJhdGlvbjogMAps\r\nYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmVuYWJsZWQ6IG9mZgoqU0VDVElP\r\nTiBkYi5zaXAudXNlcm5hbWVfaXNfY29uc2VjdXRpdmVfbnVtYmVycwpnZW5lcmF0\r\naW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5hYmxlZDogb2Zm\r\nCipTRUNUSU9OIGRiLnNpcC5maXhfYnllX3JvdXRlX3NldApnZW5lcmF0aW9uOiAw\r\nCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5hYmxlZDogb2ZmCipTRUNU\r\nSU9OIGRiLnNpcC5maXhfYmFkX3JvdXRlX3NldApnZW5lcmF0aW9uOiAwCmxhc3Rf\r\ncm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5hYmxlZDogb2ZmCipTRUNUSU9OIGRi\r\nLnNpcC5maW5kX2dydXVfbG9jYWxseQpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6\r\nIDEKKipST1cKcm93aWQ6IDEKZW5hYmxlZDogb2ZmCipTRUNUSU9OIGRiLnNpcC5h\r\nbHdheXNfYWRkX3BhdGgKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9X\r\nCnJvd2lkOiAxCmVuYWJsZWQ6IG9mZgoqU0VDVElPTiBkYi5zaXAudGVybWluYXRl\r\nX3RyYW5zZmVyb3Jfb25fMTgzCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoq\r\nKlJPVwpyb3dpZDogMQplbmFibGVkOiBvZmYKKlNFQ1RJT04gZGIuc2lwLmZvcmNl\r\nX2luYWN0aXZlX2hvbGQKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9X\r\nCnJvd2lkOiAxCmVuYWJsZWQ6IG9mZgoqU0VDVElPTiBkYi5zaXAuaXNfbXVsdGlw\r\nbGVfMnh4X21lZGlhCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpy\r\nb3dpZDogMQplbmFibGVkOiBvZmYKKlNFQ1RJT04gZGIuc2lwLmhpZGVfcnIKZ2Vu\r\nZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAwCipTRUNUSU9OIGRiLnNpcC5oaWRlX3Jy\r\nX2FsbApnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEK\r\nZW5hYmxlZDogb2ZmCipTRUNUSU9OIGRiLnNpcC5md19zaXBhcmF0b3JfbmF0Cmdl\r\nbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQplbmFibGVk\r\nOiBvZmYKKlNFQ1RJT04gZGIuc2lwLmIyYnVhX3JlY2VpdmVfcHJhY2sKZ2VuZXJh\r\ndGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmVuYWJsZWQ6IG9u\r\nCipTRUNUSU9OIGRiLnNpcC5iMmJ1YV9zZW5kX3ByYWNrCmdlbmVyYXRpb246IDAK\r\nbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQplbmFibGVkOiBvbgoqU0VDVElP\r\nTiBkYi5zaXAuYnBjX2F1dGgKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioq\r\nUk9XCnJvd2lkOiAxCmludGVydmFsOgptYXhfYXR0ZW1wdHM6Cm5vcmVzcDoKc2l6\r\nZTogMTI4CipTRUNUSU9OIGRiLnNpcC5zaWduYWxpbmdfYWNsCmdlbmVyYXRpb246\r\nIDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQpjbGllbnRfbmV0Z3JvdXA6\r\nIC0KKlNFQ1RJT04gZGIuc2lwLnJlcV9zYW1lX3NpZ25hbF9tZWRpYV9ncnAKZ2Vu\r\nZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmVuYWJsZWQ6\r\nIG9uCipTRUNUSU9OIGRiLnNpcC5yZWludml0ZXNfZGlzYWJsZQpnZW5lcmF0aW9u\r\nOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5hYmxlZDogb2ZmCipT\r\nRUNUSU9OIGRiLnNpcC5zdXBwb3J0ZWRfZGlzYWJsZQpnZW5lcmF0aW9uOiAwCmxh\r\nc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5hYmxlZDogb2ZmCipTRUNUSU9O\r\nIGRiLnNpcC5mb3JjZV9wdGltZQpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEK\r\nKipST1cKcm93aWQ6IDEKcHRpbWU6CipTRUNUSU9OIGRiLnNpcC5yZWdpc3Rlcl93\r\nYWl0CmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQpk\r\nZWxheToKKlNFQ1RJT04gZGIuc2lwLnJlbW92ZV9zZHBfZnJvbV8xeHgKZ2VuZXJh\r\ndGlvbjogMApsYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmVuYWJsZWQ6IG9m\r\nZgoqU0VDVElPTiBkYi5zaXAuaGlkZV9zZW5zaXRpdmUKZ2VuZXJhdGlvbjogMAps\r\nYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmVuYWJsZWQ6IG9uCipTRUNUSU9O\r\nIGRiLnNpcC5hZGRfaW5jb21pbmdfcG9ydF90b19ydXJpCmdlbmVyYXRpb246IDAK\r\nbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQplbmFibGVkOiBvZmYKKlNFQ1RJ\r\nT04gZGIuc2lwLnVzZV9lbmRwb2ludF9zZXNzaW9uX2lkCmdlbmVyYXRpb246IDAK\r\nbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dpZDogMQplbmFibGVkOiBvZmYKKlNFQ1RJ\r\nT04gZGIuc2lwLnJlc29sdmVfZG9tYWluc19pbl9zZHAKZ2VuZXJhdGlvbjogMAps\r\nYXN0X3Jvd2lkOiAxCioqUk9XCnJvd2lkOiAxCmVuYWJsZWQ6IG9mZgoqU0VDVElP\r\nTiBkYi5zaXAuY29udmVydF81eHhfdG9fNTAzCmdlbmVyYXRpb246IDAKbGFzdF9y\r\nb3dpZDogMQoqKlJPVwpyb3dpZDogMQplbmFibGVkOiBvZmYKKlNFQ1RJT04gZGIu\r\nc2lwLmFsbG93X3J0cF9iZWZvcmVfYW5zd2VyX3NkcApnZW5lcmF0aW9uOiAwCmxh\r\nc3Rfcm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5hYmxlZDogb2ZmCipTRUNUSU9O\r\nIEVPRgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAGRiL2RiLnVzZXJkYgAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDAwNjMAMDAwMDA2MwAwMDAw\r\nMDAwMDQ1NQAxMzM2MTQwMTQ0NwAwMTIyMzEAIDAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABmdWVnbwAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZ1ZWdvAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nIyBUaGlzIGZpbGUgaXMgYSBzdHJpY3QgZm9ybWF0IGNvbmZpZ3VyYXRpb24gZmls\r\nZS4KIyBFZGl0IGNhcmVmdWxseSBvciBub3QgYXQgYWxsLgoqU0VDVElPTiBkYi51\r\nc2VyZGIucmFkaXVzX2xvY2FsX2VuZHBvaW50CmdlbmVyYXRpb246IDAKbGFzdF9y\r\nb3dpZDogMQoqKlJPVwpyb3dpZDogMQpuYXNfaWRlbnRpZmllcjogCnJhZGl1c19s\r\nb2NhbF9pcDogLQp1c2VfbmFzX2lwX2FkZHJlc3M6IG9uCipTRUNUSU9OIGRiLnVz\r\nZXJkYi5yYWRpdXNfc2VydmVycwpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDAK\r\nKlNFQ1RJT04gRU9GCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkYi9kYi5pZHNpcHMAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAw\r\nMDYzADAwMDAwNjMAMDAwMDAwMDE2MzYAMTMzNjE0MDE0NDcAMDEyMjQyACAwAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAHVzdGFyICAAZnVlZ28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmdWVnbwAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAACMgVGhpcyBmaWxlIGlzIGEgc3RyaWN0IGZvcm1hdCBj\r\nb25maWd1cmF0aW9uIGZpbGUuCiMgRWRpdCBjYXJlZnVsbHkgb3Igbm90IGF0IGFs\r\nbC4KKlNFQ1RJT04gZGIuaWRzaXBzLmFjdGl2ZQpnZW5lcmF0aW9uOiAwCmxhc3Rf\r\ncm93aWQ6IDEKKipST1cKcm93aWQ6IDEKZW5hYmxlZDogb24KKlNFQ1RJT04gZGIu\r\naWRzaXBzLmxpbWl0cwpnZW5lcmF0aW9uOiAwCmxhc3Rfcm93aWQ6IDEKKipST1cK\r\ncm93aWQ6IDEKbWF4X2xvYWQ6IDgwCipTRUNUSU9OIGRiLmlkc2lwcy5wYWNrZXRf\r\nZmlsdGVyaW5nCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpyb3dp\r\nZDogMQphY3Rpb246IGRpc2NhcmQKZW5hYmxlZDogb24KbWF0Y2g6IFNjYW5uZXJz\r\nCm5hbWU6IFNjYW5uZXJzCm51bWJlcjogMQoqU0VDVElPTiBkYi5pZHNpcHMucGFj\r\na2V0X21hdGNoaW5nCmdlbmVyYXRpb246IDAKbGFzdF9yb3dpZDogMQoqKlJPVwpy\r\nb3dpZDogMQpjYXNlOiBvZmYKbWVzc2FnZTogcmVxdWVzdApuYW1lOiBTY2FubmVy\r\ncwpuZWc6IG9mZgpwYXJ0OiBoZWFkZXIKcmVnZXhwOiBVc2VyLUFnZW50Oi4qKGZy\r\naWVuZGx5LXNjYW5uZXJ8c3VuZGF5ZGRyfHNpcHZpY2lvdXN8c2lwY2xpKS4qCnNv\r\ndXJjZTogLQp0cmFuc3BvcnQ6IC0KKlNFQ1RJT04gZGIuaWRzaXBzLnJhdGVfbGlt\r\naXRpbmcKZ2VuZXJhdGlvbjogMApsYXN0X3Jvd2lkOiAyCioqUk9XCnJvd2lkOiAx\r\nCmF1dG86IG9uCmJsYWNrbGlzdDogMzAwCmNjOiBvZmYKZW5hYmxlZDogb2ZmCmhp\r\ndHM6IDUwMAptYXRjaDogLQpuYW1lOiBEZWZhdWx0IGF1dG8Kd2luZG93OiAxMAoq\r\nKlJPVwpyb3dpZDogMgphdXRvOiBvZmYKYmxhY2tsaXN0OiAzMDAKY2M6IG9mZgpl\r\nbmFibGVkOiBvZmYKaGl0czogNTAwCm1hdGNoOiAtCm5hbWU6IERlZmF1bHQgbm90\r\nIGF1dG8Kd2luZG93OiAxMAoqU0VDVElPTiBFT0YKAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\r\n-----END CONFIGURATION-DATABASE-----\r\n", + "filename": "config_2018-10-25T115310.cfg" + } + } +] diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_factory.json b/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_factory.json new file mode 100644 index 000000000..a632b46b9 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_factory.json @@ -0,0 +1,7 @@ +[ + { + "load-factory": { + "msg": "reverted the configuration to the factory configuration." + } + } +] diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_get.json b/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_get.json new file mode 100644 index 000000000..4ae518d9f --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_get.json @@ -0,0 +1,20 @@ +[ + { + "table": "misc.dns_servers", + "href": "http://10.48.28.78/api/v1/misc/dns_servers/1", + "data": { + "number": "1", + "server": "192.168.1.20" + }, + "id": 1 + }, + { + "table": "misc.dns_servers", + "href": "http://10.48.28.78/api/v1/misc/dns_servers/2", + "data": { + "number": "2", + "server": "192.168.1.30" + }, + "id": 2 + } +] diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_modify.json b/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_modify.json new file mode 100644 index 000000000..99bd4ef7b --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_modify.json @@ -0,0 +1,10 @@ +[ + { + "table": "misc.unitname", + "href": "http://10.48.28.78/api/v1/misc/unitname/1", + "data": { + "unitname": "\"Testapi - 1541699806\"" + }, + "id": 1 + } +] diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_return_rowid.json b/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_return_rowid.json new file mode 100644 index 000000000..7660873d1 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_return_rowid.json @@ -0,0 +1 @@ +[1] diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_revert.json b/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_revert.json new file mode 100644 index 000000000..c8314ab39 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_revert.json @@ -0,0 +1,7 @@ +[ + { + "revert-edits": { + "msg": "reverted the configuration to the last applied configuration." + } + } +] diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_store.json b/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_store.json new file mode 100644 index 000000000..3915eaba4 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_config_store.json @@ -0,0 +1,7 @@ +[ + { + "store-edit": { + "msg": "Successfully applied and saved the configuration." + } + } +] diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_unit_information.json b/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_unit_information.json new file mode 100644 index 000000000..dc5e451c1 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ingate_fixtures/test_ig_unit_information.json @@ -0,0 +1,21 @@ +[ + { + "unit-information": { + "lic_email": "dev@ingate.com", + "lang": "en", + "product": "Software SIParator/Firewall", + "installid": "any", + "patches": [], + "lic_mac": "any", + "unitname": "testname", + "interfaces": "eth0 eth1 eth2 eth3 eth4 eth5", + "modules": "failover vpn sip qturn ems qos rsc voipsm idsips siptrunk sipswitch", + "lic_name": "Ingate", + "macaddr": "52:54:00:4c:e2:07", + "version": "6.2.0-erik", + "systemid": "IG-200-840-5001-0", + "mode": "Firewall", + "serial": "IG-200-840-5001-0" + } + } +] diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ingate_module.py b/ansible_collections/community/network/tests/unit/plugins/modules/ingate_module.py new file mode 100644 index 000000000..9c40a11a7 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ingate_module.py @@ -0,0 +1,84 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2018, Ingate Systems AB +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os +import json + +from ansible_collections.community.network.tests.unit.plugins.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase + + +fixture_path = os.path.join(os.path.dirname(__file__), 'ingate_fixtures') +fixture_data = {} + + +def load_fixture(name): + path = os.path.join(fixture_path, name) + + if path in fixture_data: + return fixture_data[path] + + with open(path) as file_desc: + data = file_desc.read() + + try: + data = json.loads(data) + except Exception: + pass + + fixture_data[path] = data + return data + + +class TestIngateModule(ModuleTestCase): + + def execute_module(self, failed=False, changed=False, fixture=None, + command=None): + + self.load_fixtures(fixture, command, changed) + + if failed: + result = self.failed() + self.assertTrue(result['failed'], result) + else: + result = self.changed(changed) + self.assertEqual(result['changed'], changed, result) + + return result + + def failed(self): + with self.assertRaises(AnsibleFailJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertTrue(result['failed'], result) + return result + + def changed(self, changed=False): + with self.assertRaises(AnsibleExitJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertEqual(result['changed'], changed, result) + return result + + def load_fixtures(self, fixture=None, command=None, changed=False): + pass diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/dir b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/dir new file mode 100644 index 000000000..8d328d45c --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/dir @@ -0,0 +1 @@ +Directory of /flash/ diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/ironware_config_config.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/ironware_config_config.cfg new file mode 100644 index 000000000..6a509a3e0 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/ironware_config_config.cfg @@ -0,0 +1,12 @@ +! +hostname router +! +interface ethernet 1/1 + ip address 1.2.3.4 255.255.255.0 + port-name test string + enable +! +interface ethernet 1/2 + ip address 6.7.8.9 255.255.255.0 + port-name test string +! diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/ironware_config_defaults.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/ironware_config_defaults.cfg new file mode 100644 index 000000000..b60e1c941 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/ironware_config_defaults.cfg @@ -0,0 +1,13 @@ +! +hostname router +! +interface ethernet 1/1 + ip address 1.2.3.4 255.255.255.0 + port-name test string + enable +! +interface ethernet 1/2 + ip address 6.7.8.9 255.255.255.0 + port-name test string + disable +! diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/ironware_config_src.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/ironware_config_src.cfg new file mode 100644 index 000000000..1ca1d600a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/ironware_config_src.cfg @@ -0,0 +1,10 @@ +! +hostname foo +! +interface ethernet 1/1 + no ip address +! +interface ethernet 1/2 + ip address 6.7.8.9 255.255.255.0 + port-name test string +! diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_chassis b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_chassis new file mode 100644 index 000000000..05ee95111 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_chassis @@ -0,0 +1,45 @@ +*** MLXe 4-slot Chassis *** + +---POWERS --- +Power 1: (23-0000129-02 BMG2J50F014 - AC 1800W): Installed (OK) +Power 2: ( 32006000 113186101409 - AC 1200W): Installed (OK) +Power 3: not present +Power 4: not present +Total power budget for chassis = 3000 W +Total power used by system core = 450 W +Total power used by LPs = 406 W +Total power available = 2144 W +Slot Power-On Priority and Power Usage: +Slot1 pri=1 module type=NI-MLX-10Gx8-M 8-port 10GbE (M) Module power usage=246W +Slot2 pri=1 module type=BR-MLX-1GFx24-X 24-port 1GbE SFP Module power usage=160W + +--- FANS --- +Back fan A-1: Status = OK, Speed = LOW (50%) +Back fan A-2: Status = OK, Speed = LOW (50%) +Back fan B-1: Status = OK, Speed = LOW (50%) +Back fan B-2: Status = OK, Speed = LOW (50%) +Back fan C-1: Status = OK, Speed = LOW (50%) +Back fan C-2: Status = OK, Speed = LOW (50%) +Back fan D-1: Status = OK, Speed = LOW (50%) +Back fan D-2: Status = OK, Speed = LOW (50%) + +--- TEMPERATURE READINGS --- +Active Mgmt Module: 33.500C 44.375C +Standby Mgmt Module: 35.500C 47.250C +SFM1: FE1:34.625C +SFM2: FE1:37.0C +SFM3: not present +LP1 Sensor1: 37.500C +LP1 Sensor2: 38.375C +LP1 Sensor3: 34.750C +LP1 Sensor4: 33.0C +LP1 Sensor5: 39.125C +LP1 Sensor6: 39.0C +LP1 Sensor7: 43.0C +LP2 Sensor1: 47.500C +LP2 Sensor2: 43.500C +LP2 Sensor3: 38.625C +Fans are in auto mode (current speed is LOW (50%)). Temperature monitoring poll period is 60 seconds. + +--- MISC INFO --- +Backplane EEPROM MAC Address: 0024.38ae.ff00 diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_interfaces b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_interfaces new file mode 100644 index 000000000..f54e3a10b --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_interfaces @@ -0,0 +1,1053 @@ +10GigabitEthernet1/1 is down, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is 10GigabitEthernet, address is 0024.38ae.ff00 (bia 0024.38ae.ff00) + Configured speed 10Gbit, actual unknown, configured duplex fdx, actual unknown + Member of Control VLAN 4095, VLAN 4040 (untagged), port is in untagged mode, port state is Disabled + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Member of active trunk ports 1/1, primary port + Member of configured trunk ports 1/1, primary port + No port name + Port is not enabled to receive all vlan packets for pbr + Internet address is 10.69.1.6/30, MTU 9216 bytes, encapsulation ethernet + Configured BW is 10000000 kbps + Openflow: Disabled, Openflow Index 1 + Cluster L2 protocol forwarding enabled + 30 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 30 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 305252868 packets input, 43293167239 bytes, 0 no buffer + Received 75 broadcasts, 23206249 multicasts, 282046544 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 305252868 packets, Sent to TM 305252569 packets + NP Ingress dropped 299 packets + 294473220 packets output, 27084980920 bytes, 0 underruns + Transmitted 93593 broadcasts, 3157540 multicasts, 291222087 unicasts + 0 output errors, 0 collisions + NP transmitted 294473223 packets, Received from TM 294473223 packets +10GigabitEthernet1/2 is up, line protocol is up + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is 10GigabitEthernet, address is 0024.38ae.ff01 (bia 0024.38ae.ff01) + Configured speed 10Gbit, actual 10Gbit, configured duplex fdx, actual fdx + Member of Control VLAN 4095, VLAN 1 (untagged), port is in untagged mode, port state is Forwarding + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + Port name is To ces01.lab e2/1 + Port is not enabled to receive all vlan packets for pbr + Internet address is 10.69.1.77/30, MTU 9216 bytes, encapsulation ethernet + Configured BW is 10000000 kbps + Openflow: Disabled, Openflow Index 2 + Cluster L2 protocol forwarding enabled + 30 second input rate: 1316 bits/sec, 1 packets/sec, 0.00% utilization + 30 second output rate: 529 bits/sec, 0 packets/sec, 0.00% utilization + 28253040 packets input, 3837442974 bytes, 0 no buffer + Received 36030 broadcasts, 1176576 multicasts, 27040434 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 28253040 packets, Sent to TM 28252946 packets + NP Ingress dropped 94 packets + 38399732 packets output, 4357868636 bytes, 0 underruns + Transmitted 36067 broadcasts, 1676300 multicasts, 36687365 unicasts + 0 output errors, 0 collisions + NP transmitted 38399732 packets, Received from TM 38399732 packets +10GigabitEthernet1/3 is down, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is 10GigabitEthernet, address is 0024.38ae.ff02 (bia 0024.38ae.ff02) + Configured speed 10Gbit, actual unknown, configured duplex fdx, actual unknown + Member of Control VLAN 4095, VLAN 1 (untagged), port is in untagged mode, port state is Disabled + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + Port name is To ces02.lab e2/1 + Port is not enabled to receive all vlan packets for pbr + Internet address is 10.69.1.73/30, MTU 9216 bytes, encapsulation ethernet + Configured BW is 10000000 kbps + Openflow: Disabled, Openflow Index 3 + Cluster L2 protocol forwarding enabled + 30 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 30 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 4586556 packets input, 412859576 bytes, 0 no buffer + Received 10388 broadcasts, 326374 multicasts, 4249794 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 4586556 packets, Sent to TM 4586556 packets + NP Ingress dropped 0 packets + 4913588 packets output, 475340051 bytes, 0 underruns + Transmitted 10390 broadcasts, 326389 multicasts, 4576809 unicasts + 0 output errors, 0 collisions + NP transmitted 4913590 packets, Received from TM 4913590 packets +10GigabitEthernet1/4 is down, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is 10GigabitEthernet, address is 0024.38ae.ff03 (bia 0024.38ae.ff03) + Configured speed 10Gbit, actual unknown, configured duplex fdx, actual unknown + Member of Control VLAN 4095, VLAN 1 (untagged), port is in untagged mode, port state is Disabled + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Enabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 10000000 kbps + Openflow: Disabled, Openflow Index 4 + Cluster L2 protocol forwarding enabled + 300 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 895100 packets input, 98673879 bytes, 0 no buffer + Received 141 broadcasts, 522145 multicasts, 372814 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 895100 packets, Sent to TM 895074 packets + NP Ingress dropped 26 packets + 279669 packets output, 27849215 bytes, 0 underruns + Transmitted 7104 broadcasts, 17011 multicasts, 255554 unicasts + 0 output errors, 0 collisions + NP transmitted 279669 packets, Received from TM 779636 packets +10GigabitEthernet1/5 is disabled, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is 10GigabitEthernet, address is 0024.38ae.ff04 (bia 0024.38ae.ff04) + Configured speed 10Gbit, actual unknown, configured duplex fdx, actual unknown + Member of Control VLAN 4095, VLAN 1 (untagged), port is in untagged mode, port state is Disabled + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 10000000 kbps + Openflow: Disabled, Openflow Index 5 + Cluster L2 protocol forwarding enabled + 300 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 0 packets input, 0 bytes, 0 no buffer + Received 0 broadcasts, 0 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 0 packets, Sent to TM 0 packets + NP Ingress dropped 0 packets + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 0 packets, Received from TM 0 packets +10GigabitEthernet1/6 is disabled, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is 10GigabitEthernet, address is 0024.38ae.ff05 (bia 0024.38ae.ff05) + Configured speed 10Gbit, actual unknown, configured duplex fdx, actual unknown + Member of Control VLAN 4095, VLAN 1 (untagged), port is in untagged mode, port state is Disabled + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 10000000 kbps + Openflow: Disabled, Openflow Index 6 + Cluster L2 protocol forwarding enabled + 300 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 0 packets input, 0 bytes, 0 no buffer + Received 0 broadcasts, 0 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 0 packets, Sent to TM 0 packets + NP Ingress dropped 0 packets + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 0 packets, Received from TM 0 packets +10GigabitEthernet1/7 is disabled, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is 10GigabitEthernet, address is 0024.38ae.ff06 (bia 0024.38ae.ff06) + Configured speed 10Gbit, actual unknown, configured duplex fdx, actual unknown + Member of Control VLAN 4095, VLAN 1 (untagged), port is in untagged mode, port state is Disabled + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 10000000 kbps + Openflow: Disabled, Openflow Index 7 + Cluster L2 protocol forwarding enabled + 300 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 0 packets input, 0 bytes, 0 no buffer + Received 0 broadcasts, 0 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 0 packets, Sent to TM 0 packets + NP Ingress dropped 0 packets + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 0 packets, Received from TM 0 packets +10GigabitEthernet1/8 is disabled, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is 10GigabitEthernet, address is 0024.38ae.ff07 (bia 0024.38ae.ff07) + Configured speed 10Gbit, actual unknown, configured duplex fdx, actual unknown + Member of Control VLAN 4095, VLAN 1 (untagged), port is in untagged mode, port state is Disabled + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 10000000 kbps + Openflow: Disabled, Openflow Index 8 + Cluster L2 protocol forwarding enabled + 300 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 0 packets input, 0 bytes, 0 no buffer + Received 0 broadcasts, 0 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 0 packets, Sent to TM 0 packets + NP Ingress dropped 0 packets + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 0 packets, Received from TM 0 packets +GigabitEthernet2/1 is up, line protocol is up + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is GigabitEthernet, address is 0024.38ae.ff30 (bia 0024.38ae.ff30) + Configured fiber speed auto, configured copper speed auto, actual 1Gbit, configured fiber duplex fdx, configured copper duplex fdx, actual fdx + Member of Control VLAN 4095, 5 L2 VLAN(S) (tagged), port is in tagged mode, port state is Forwarding + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor enabled (input and output) + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 1000000 kbps + Openflow: Disabled, Openflow Index 49 + Cluster L2 protocol forwarding enabled + 300 second input rate: 195 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 34 bits/sec, 0 packets/sec, 0.00% utilization + 132989 packets input, 46356032 bytes, 0 no buffer + Received 6505 broadcasts, 126484 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 132988 packets, Sent to TM 54470 packets + NP Ingress dropped 78518 packets + 54203 packets output, 7100593 bytes, 0 underruns + Transmitted 0 broadcasts, 54203 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 54203 packets, Received from TM 54203 packets +GigabitEthernet2/2 is up, line protocol is up + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is GigabitEthernet, address is 0024.38ae.ff31 (bia 0024.38ae.ff31) + Configured fiber speed auto, configured copper speed auto, actual 1Gbit, configured fiber duplex fdx, configured copper duplex fdx, actual fdx + Member of Control VLAN 4095, VLAN 1 (untagged), port is in untagged mode, port state is Forwarding + STP configured to OFF, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + Port name is To MikroTik-04 - ether1 - 10.69.5.44 + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 1000000 kbps + Openflow: Disabled, Openflow Index 50 + Cluster L2 protocol forwarding enabled + 30 second input rate: 65 bits/sec, 0 packets/sec, 0.00% utilization + 30 second output rate: 844 bits/sec, 0 packets/sec, 0.00% utilization + 486528 packets input, 60646920 bytes, 0 no buffer + Received 94393 broadcasts, 377560 multicasts, 14575 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 486504 packets, Sent to TM 475558 packets + NP Ingress dropped 10946 packets + 1451686 packets output, 152474031 bytes, 0 underruns + Transmitted 92204 broadcasts, 1344911 multicasts, 14571 unicasts + 0 output errors, 0 collisions + NP transmitted 1451686 packets, Received from TM 1451686 packets +GigabitEthernet2/3 is disabled, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is GigabitEthernet, address is 0024.38ae.ff32 (bia 0024.38ae.ff32) + Configured fiber speed auto, configured copper speed auto, actual unknown, configured fiber duplex fdx, configured copper duplex fdx, actual unknown + Member of Control VLAN 4095, VLAN 1 (untagged), port is in untagged mode, port state is Disabled + STP configured to OFF, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 1000000 kbps + Openflow: Disabled, Openflow Index 51 + Cluster L2 protocol forwarding enabled + 30 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 30 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 0 packets input, 0 bytes, 0 no buffer + Received 0 broadcasts, 0 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 0 packets, Sent to TM 0 packets + NP Ingress dropped 0 packets + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 0 packets, Received from TM 0 packets +GigabitEthernet2/4 is down, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is GigabitEthernet, address is 0024.38ae.ff33 (bia 0024.38ae.ff33) + Configured fiber speed auto, configured copper speed auto, actual unknown, configured fiber duplex fdx, configured copper duplex fdx, actual unknown + Member of Control VLAN 4095, VLAN 5 (untagged), 1 L2 VLANS (tagged), + port is in dual mode, port state is Disabled + STP configured to OFF, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + Port name is CANCELLATION TEST + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 1000000 kbps + Openflow: Disabled, Openflow Index 52 + Cluster L2 protocol forwarding enabled + 30 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 30 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 0 packets input, 0 bytes, 0 no buffer + Received 0 broadcasts, 0 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 0 packets, Sent to TM 0 packets + NP Ingress dropped 0 packets + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 0 packets, Received from TM 0 packets +GigabitEthernet2/5 is disabled, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is GigabitEthernet, address is 0024.38ae.ff34 (bia 0024.38ae.ff34) + Configured fiber speed auto, configured copper speed auto, actual unknown, configured fiber duplex fdx, configured copper duplex fdx, actual unknown + Member of Control VLAN 4095, 1 L2 VLAN(S) (tagged), port is in tagged mode, port state is Disabled + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 1000000 kbps + Openflow: Disabled, Openflow Index 53 + Cluster L2 protocol forwarding enabled + 300 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 0 packets input, 0 bytes, 0 no buffer + Received 0 broadcasts, 0 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 0 packets, Sent to TM 0 packets + NP Ingress dropped 0 packets + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 0 packets, Received from TM 0 packets +GigabitEthernet2/6 is disabled, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is GigabitEthernet, address is 0024.38ae.ff35 (bia 0024.38ae.ff35) + Configured fiber speed auto, configured copper speed auto, actual unknown, configured fiber duplex fdx, configured copper duplex fdx, actual unknown + Member of Control VLAN 4095, 1 L2 VLAN(S) (tagged), port is in tagged mode, port state is Disabled + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 1000000 kbps + Openflow: Disabled, Openflow Index 54 + Cluster L2 protocol forwarding enabled + 300 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 0 packets input, 0 bytes, 0 no buffer + Received 0 broadcasts, 0 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 0 packets, Sent to TM 0 packets + NP Ingress dropped 0 packets + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 0 packets, Received from TM 0 packets +GigabitEthernet2/7 is disabled, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is GigabitEthernet, address is 0024.38ae.ff36 (bia 0024.38ae.ff36) + Configured fiber speed auto, configured copper speed auto, actual unknown, configured fiber duplex fdx, configured copper duplex fdx, actual unknown + Member of Control VLAN 4095, VLAN 6 (untagged), port is in untagged mode, port state is Disabled + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 1000000 kbps + Openflow: Disabled, Openflow Index 55 + Cluster L2 protocol forwarding enabled + 300 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 0 packets input, 0 bytes, 0 no buffer + Received 0 broadcasts, 0 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 0 packets, Sent to TM 0 packets + NP Ingress dropped 0 packets + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 0 packets, Received from TM 0 packets +GigabitEthernet2/8 is disabled, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is GigabitEthernet, address is 0024.38ae.ff37 (bia 0024.38ae.ff37) + Configured fiber speed auto, configured copper speed auto, actual unknown, configured fiber duplex fdx, configured copper duplex fdx, actual unknown + Member of Control VLAN 4095, VLAN 1 (untagged), port is in untagged mode, port state is Disabled + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 1000000 kbps + Openflow: Disabled, Openflow Index 56 + Cluster L2 protocol forwarding enabled + 300 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 0 packets input, 0 bytes, 0 no buffer + Received 0 broadcasts, 0 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 0 packets, Sent to TM 0 packets + NP Ingress dropped 0 packets + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 0 packets, Received from TM 0 packets +GigabitEthernet2/9 is disabled, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is GigabitEthernet, address is 0024.38ae.ff38 (bia 0024.38ae.ff38) + Configured fiber speed auto, configured copper speed auto, actual unknown, configured fiber duplex fdx, configured copper duplex fdx, actual unknown + Member of Control VLAN 4095, 1 L2 VLAN(S) (tagged), port is in tagged mode, port state is Disabled + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 1000000 kbps + Openflow: Disabled, Openflow Index 57 + Cluster L2 protocol forwarding enabled + 300 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 0 packets input, 0 bytes, 0 no buffer + Received 0 broadcasts, 0 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 0 packets, Sent to TM 0 packets + NP Ingress dropped 0 packets + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 0 packets, Received from TM 0 packets +GigabitEthernet2/10 is disabled, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is GigabitEthernet, address is 0024.38ae.ff39 (bia 0024.38ae.ff39) + Configured fiber speed auto, configured copper speed auto, actual unknown, configured fiber duplex fdx, configured copper duplex fdx, actual unknown + Member of Control VLAN 4095, VLAN 1 (untagged), port is in untagged mode, port state is Disabled + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 1000000 kbps + Openflow: Disabled, Openflow Index 58 + Cluster L2 protocol forwarding enabled + 300 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 0 packets input, 0 bytes, 0 no buffer + Received 0 broadcasts, 0 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 0 packets, Sent to TM 0 packets + NP Ingress dropped 0 packets + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 0 packets, Received from TM 0 packets +GigabitEthernet2/11 is disabled, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is GigabitEthernet, address is 0024.38ae.ff3a (bia 0024.38ae.ff3a) + Configured fiber speed auto, configured copper speed auto, actual unknown, configured fiber duplex fdx, configured copper duplex fdx, actual unknown + Member of Control VLAN 4095, VLAN 1 (untagged), port is in untagged mode, port state is Disabled + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 1000000 kbps + Openflow: Disabled, Openflow Index 59 + Cluster L2 protocol forwarding enabled + 300 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 0 packets input, 0 bytes, 0 no buffer + Received 0 broadcasts, 0 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 0 packets, Sent to TM 0 packets + NP Ingress dropped 0 packets + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 0 packets, Received from TM 0 packets +GigabitEthernet2/12 is disabled, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is GigabitEthernet, address is 0024.38ae.ff3b (bia 0024.38ae.ff3b) + Configured fiber speed auto, configured copper speed auto, actual unknown, configured fiber duplex fdx, configured copper duplex fdx, actual unknown + Member of Control VLAN 4095, VLAN 1 (untagged), port is in untagged mode, port state is Disabled + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 1000000 kbps + Openflow: Disabled, Openflow Index 60 + Cluster L2 protocol forwarding enabled + 300 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 0 packets input, 0 bytes, 0 no buffer + Received 0 broadcasts, 0 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 0 packets, Sent to TM 0 packets + NP Ingress dropped 0 packets + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 0 packets, Received from TM 0 packets +GigabitEthernet2/13 is down, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is GigabitEthernet, address is 0024.38ae.ff3c (bia 0024.38ae.ff3c) + Configured fiber speed auto, configured copper speed auto, actual unknown, configured fiber duplex fdx, configured copper duplex fdx, actual unknown + Member of Control VLAN 4095, VLAN 1 (untagged), port is in untagged mode, port state is Disabled + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 1000000 kbps + Openflow: Disabled, Openflow Index 61 + Cluster L2 protocol forwarding enabled + 30 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 30 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 0 packets input, 0 bytes, 0 no buffer + Received 0 broadcasts, 0 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 0 packets, Sent to TM 0 packets + NP Ingress dropped 0 packets + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 0 packets, Received from TM 0 packets +GigabitEthernet2/14 is disabled, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is GigabitEthernet, address is 0024.38ae.ff3d (bia 0024.38ae.ff3d) + Configured fiber speed auto, configured copper speed auto, actual unknown, configured fiber duplex fdx, configured copper duplex fdx, actual unknown + Member of Control VLAN 4095, VLAN 1 (untagged), port is in untagged mode, port state is Disabled + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 1000000 kbps + Openflow: Disabled, Openflow Index 62 + Cluster L2 protocol forwarding enabled + 300 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 0 packets input, 0 bytes, 0 no buffer + Received 0 broadcasts, 0 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 0 packets, Sent to TM 0 packets + NP Ingress dropped 0 packets + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 0 packets, Received from TM 0 packets +GigabitEthernet2/15 is disabled, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is GigabitEthernet, address is 0024.38ae.ff3e (bia 0024.38ae.ff3e) + Configured fiber speed auto, configured copper speed auto, actual unknown, configured fiber duplex fdx, configured copper duplex fdx, actual unknown + Member of Control VLAN 4095, VLAN 1 (untagged), port is in untagged mode, port state is Disabled + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 1000000 kbps + Openflow: Disabled, Openflow Index 63 + Cluster L2 protocol forwarding enabled + 300 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 0 packets input, 0 bytes, 0 no buffer + Received 0 broadcasts, 0 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 0 packets, Sent to TM 0 packets + NP Ingress dropped 0 packets + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 0 packets, Received from TM 0 packets +GigabitEthernet2/16 is disabled, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is GigabitEthernet, address is 0024.38ae.ff3f (bia 0024.38ae.ff3f) + Configured fiber speed auto, configured copper speed auto, actual unknown, configured fiber duplex fdx, configured copper duplex fdx, actual unknown + Member of Control VLAN 4095, VLAN 1 (untagged), port is in untagged mode, port state is Disabled + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 1000000 kbps + Openflow: Disabled, Openflow Index 64 + Cluster L2 protocol forwarding enabled + 300 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 0 packets input, 0 bytes, 0 no buffer + Received 0 broadcasts, 0 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 0 packets, Sent to TM 0 packets + NP Ingress dropped 0 packets + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 0 packets, Received from TM 0 packets +GigabitEthernet2/17 is disabled, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is GigabitEthernet, address is 0024.38ae.ff40 (bia 0024.38ae.ff40) + Configured fiber speed auto, configured copper speed auto, actual unknown, configured fiber duplex fdx, configured copper duplex fdx, actual unknown + Member of Control VLAN 4095, VLAN 1 (untagged), port is in untagged mode, port state is Disabled + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 1000000 kbps + Openflow: Disabled, Openflow Index 65 + Cluster L2 protocol forwarding enabled + 300 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 0 packets input, 0 bytes, 0 no buffer + Received 0 broadcasts, 0 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 0 packets, Sent to TM 0 packets + NP Ingress dropped 0 packets + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 0 packets, Received from TM 0 packets +GigabitEthernet2/18 is disabled, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is GigabitEthernet, address is 0024.38ae.ff41 (bia 0024.38ae.ff41) + Configured fiber speed auto, configured copper speed auto, actual unknown, configured fiber duplex fdx, configured copper duplex fdx, actual unknown + Member of Control VLAN 4095, VLAN 1 (untagged), port is in untagged mode, port state is Disabled + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 1000000 kbps + Openflow: Disabled, Openflow Index 66 + Cluster L2 protocol forwarding enabled + 300 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 0 packets input, 0 bytes, 0 no buffer + Received 0 broadcasts, 0 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 0 packets, Sent to TM 0 packets + NP Ingress dropped 0 packets + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 0 packets, Received from TM 0 packets +GigabitEthernet2/19 is disabled, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is GigabitEthernet, address is 0024.38ae.ff42 (bia 0024.38ae.ff42) + Configured fiber speed auto, configured copper speed auto, actual unknown, configured fiber duplex fdx, configured copper duplex fdx, actual unknown + Member of Control VLAN 4095, VLAN 1 (untagged), port is in untagged mode, port state is Disabled + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 1000000 kbps + Openflow: Disabled, Openflow Index 67 + Cluster L2 protocol forwarding enabled + 300 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 0 packets input, 0 bytes, 0 no buffer + Received 0 broadcasts, 0 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 0 packets, Sent to TM 0 packets + NP Ingress dropped 0 packets + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 0 packets, Received from TM 0 packets +GigabitEthernet2/20 is up, line protocol is up + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is GigabitEthernet, address is 0024.38ae.ff43 (bia 0024.38ae.ff43) + Configured fiber speed auto, configured copper speed auto, actual 1Gbit, configured fiber duplex fdx, configured copper duplex fdx, actual fdx + Member of Control VLAN 4095, VLAN 1 (untagged), port is in untagged mode, port state is Forwarding + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror enabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 1000000 kbps + Openflow: Disabled, Openflow Index 68 + Cluster L2 protocol forwarding enabled + 300 second input rate: 35 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 168 bits/sec, 0 packets/sec, 0.00% utilization + 54203 packets input, 7154796 bytes, 0 no buffer + Received 0 broadcasts, 54203 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 54203 packets, Sent to TM 54203 packets + NP Ingress dropped 0 packets + 162876 packets output, 34244811 bytes, 0 underruns + Transmitted 0 broadcasts, 162876 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 162876 packets, Received from TM 162876 packets +GigabitEthernet2/21 is up, line protocol is up + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is GigabitEthernet, address is 0024.38ae.ff44 (bia 0024.38ae.ff44) + Configured fiber speed auto, configured copper speed auto, actual 1Gbit, configured fiber duplex fdx, configured copper duplex fdx, actual fdx + Member of Control VLAN 4095, VLAN 1 (untagged), port is in untagged mode, port state is Forwarding + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 1000000 kbps + Openflow: Disabled, Openflow Index 69 + Cluster L2 protocol forwarding enabled + 300 second input rate: 168 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 35 bits/sec, 0 packets/sec, 0.00% utilization + 162876 packets input, 34244811 bytes, 0 no buffer + Received 0 broadcasts, 162876 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 162876 packets, Sent to TM 162876 packets + NP Ingress dropped 0 packets + 54203 packets output, 7154796 bytes, 0 underruns + Transmitted 0 broadcasts, 54203 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 54203 packets, Received from TM 54203 packets +GigabitEthernet2/22 is disabled, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is GigabitEthernet, address is 0024.38ae.ff45 (bia 0024.38ae.ff45) + Configured fiber speed auto, configured copper speed auto, actual unknown, configured fiber duplex fdx, configured copper duplex fdx, actual unknown + Member of Control VLAN 4095, VLAN 1 (untagged), port is in untagged mode, port state is Disabled + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 1000000 kbps + Openflow: Disabled, Openflow Index 70 + Cluster L2 protocol forwarding enabled + 300 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 0 packets input, 0 bytes, 0 no buffer + Received 0 broadcasts, 0 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 0 packets, Sent to TM 0 packets + NP Ingress dropped 0 packets + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 0 packets, Received from TM 0 packets +GigabitEthernet2/23 is disabled, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is GigabitEthernet, address is 0024.38ae.ff46 (bia 0024.38ae.ff46) + Configured fiber speed auto, configured copper speed auto, actual unknown, configured fiber duplex fdx, configured copper duplex fdx, actual unknown + Member of Control VLAN 4095, VLAN 1 (untagged), port is in untagged mode, port state is Disabled + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 1000000 kbps + Openflow: Disabled, Openflow Index 71 + Cluster L2 protocol forwarding enabled + 300 second input rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 0 packets input, 0 bytes, 0 no buffer + Received 0 broadcasts, 0 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 0 packets, Sent to TM 0 packets + NP Ingress dropped 0 packets + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 0 packets, Received from TM 0 packets +GigabitEthernet2/24 is up, line protocol is up + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is GigabitEthernet, address is 0024.38ae.ff47 (bia 0024.38ae.ff47) + Configured fiber speed auto, configured copper speed auto, actual 1Gbit, configured fiber duplex fdx, configured copper duplex fdx, actual fdx + Member of Control VLAN 4095, VLAN 1 (untagged), port is in untagged mode, port state is Forwarding + STP configured to ON, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + mirror disabled, monitor disabled + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 9216 bytes, encapsulation ethernet + Configured BW is 1000000 kbps + Openflow: Disabled, Openflow Index 72 + Cluster L2 protocol forwarding enabled + 300 second input rate: 194 bits/sec, 0 packets/sec, 0.00% utilization + 300 second output rate: 35 bits/sec, 0 packets/sec, 0.00% utilization + 586851 packets input, 45550574 bytes, 0 no buffer + Received 523921 broadcasts, 62930 multicasts, 0 unicasts + 0 input errors, 0 CRC, 0 frame, 0 ignored + 0 runts, 0 giants + NP received 586839 packets, Sent to TM 586839 packets + NP Ingress dropped 0 packets + 54203 packets output, 7154796 bytes, 0 underruns + Transmitted 0 broadcasts, 54203 multicasts, 0 unicasts + 0 output errors, 0 collisions + NP transmitted 54203 packets, Received from TM 54203 packets +Ethernetmgmt1 is disabled, line protocol is down + Loopback: None + STP Root Guard is disabled, STP BPDU Guard is disabled + Hardware is Ethernet, address is 0024.38ae.ff00 (bia 0024.38ae.ff00) + Configured speed 1Gbit, actual unknown, configured duplex fdx, actual unknown + Member of VLAN 0 (untagged), port is in untagged mode, port state is Disabled + STP configured to OFF, Priority is level0, flow control enabled + Priority force disabled, Drop precedence level 0, Drop precedence force disabled + dhcp-snooping-trust configured to OFF + LACP BPDU Forwarding:Disabled + LLDP BPDU Forwarding:Disabled + Not member of any active trunks + Not member of any configured trunks + No port name + Port is not enabled to receive all vlan packets for pbr + MTU 1548 bytes, encapsulation ethernet + Openflow: Disabled, Openflow Index 1537 + Cluster L2 protocol forwarding disabled + 300 second input rate: 1136 bits/sec, 1 packets/sec, 0.00% utilization + 300 second output rate: 0 bits/sec, 0 packets/sec, 0.00% utilization + 33204752 packets input, 2448695549 bytes, 0 no buffer + Received 1788642 broadcasts, 29469988 multicasts, 1946122 unicasts + 0 packets output, 0 bytes, 0 underruns + Transmitted 0 broadcasts, 0 multicasts, 0 unicasts +Loopback1 is up, line protocol is up + Hardware is Loopback + No port name + Internet address is 10.69.0.6/32, IP MTU 1500 bytes, encapsulation LOOPBACK diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_ipv6_interface b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_ipv6_interface new file mode 100644 index 000000000..51e293b75 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_ipv6_interface @@ -0,0 +1,5 @@ +Type Codes - I:ISIS O:OSPF R:RIP +Interface Status/Protocol IGPs IPv6 Address VRF +eth 1/1 up/up fe80::224:38ff:feae:ff00 default-vrf + 2001:db8::1/64 + 2001:db8::/64[Anycast] diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_lldp_neighbors b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_lldp_neighbors new file mode 100644 index 000000000..3958a555a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_lldp_neighbors @@ -0,0 +1,3 @@ +Total number of LLDP neighbors on all ports: 6 +Lcl Port Chassis ID Port ID Port Description System Name +1/2 748e.f863.3600 748e.f863.3631 10GigabitEthernet2/1 ces01.lab diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_memory b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_memory new file mode 100644 index 000000000..5a7a84af4 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_memory @@ -0,0 +1,30 @@ +==================================================================== +NetIron MLX active MP slot 5: +Total SDRAM : 4294967295 bytes +Available Memory : 3806097408 bytes +Available Memory (%): 88 percent +Free Physical Pages : 925008 pages + +Malloc statistics: total 633606628 +OS malloc count: 2437418082 +OS malloc fail: 0 +OS free count: 2437404486 +OS free fail: 0 +diff: 13596 +==================================================================== +NetIron MLX standby MP slot 6: +Total SDRAM : 4294967295 bytes +Available Memory : 3784171520 bytes +Available Memory (%): 88 percent +Free Physical Pages : 917843 pages + +==================================================================== +NetIron MLX LP SL 1: +Total SDRAM : 1073741824 bytes +Available Memory : 485294080 bytes +Available Memory (%): 45 percent +==================================================================== +NetIron MLX LP SL 2: +Total SDRAM : 1073741824 bytes +Available Memory : 561364992 bytes +Available Memory (%): 52 percent diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_mpls_lsp_detail b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_mpls_lsp_detail new file mode 100644 index 000000000..7f2e7de94 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_mpls_lsp_detail @@ -0,0 +1,32 @@ +LSP LSP1, to 192.0.2.1 + From: (n/a), admin: DOWN, status: DOWN + revert timer: 300 seconds + Times primary LSP goes up since enabled: 1 + Metric: 0, Adaptive + Maximum retries: NONE, no. of retries: 0 + Pri. path: NONE, up: no, active: no + Setup priority: 7, hold priority: 0, cos 1 + Max rate: 0 kbps, mean rate: 0 kbps, max burst: 0 bytes + CSPF-computation-mode configured: use te-metric(global) + ReoptimizeTimer configured 1800 + Tie breaking: random, hop limit: 0 + LDP tunneling enabled: yes + Soft preemption enabled: no + Active Path attributes: + Fast Reroute: facility backup desired, node protection desired + Backup LSP: DOWN + Global revertiveness enabled with hold time 5 secs + FRR Forwarding State: Pri(down), Backup(down) +LSP LSP3, to 192.0.2.3 + From: (n/a), admin: DOWN, status: DOWN + Times primary LSP goes up since enabled: 0 + Metric: 0 + Maximum retries: NONE, no. of retries: 0 + Pri. path: NONE, up: no, active: no + Setup priority: 7, hold priority: 0 + Max rate: 0 kbps, mean rate: 0 kbps, max burst: 0 bytes + CSPF-computation-mode configured: use te-metric(global) + Tie breaking: random, hop limit: 0 + LDP tunneling enabled: no + Soft preemption enabled: no + Active Path attributes: diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_mpls_vll-local_detail b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_mpls_vll-local_detail new file mode 100644 index 000000000..d4a3b918e --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_mpls_vll-local_detail @@ -0,0 +1,7 @@ +VLL TEST-LOCAL VLL-ID 1 IFL-ID -- + State: DOWN - endpoint port is down + End-point 1: untagged e 2/8 + COS: -- + End-point 2: tagged vlan 5 e 2/9 + COS: -- + Extended Counters: Enabled diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_mpls_vll_detail b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_mpls_vll_detail new file mode 100644 index 000000000..e010042e9 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_mpls_vll_detail @@ -0,0 +1,19 @@ +VLL TEST-VLL, VC-ID 111, VLL-INDEX 4 + + End-point : tagged vlan 2005 e 2/1 + End-Point state : Up + MCT state : None + IFL-ID : -- + Local VC type : untag + Local VC MTU : 9190 + COS : 1 + Extended Counters: Enabled + + Vll-Peer : 192.0.2.1 + State : DOWN - PW is Down (Reason:Wait for peer label) + Remote VC type : -- Remote VC MTU : -- + Local label : -- Remote label : -- + Local group-id : 0 Remote group-id: -- + Tunnel LSP : lsp1 (tnl1) + MCT Status TLV : -- + LSPs assigned : No LSPs assigned diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_mpls_vpls_detail b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_mpls_vpls_detail new file mode 100644 index 000000000..33fa9414b --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_mpls_vpls_detail @@ -0,0 +1,21 @@ +VPLS TEST-VPLS, Id 333, Max mac entries: 2048 + Total vlans: 2, Tagged ports: 2 (0 Up), Untagged ports 2 (0 Up) + IFL-ID: n/a + Vlan 5 + L2 Protocol: NONE + Untagged: ethe 2/4 + Vlan 6 + L2 Protocol: NONE + Tagged: ethe 2/5 to 2/6 + Untagged: ethe 2/7 + VC-Mode: Raw + Total VPLS peers: 1 (0 Operational) + Peer address: 192.0.2.3, State: Wait for functional local ports + Tnnl in use: tnl1(3)[RSVP] Peer Index:0 + Local VC lbl: N/A, Remote VC lbl: N/A + Local VC MTU: 9190, Remote VC MTU: 0 + Local VC-Type: Ethernet(0x05), Remote VC-Type: UNKNOWN + CPU-Protection: OFF + Local Switching: Enabled + Extended Counter: ON + Multicast Snooping: Disabled diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_running-config b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_running-config new file mode 100644 index 000000000..de2d82609 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_running-config @@ -0,0 +1,291 @@ +!Current configuration: +! +ver V5.8.0fT163 +module 1 ni-mlx-8-port-10g-m +module 2 br-mlx-24-port-1gf-x +! +! +mirror ethernet 2/20 +! +lag "LAG" dynamic id 3 + ports ethernet 1/1 + primary-port 1/1 + lacp-timeout short + deploy +! +! +! + +! +no spanning-tree +! +! +vlan 1 name DEFAULT-VLAN + no untagged ethe 2/1 to 2/2 ethe 2/4 to 2/9 +! +vlan 150 +! +vlan 666 name LACP_ISOLATION_CUSTOMER +! +vlan 1000 +! +vlan 2007 + tagged ethe 2/1 +! +vlan 4040 + untagged ethe 1/1 +! + +! +! +qos-mapping +! +default-max-frame-size 9216 +cpu-usage on +aaa authentication login default tacacs+ local enable +tacacs-server host 192.0.2.5 +tacacs-server key 2 $X3FSZjgzKGzPIXVd +! +! +enable password-display +enable super-user-password 8 $1$WV1..Pi2$B6acbjDxeHsof2BKrpyqQ0 +enable aaa console +logging host 192.0.2.5 +logging facility local7 +logging buffered 5000 +logging console +username admin password 8 $1$MF/..XD4$MYUy7kcm/1eAuqXnVyvVO1 +username admin history $1$MF/..XD4$MYUy7kcm/1eAuqXnVyvVO1 $1$KE/..Cs2$WlfErdta9.sG9v5QmbaTd/ +! +tag-type 9100 ethe 1/4 +tag-type 9100 ethe 2/2 +tag-type 9100 ethe 2/24 +! +! +! +! +! +! +! +! +! +! +! +! +! +! +! +! +! +snmp-server +snmp-server community 2 $YkAtaSs/fFE6Sz97 ro +snmp-server max-ifindex-per-module 64 +snmp-server cache size 128 +hostname mlx01.lab +no transceiver-type-check +! +netconf server +! +router isis + net 49.0001.0100.6900.0006.00 + fast-flood 4 + no hello padding + is-type level-2 + log adjacency + address-family ipv4 unicast + metric-style wide + redistribute connected + exit-address-family + + address-family ipv6 unicast + no adjacency-check + exit-address-family + +! +! +! +! +! +qos-policy +! +policy-map CUST-100Mb + cir 99992032 cbs 3125000 +! +policy-map core-to-core-interface +! +! +hqos scheduler-policy core-to-core-interface-4.2G level level-0 + shaper-rate 4193280 + shaper-burst-size 256 + scheduler-type strict +! +! +! +hqos scheduler-policy P5 level level-1 + shaper-rate 10000000 + shaper-burst-size 10 + scheduler-type strict +! +! +! +! +interface loopback 1 + ip address 10.69.0.6/32 + no ip redirect +! +! +interface ethernet 1/1 + enable + load-interval 30 + bfd interval 100 min-rx 100 multiplier 5 + ip router isis + ip address 10.69.1.6/30 + ip mtu 9198 + ipv6 address 2001:db8::1/64 + isis bfd + isis circuit-type level-2 + isis metric 500 + isis point-to-point +! +interface ethernet 1/2 + port-name foo + enable + load-interval 30 + bfd interval 100 min-rx 100 multiplier 5 + ip router isis + ip address 10.69.1.77/30 + ip mtu 9198 + isis circuit-type level-2 + isis ipv6 metric 250 + isis point-to-point +! +interface ethernet 1/3 +enable +forward-lacp +! +interface ethernet 1/4 + enable + forward-lacp +! +interface ethernet 2/1 + enable + mon ethernet 2/20 both +! +interface ethernet 2/2 + enable + load-interval 30 + rate-limit input broadcast unknown-unicast multicast 521216 64000 + no spanning-tree +! +interface ethernet 2/3 + load-interval 30 + rate-limit input broadcast unknown-unicast multicast 521216 64000 + no fdp enable + no cdp enable + no spanning-tree +! +interface ethernet 2/4 + enable + load-interval 30 + rate-limit input broadcast unknown-unicast multicast 521216 64000 + no fdp enable + no cdp enable + no spanning-tree +! +interface ethernet 2/13 + enable + load-interval 30 +! +interface ethernet 2/20 + enable +! +interface ethernet 2/21 + enable +! +interface ethernet 2/24 + enable +! +ip tacacs source-interface loopback 1 +! +! +router mpls + bfd + + dynamic-bypass + enable + reoptimize-timer 1800 + + + policy + traffic-eng isis level-2 + handle-isis-neighbor-down + cspf-computation-mode use-te-metric + + rsvp + rsvp-reliable-messaging + + ldp + tunnel-metric 10 + + mpls-interface e1/1 + rsvp-reliable-messaging + dynamic-bypass + enable + name-prefix dyn + adaptive + cos 1 + + mpls-interface e1/2 + rsvp-reliable-messaging + dynamic-bypass + enable + name-prefix dyn + adaptive + cos 1 + + lsp LSP1 + to 192.0.2.1 + no cspf + adaptive + enable + + lsp LSP3 + to 192.0.2.3 + shortcuts isis level2 + adaptive + reoptimize-timer 1800 + frr + facility-backup + revert-timer 300 + enable + + vll TEST-VLL 111 raw-mode cos 1 + vll-peer 192.0.2.1 + vlan 2005 + tagged e 2/1 + + vll-local TEST-LOCAL + extended-counters on + untag e 2/8 + vlan 5 + tag e 2/9 + + vpls TEST-VPLS 333 + vpls-peer 192.0.2.3 + vlan 5 + untagged ethe 2/4 + vlan 6 + tagged ethe 2/5 to 2/6 + untagged ethe 2/7 + +! +! +! +lldp enable ports ethe 1/1 to 1/8 ethe 2/1 to 2/24 +lldp run +! +! +! +! +! +end diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_version b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_version new file mode 100644 index 000000000..2b578a8b8 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_fixtures/show_version @@ -0,0 +1,92 @@ +System Mode: MLX +Chassis: MLXe 4-slot (Serial #: BGD2503J01F, Part #: 40-1000363-04) +NI-X-HSF Switch Fabric Module 1 (Serial #: BEW0444H01V, Part #: 60-1001512-10) +FE 1: Type fe600, Version 1 +Switch Fabric Module 1 Up Time is 203 days 4 hours 44 minutes 54 seconds +NI-X-HSF Switch Fabric Module 2 (Serial #: BEW0432H06S, Part #: 60-1001512-10) +FE 1: Type fe600, Version 1 +Switch Fabric Module 2 Up Time is 203 days 4 hours 44 minutes 54 seconds +========================================================================== +SL M1: BR-MLX-MR2-M Management Module Active (Serial #: BVP0425L02W, Part #: 60-1002374-07): +Boot : Version 5.8.0T165 Copyright (c) 1996-2014 Brocade Communications Systems, Inc. +Compiled on May 18 2015 at 13:02:10 labeled as xmprm05800 + (521590 bytes) from boot flash +Monitor : Version 5.8.0T165 Copyright (c) 1996-2014 Brocade Communications Systems, Inc. +Compiled on May 18 2015 at 13:01:40 labeled as xmb05800 + (539721 bytes) from code flash +IronWare : Version 5.8.0fT163 Copyright (c) 1996-2014 Brocade Communications Systems, Inc. +Compiled on Feb 24 2017 at 02:54:38 labeled as xmr05800fb + (9983317 bytes) from Primary +Board ID : 00 MBRIDGE Revision : 37 +1666 MHz Power PC processor 7448 (version 8004/0202) 166 MHz bus +512 KB Boot Flash (MX29LV040C), 128 MB Code Flash (MT28F256J3) +4096 MB DRAM INSTALLED +4096 MB DRAM ADDRESSABLE +Active Management uptime is 203 days 4 hours 44 minutes 54 seconds +========================================================================== +SL M2: BR-MLX-MR2-M Management Module Standby (Serial #: BVP0407L00D, Part #: 60-1002374-07): +Boot : Version 5.8.0T165 Copyright (c) 1996-2014 Brocade Communications Systems, Inc. +Compiled on May 18 2015 at 13:02:10 labeled as xmprm05800 + (521590 bytes) from boot flash +Monitor : Version 5.8.0T165 Copyright (c) 1996-2014 Brocade Communications Systems, Inc. +Compiled on May 18 2015 at 13:01:40 labeled as xmb05800 + (539721 bytes) from code flash +IronWare : Version 5.8.0fT163 Copyright (c) 1996-2014 Brocade Communications Systems, Inc. +Compiled on Feb 24 2017 at 02:54:38 labeled as xmr05800fb + (9983317 bytes) from Primary +Board ID : 00 MBRIDGE Revision : 37 +1666 MHz Power PC processor 7448 (version 8004/0202) 166 MHz bus +512 KB Boot Flash (MX29LV040C), 128 MB Code Flash (MT28F256J3) +4096 MB DRAM INSTALLED +4096 MB DRAM ADDRESSABLE +Standby Management uptime is 203 days 4 hours 44 minutes 15 seconds +========================================================================== +SL 1: NI-MLX-10Gx8-M 8-port 10GbE (M) Module (Serial #: BEQ0403G05E, Part #: 60-1001587-13) +(LID: dgsFJFIiFKg) +Boot : Version 5.8.0T175 Copyright (c) 1996-2014 Brocade Communications Systems, Inc. +Compiled on May 18 2015 at 13:02:24 labeled as xmlprm05800 + (449481 bytes) from boot flash +Monitor : Version 5.8.0T175 Copyright (c) 1996-2014 Brocade Communications Systems, Inc. +Compiled on May 18 2015 at 13:02:40 labeled as xmlb05800 + (568745 bytes) from code flash +IronWare : Version 5.8.0fT177 Copyright (c) 1996-2014 Brocade Communications Systems, Inc. +Compiled on Feb 24 2017 at 03:02:10 labeled as xmlp05800fb + (9304807 bytes) from Primary +FPGA versions: +Valid PBIF Version = 2.24, Build Time = 4/7/2016 14:16:00 + +Valid XPP Version = 0.08, Build Time = 6/27/2016 10:36:00 + +MACXPP40G 0 +MACXPP40G 1 +1333 MHz MPC MPC8548 (version 8021/0022) 533 MHz bus +512 KB Boot Flash (MX29LV040C), 64 MB Code Flash (MT28F256J3) +1024 MB DRAM, 8 KB SRAM +LP Slot 1 uptime is 203 days 4 hours 44 minutes 12 seconds +========================================================================== +SL 2: BR-MLX-1GFx24-X 24-port 1GbE SFP Module (Serial #: BND0415H003, Part #: 60-1001892-11) +License: (LID: dpfFJGKjFFI) +Boot : Version 5.8.0T175 Copyright (c) 1996-2014 Brocade Communications Systems, Inc. +Compiled on May 18 2015 at 13:02:24 labeled as xmlprm05800 + (449481 bytes) from boot flash +Monitor : Version 5.8.0T175 Copyright (c) 1996-2014 Brocade Communications Systems, Inc. +Compiled on May 18 2015 at 13:02:40 labeled as xmlb05800 + (568745 bytes) from code flash +IronWare : Version 5.8.0fT177 Copyright (c) 1996-2014 Brocade Communications Systems, Inc. +Compiled on Feb 24 2017 at 03:02:10 labeled as xmlp05800fb + (9304807 bytes) from Primary +FPGA versions: +Valid PBIF Version = 4.04, Build Time = 11/10/2014 22:10:00 + +Valid XPP Version = 1.03, Build Time = 6/30/2016 10:37:00 + +Valid STATS Version = 0.09, Build Time = 11/21/2010 14:52:00 + +BCM56512GMAC 0 +BCM56512GMAC 1 +666 MHz MPC MPC8541E (version 8020/0020) 333 MHz bus +512 KB Boot Flash (MX29LV040C), 16 MB Code Flash (MT28F128J3) +1024 MB DRAM, 8 KB SRAM +LP Slot 2 uptime is 21 days 20 hours 23 minutes 19 seconds +========================================================================== +All show version done diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/ironware_module.py b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_module.py new file mode 100644 index 000000000..8b6471f7f --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/ironware_module.py @@ -0,0 +1,88 @@ +# (c) 2016 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os +import json + +from ansible_collections.community.network.tests.unit.plugins.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase + + +fixture_path = os.path.join(os.path.dirname(__file__), 'ironware_fixtures') +fixture_data = {} + + +def load_fixture(name): + path = os.path.join(fixture_path, name) + + if path in fixture_data: + return fixture_data[path] + + with open(path) as f: + data = f.read() + + try: + data = json.loads(data) + except Exception: + pass + + fixture_data[path] = data + return data + + +class TestIronwareModule(ModuleTestCase): + + def execute_module(self, failed=False, changed=False, commands=None, sort=True, defaults=False): + + self.load_fixtures(commands) + + if failed: + result = self.failed() + self.assertTrue(result['failed'], result) + else: + result = self.changed(changed) + self.assertEqual(result['changed'], changed, result) + + if commands is not None: + if sort: + self.assertEqual(sorted(commands), sorted(result['commands']), result['commands']) + else: + self.assertEqual(commands, result['commands'], result['commands']) + + return result + + def failed(self): + with self.assertRaises(AnsibleFailJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertTrue(result['failed'], result) + return result + + def changed(self, changed=False): + with self.assertRaises(AnsibleExitJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertEqual(result['changed'], changed, result) + return result + + def load_fixtures(self, commands=None): + pass diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/netscaler_module.py b/ansible_collections/community/network/tests/unit/plugins/modules/netscaler_module.py new file mode 100644 index 000000000..ae147622e --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/netscaler_module.py @@ -0,0 +1,47 @@ +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +import sys + +from ansible_collections.community.network.tests.unit.compat.mock import patch, Mock +from ansible_collections.community.network.tests.unit.plugins.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase + +base_modules_mock = Mock() +nitro_service_mock = Mock() +nitro_exception_mock = Mock() + + +base_modules_to_mock = { + 'nssrc': base_modules_mock, + 'nssrc.com': base_modules_mock, + 'nssrc.com.citrix': base_modules_mock, + 'nssrc.com.citrix.netscaler': base_modules_mock, + 'nssrc.com.citrix.netscaler.nitro': base_modules_mock, + 'nssrc.com.citrix.netscaler.nitro.resource': base_modules_mock, + 'nssrc.com.citrix.netscaler.nitro.resource.config': base_modules_mock, + 'nssrc.com.citrix.netscaler.nitro.exception': base_modules_mock, + 'nssrc.com.citrix.netscaler.nitro.exception.nitro_exception': base_modules_mock, + 'nssrc.com.citrix.netscaler.nitro.exception.nitro_exception.nitro_exception': nitro_exception_mock, + 'nssrc.com.citrix.netscaler.nitro.service': base_modules_mock, + 'nssrc.com.citrix.netscaler.nitro.service.nitro_service': base_modules_mock, + 'nssrc.com.citrix.netscaler.nitro.service.nitro_service.nitro_service': nitro_service_mock, +} + +nitro_base_patcher = patch.dict(sys.modules, base_modules_to_mock) + + +class TestModule(ModuleTestCase): + def failed(self): + with self.assertRaises(AnsibleFailJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertTrue(result['failed'], result) + return result + + def exited(self, changed=False): + with self.assertRaises(AnsibleExitJson) as exc: + self.module.main() + + result = exc.exception.args[0] + return result diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/nos_fixtures/nos_config_config.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/nos_fixtures/nos_config_config.cfg new file mode 100644 index 000000000..dec739a4f --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/nos_fixtures/nos_config_config.cfg @@ -0,0 +1,31 @@ +! +hostname router +! +interface TenGigabitEthernet 104/0/0 + ip address 1.2.3.4 255.255.255.0 + description test string +! +interface TenGigabitEthernet 104/0/1 + ip address 6.7.8.9 255.255.255.0 + description test string + shutdown +! +interface TenGigabitEthernet 104/0/10 + channel-group 20 mode active + description Channel Group Member +! +interface TenGigabitEthernet 104/0/11 + channel-group 20 mode active + description Channel Group Member +! +interface Port-channel 20 +! +interface TenGigabitEthernet 104/0/9 + ip address 172.16.128.99 255.255.255.0 + ipv6 address dead::beaf/64 + description Bleh +! +protocol lldp + system-description An Extreme VDX Device + disable +! diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/nos_fixtures/nos_config_src.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/nos_fixtures/nos_config_src.cfg new file mode 100644 index 000000000..81c7c6989 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/nos_fixtures/nos_config_src.cfg @@ -0,0 +1,11 @@ +! +hostname foo +! +interface TenGigabitEthernet 104/0/0 + no ip address +! +interface TenGigabitEthernet 104/0/1 + ip address 6.7.8.9 255.255.255.0 + description test string + shutdown +! diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/nos_fixtures/nos_facts_show_inventory_chassis b/ansible_collections/community/network/tests/unit/plugins/modules/nos_fixtures/nos_facts_show_inventory_chassis new file mode 100644 index 000000000..5ca10241e --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/nos_fixtures/nos_facts_show_inventory_chassis @@ -0,0 +1,3 @@ +NAME: Chassis DESCR:System Chassis +SID:BR-VDX6740 SwitchType:131 +PN:40-1000927-06 SN:CPL2541K01E diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/nos_fixtures/nos_facts_show_running-config b/ansible_collections/community/network/tests/unit/plugins/modules/nos_fixtures/nos_facts_show_running-config new file mode 100644 index 000000000..3c80c59bf --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/nos_fixtures/nos_facts_show_running-config @@ -0,0 +1 @@ + switch-attributes host-name LEAF4 diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/nos_fixtures/nos_facts_show_version b/ansible_collections/community/network/tests/unit/plugins/modules/nos_fixtures/nos_facts_show_version new file mode 100644 index 000000000..1accd8191 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/nos_fixtures/nos_facts_show_version @@ -0,0 +1,17 @@ +Network Operating System Software +Network Operating System Version: 7.2.0 +Copyright (c) 1995-2017 Brocade Communications Systems, Inc. +Firmware name: 7.2.0 +Build Time: 10:52:47 Jul 10, 2017 +Install Time: 01:32:03 Jan 5, 2018 +Kernel: 2.6.34.6 + +BootProm: 1.0.1 +Control Processor: e500mc with 4096 MB of memory + +Slot Name Primary/Secondary Versions Status +--------------------------------------------------------------------------- +SW/0 NOS 7.2.0 ACTIVE* + 7.2.0 +SW/1 NOS 7.2.0 STANDBY + 7.2.0 diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/nos_fixtures/show_version b/ansible_collections/community/network/tests/unit/plugins/modules/nos_fixtures/show_version new file mode 100644 index 000000000..1accd8191 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/nos_fixtures/show_version @@ -0,0 +1,17 @@ +Network Operating System Software +Network Operating System Version: 7.2.0 +Copyright (c) 1995-2017 Brocade Communications Systems, Inc. +Firmware name: 7.2.0 +Build Time: 10:52:47 Jul 10, 2017 +Install Time: 01:32:03 Jan 5, 2018 +Kernel: 2.6.34.6 + +BootProm: 1.0.1 +Control Processor: e500mc with 4096 MB of memory + +Slot Name Primary/Secondary Versions Status +--------------------------------------------------------------------------- +SW/0 NOS 7.2.0 ACTIVE* + 7.2.0 +SW/1 NOS 7.2.0 STANDBY + 7.2.0 diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/nos_module.py b/ansible_collections/community/network/tests/unit/plugins/modules/nos_module.py new file mode 100644 index 000000000..20a603142 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/nos_module.py @@ -0,0 +1,87 @@ +# (c) 2018 Extreme Networks Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os +import json + +from ansible_collections.community.network.tests.unit.plugins.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase + + +fixture_path = os.path.join(os.path.dirname(__file__), 'nos_fixtures') +fixture_data = {} + + +def load_fixture(name): + path = os.path.join(fixture_path, name) + + if path in fixture_data: + return fixture_data[path] + + with open(path) as file_desc: + data = file_desc.read() + + try: + data = json.loads(data) + except Exception: + pass + + fixture_data[path] = data + return data + + +class TestNosModule(ModuleTestCase): + + def execute_module(self, failed=False, changed=False, commands=None, sort=True, defaults=False): + + self.load_fixtures(commands) + + if failed: + result = self.failed() + self.assertTrue(result['failed'], result) + else: + result = self.changed(changed) + self.assertEqual(result['changed'], changed, result) + + if commands is not None: + if sort: + self.assertEqual(sorted(commands), sorted(result['commands']), result['commands']) + else: + self.assertEqual(commands, result['commands'], result['commands']) + + return result + + def failed(self): + with self.assertRaises(AnsibleFailJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertTrue(result['failed'], result) + return result + + def changed(self, changed=False): + with self.assertRaises(AnsibleExitJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertEqual(result['changed'], changed, result) + return result + + def load_fixtures(self, commands=None): + pass diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/nuage_module.py b/ansible_collections/community/network/tests/unit/plugins/modules/nuage_module.py new file mode 100644 index 000000000..f9adad6e3 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/nuage_module.py @@ -0,0 +1,74 @@ +# -*- coding: utf-8 -*- + +# (c) 2017, Nokia +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args as _set_module_args, ModuleTestCase + +import pytest + +try: + from vspk import v5_0 as vsdk + from bambou import nurest_session +except ImportError: + pytestmark = pytest.mark.skip('Nuage Ansible modules requires the vspk and bambou python libraries') + + +def set_module_args(args): + if 'auth' not in args: + args['auth'] = { + 'api_username': 'csproot', + 'api_password': 'csproot', + 'api_enterprise': 'csp', + 'api_url': 'https://localhost:8443', + 'api_version': 'v5_0' + } + return _set_module_args(args) + + +class MockNuageResponse(object): + def __init__(self, status_code, reason, errors): + self.status_code = status_code + self.reason = reason + self.errors = errors + + +class MockNuageConnection(object): + def __init__(self, status_code, reason, errors): + self.response = MockNuageResponse(status_code, reason, errors) + + +class TestNuageModule(ModuleTestCase): + + def setUp(self): + super(TestNuageModule, self).setUp() + + def session_start(self): + self._root_object = vsdk.NUMe() + self._root_object.enterprise_id = 'enterprise-id' + nurest_session._NURESTSessionCurrentContext.session = self + return self + + self.session_mock = patch('vspk.v5_0.NUVSDSession.start', new=session_start) + self.session_mock.start() + + def tearDown(self): + super(TestNuageModule, self).tearDown() + self.session_mock.stop() diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/nvos_module.py b/ansible_collections/community/network/tests/unit/plugins/modules/nvos_module.py new file mode 100644 index 000000000..9780de45e --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/nvos_module.py @@ -0,0 +1,108 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os +import json +import tempfile + +from ansible_collections.community.network.tests.unit.compat import unittest +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible.module_utils import basic + + +fixture_path = os.path.join(os.path.dirname(__file__), 'nvos_fixtures') +fixture_data = {} + + +def load_fixture(name): + path = os.path.join(fixture_path, name) + + if path in fixture_data: + return fixture_data[path] + + with open(path) as f: + data = f.read() + + try: + data = json.loads(data) + except Exception: + pass + + fixture_data[path] = data + return data + + +class AnsibleExitJson(Exception): + pass + + +class AnsibleFailJson(Exception): + pass + + +class TestNvosModule(unittest.TestCase): + def setUp(self): + super(TestNvosModule, self).setUp() + + self.test_log = tempfile.mkstemp(prefix='ansible-test-nvos-module-', suffix='.log')[1] + + def tearDown(self): + super(TestNvosModule, self).tearDown() + + os.remove(self.test_log) + + def execute_module(self, failed=False, changed=False, commands=None, + sort=True, defaults=False, state=None): + + self.load_fixtures(commands, state) + + if failed: + result = self.failed() + self.assertTrue(result['failed'], result) + else: + result = self.changed(changed) + self.assertEqual(result['changed'], changed, result) + + if commands is not None: + if sort: + self.assertEqual(sorted(commands), sorted(result['commands']), + result['commands']) + else: + self.assertEqual(commands, result['commands'], + result['commands']) + + return result + + def failed(self): + def fail_json(*args, **kwargs): + kwargs['failed'] = True + raise AnsibleFailJson(kwargs) + + with patch.object(basic.AnsibleModule, 'fail_json', fail_json): + with self.assertRaises(AnsibleFailJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertTrue(result['failed'], result) + return result + + def changed(self, changed=False): + def exit_json(*args, **kwargs): + if 'changed' not in kwargs: + kwargs['changed'] = False + raise AnsibleExitJson(kwargs) + + with patch.object(basic.AnsibleModule, 'exit_json', exit_json): + with self.assertRaises(AnsibleExitJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertEqual(result['changed'], changed, result) + return result + + def load_fixtures(self, commands=None): + pass diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/opx_fixtures/opx_get_config.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/opx_fixtures/opx_get_config.cfg new file mode 100644 index 000000000..37db58272 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/opx_fixtures/opx_get_config.cfg @@ -0,0 +1,10 @@ + { + "base-if-vlan/if/interfaces/interface/id": 105, + "if/interfaces/interface/name": "br105", + "dell-base-if-cmn/if/interfaces/interface/if-index": 74, + "dell-if/if/interfaces/interface/learning-mode": 1, + "dell-if/if/interfaces/interface/mtu": 1532, + "dell-if/if/interfaces/interface/phys-address": "", + "dell-if/if/interfaces/interface/vlan-type": 1, + "if/interfaces/interface/enabled": 0 + } diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/opx_fixtures/opx_operation_create.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/opx_fixtures/opx_operation_create.cfg new file mode 100644 index 000000000..cdecae6c1 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/opx_fixtures/opx_operation_create.cfg @@ -0,0 +1,13 @@ + { + "data": { + "base-if-vlan/if/interfaces/interface/id": 105, + "cps/key_data": { + "if/interfaces/interface/name": "br105" + }, + "cps/object-group/return-code": 0, + "dell-base-if-cmn/if/interfaces/interface/if-index": 70, + "if/interfaces/interface/type": "ianaift:l2vlan" + }, + "key": "target/dell-base-if-cmn/if/interfaces/interface" + } + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/opx_fixtures/opx_operation_delete.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/opx_fixtures/opx_operation_delete.cfg new file mode 100644 index 000000000..ba0ab2f97 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/opx_fixtures/opx_operation_delete.cfg @@ -0,0 +1,8 @@ + { + "data": { + "cps/object-group/return-code": 0, + "if/interfaces/interface/name": "br105" + }, + "key": "target/dell-base-if-cmn/if/interfaces/interface" + } + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/opx_fixtures/opx_operation_get.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/opx_fixtures/opx_operation_get.cfg new file mode 100644 index 000000000..08593db15 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/opx_fixtures/opx_operation_get.cfg @@ -0,0 +1,16 @@ + { + "data": { + "base-if-vlan/if/interfaces/interface/id": 105, + "cps/key_data": { + "if/interfaces/interface/name": "br105" + }, + "dell-base-if-cmn/if/interfaces/interface/if-index": 74, + "dell-if/if/interfaces/interface/learning-mode": 1, + "dell-if/if/interfaces/interface/mtu": 1532, + "dell-if/if/interfaces/interface/phys-address": "", + "dell-if/if/interfaces/interface/vlan-type": 1, + "if/interfaces/interface/enabled": 0 + }, + "key": "target/dell-base-if-cmn/if/interfaces/interface" + } + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/opx_fixtures/opx_operation_get_db.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/opx_fixtures/opx_operation_get_db.cfg new file mode 100644 index 000000000..1f2571a07 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/opx_fixtures/opx_operation_get_db.cfg @@ -0,0 +1,25 @@ + { + "data": { + "base-if-phy/if/interfaces/interface/learn-mode": 3, + "base-if-phy/if/interfaces/interface/npu-id": 0, + "base-if-phy/if/interfaces/interface/phy-media": 43, + "base-if-phy/if/interfaces/interface/port-id": 25, + "base-if-phy/if/interfaces/interface/tagging-mode": 3, + "dell-base-if-cmn/if/interfaces/interface/if-index": 10, + "dell-if/if/interfaces-state/interface/supported-speed": [ + 3, + 4, + 6 + ], + "dell-if/if/interfaces/interface/auto-negotiation": 1, + "dell-if/if/interfaces/interface/duplex": 1, + "dell-if/if/interfaces/interface/mode": 1, + "dell-if/if/interfaces/interface/mtu": 1532, + "dell-if/if/interfaces/interface/phys-address": "ec:f4:bb:fc:61:9a", + "dell-if/if/interfaces/interface/speed": 0, + "if/interfaces/interface/enabled": 0, + "if/interfaces/interface/name": "e101-001-0", + "if/interfaces/interface/type": "ianaift:ethernetCsmacd" + }, + "key": "target/dell-base-if-cmn/if/interfaces/interface" + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/opx_fixtures/opx_operation_set.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/opx_fixtures/opx_operation_set.cfg new file mode 100644 index 000000000..99c0354cf --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/opx_fixtures/opx_operation_set.cfg @@ -0,0 +1,11 @@ + { + "data": { + "cps/object-group/return-code": 0, + "dell-if/if/interfaces/interface/untagged-ports": [ + "e101-001-0" + ], + "if/interfaces/interface/name": "br105" + }, + "key": "target/dell-base-if-cmn/if/interfaces/interface" + } + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/opx_module.py b/ansible_collections/community/network/tests/unit/plugins/modules/opx_module.py new file mode 100644 index 000000000..0bc3e2535 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/opx_module.py @@ -0,0 +1,91 @@ +# (c) 2018 Red Hat Inc. +# +# (c) 2018 Dell Inc. or its subsidiaries. All Rights Reserved. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os +import json + +from ansible_collections.community.network.tests.unit.plugins.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase + + +fixture_path = os.path.join(os.path.dirname(__file__), 'opx_fixtures') +fixture_data = {} + + +def load_fixture(name): + path = os.path.join(fixture_path, name) + + if path in fixture_data: + return fixture_data[path] + + with open(path) as f: + data = f.read() + + try: + data = json.loads(data) + except Exception: + pass + + fixture_data[path] = data + return data + + +class TestOpxModule(ModuleTestCase): + + def execute_module(self, failed=False, changed=False, + response=None, msg=None, db=None, + commit_event=None): + + self.load_fixtures(response) + + if failed: + result = self.failed(msg) + self.assertTrue(result['failed'], result) + else: + result = self.changed(changed, db) + self.assertEqual(result['changed'], changed, result) + + return result + + def failed(self, msg): + with self.assertRaises(AnsibleFailJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertTrue(result['failed'], result) + self.assertEqual(result['msg'], msg, result) + return result + + def changed(self, changed=False, db=None): + with self.assertRaises(AnsibleExitJson) as exc: + self.module.main() + + result = exc.exception.args[0] + print("res" + str(result) + "dv=" + str(db) + "ch=" + str(changed)) + self.assertEqual(result['changed'], changed, result) + if db: + self.assertEqual(result['db'], db, result) + + return result + + def load_fixtures(self, response=None): + pass diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/show_interface_ethernet_0_2_switchport b/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/show_interface_ethernet_0_2_switchport new file mode 100644 index 000000000..b43c35702 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/show_interface_ethernet_0_2_switchport @@ -0,0 +1,6 @@ + Interface name : Ethernet 0/2 + Switchport mode : access + Ingress filter : enable + Acceptable frame types : vlan-untagged only + Default Vlan : 1 + Active Vlans : 1 diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/show_interface_ethernet_0_3_switchport b/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/show_interface_ethernet_0_3_switchport new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/show_interface_ethernet_0_3_switchport diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/show_interface_ethernet_0_4_switchport b/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/show_interface_ethernet_0_4_switchport new file mode 100644 index 000000000..63a761bdc --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/show_interface_ethernet_0_4_switchport @@ -0,0 +1,6 @@ + Interface name : Ethernet 0/4 + Switchport mode : trunk + Ingress filter : enable + Acceptable frame types : vlan-tagged only + Native Vlan : 1 + Active Vlans : 1,22,200 diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/show_version b/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/show_version new file mode 100644 index 000000000..0d648378a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/show_version @@ -0,0 +1,18 @@ +SLX-OS Operating System Software +SLX-OS Operating System Version: 17s.1.02 +Copyright (c) 1995-2018 Brocade Communications Systems, Inc. +Firmware name: 17s.1.02 +Build Time: 00:06:59 Sep 28, 2017 +Install Time: 15:58:29 Feb 9, 2018 +Kernel: 2.6.34.6 +Host Version: Ubuntu 14.04 LTS +Host Kernel: Linux 3.14.17 + +Control Processor: QEMU Virtual CPU version 2.0.0 + +System Uptime: 34days 4hrs 41mins 53secs + +Slot Name Primary/Secondary Versions Status +--------------------------------------------------------------------------- +SW/0 SLX-OS 17s.1.02 ACTIVE* + 17s.1.02 diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/show_vlan_brief b/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/show_vlan_brief new file mode 100644 index 000000000..3a49c5a7a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/show_vlan_brief @@ -0,0 +1,17 @@ +Total Number of VLANs configured : 2 +VLAN Name State Config status Ports Classification +(R)-RSPAN (u)-Untagged + (t)-Tagged +================ =============== ========================== =============== ==================== +1 default ACTIVE Static Eth 1/5(t) + +22 VLAN0022 INACTIVE(no member port) Static + +5 VLAN0005 ACTIVE Static Tu 61442(t) vni 5 + Tu 61443(t) vni 5 + +200 VLAN0200 ACTIVE Dynamic (MVRP) Po 60(t) + +1000 VLAN1000 ACTIVE Dynamic (EP tracking) Po 60(t) + +4090 VLAN4090 INACTIVE(no member port) Static diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/slxos_config_config.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/slxos_config_config.cfg new file mode 100644 index 000000000..48286bf1e --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/slxos_config_config.cfg @@ -0,0 +1,31 @@ +! +hostname router +! +interface Ethernet 0/0 + ip address 1.2.3.4 255.255.255.0 + description test string +! +interface Ethernet 0/1 + ip address 6.7.8.9 255.255.255.0 + description test string + shutdown +! +interface Ethernet 0/10 + channel-group 20 mode active + description Channel Group Member +! +interface Ethernet 0/11 + channel-group 20 mode active + description Channel Group Member +! +interface Port-channel 20 +! +interface Ethernet 0/9 + ip address 172.16.128.99 255.255.255.0 + ipv6 address dead::beaf/64 + description Bleh +! +protocol lldp + system-description An Extreme SLX Device + disable +! diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/slxos_config_src.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/slxos_config_src.cfg new file mode 100644 index 000000000..1b642f8b4 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/slxos_config_src.cfg @@ -0,0 +1,11 @@ +! +hostname foo +! +interface Ethernet 0/0 + no ip address +! +interface Ethernet 0/1 + ip address 6.7.8.9 255.255.255.0 + description test string + shutdown +! diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/slxos_facts_show_inventory_chassis b/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/slxos_facts_show_inventory_chassis new file mode 100644 index 000000000..790895125 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/slxos_facts_show_inventory_chassis @@ -0,0 +1,5 @@ + + +NAME: Chassis DESCR:System Chassis +SID:BR-SLX9140 SwitchType:3001 +PN:84-1002952-01 SN:EXH3349M005 diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/slxos_facts_show_running-config b/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/slxos_facts_show_running-config new file mode 100644 index 000000000..3d7d017b0 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/slxos_facts_show_running-config @@ -0,0 +1 @@ +switch-attributes host-name DC2LEAF2 diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/slxos_facts_show_version b/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/slxos_facts_show_version new file mode 100644 index 000000000..0d648378a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/slxos_fixtures/slxos_facts_show_version @@ -0,0 +1,18 @@ +SLX-OS Operating System Software +SLX-OS Operating System Version: 17s.1.02 +Copyright (c) 1995-2018 Brocade Communications Systems, Inc. +Firmware name: 17s.1.02 +Build Time: 00:06:59 Sep 28, 2017 +Install Time: 15:58:29 Feb 9, 2018 +Kernel: 2.6.34.6 +Host Version: Ubuntu 14.04 LTS +Host Kernel: Linux 3.14.17 + +Control Processor: QEMU Virtual CPU version 2.0.0 + +System Uptime: 34days 4hrs 41mins 53secs + +Slot Name Primary/Secondary Versions Status +--------------------------------------------------------------------------- +SW/0 SLX-OS 17s.1.02 ACTIVE* + 17s.1.02 diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/slxos_module.py b/ansible_collections/community/network/tests/unit/plugins/modules/slxos_module.py new file mode 100644 index 000000000..5c08a806d --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/slxos_module.py @@ -0,0 +1,87 @@ +# (c) 2018 Extreme Networks Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os +import json + +from ansible_collections.community.network.tests.unit.plugins.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase + + +fixture_path = os.path.join(os.path.dirname(__file__), 'slxos_fixtures') +fixture_data = {} + + +def load_fixture(name): + path = os.path.join(fixture_path, name) + + if path in fixture_data: + return fixture_data[path] + + with open(path) as file_desc: + data = file_desc.read() + + try: + data = json.loads(data) + except Exception: + pass + + fixture_data[path] = data + return data + + +class TestSlxosModule(ModuleTestCase): + + def execute_module(self, failed=False, changed=False, commands=None, sort=True, defaults=False): + + self.load_fixtures(commands) + + if failed: + result = self.failed() + self.assertTrue(result['failed'], result) + else: + result = self.changed(changed) + self.assertEqual(result['changed'], changed, result) + + if commands is not None: + if sort: + self.assertEqual(sorted(commands), sorted(result['commands']), result['commands']) + else: + self.assertEqual(commands, result['commands'], result['commands']) + + return result + + def failed(self): + with self.assertRaises(AnsibleFailJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertTrue(result['failed'], result) + return result + + def changed(self, changed=False): + with self.assertRaises(AnsibleExitJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertEqual(result['changed'], changed, result) + return result + + def load_fixtures(self, commands=None): + pass diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_aireos_command.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_aireos_command.py new file mode 100644 index 000000000..031f39108 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_aireos_command.py @@ -0,0 +1,122 @@ +# (c) 2016 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import json + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import aireos_command +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .aireos_module import TestCiscoWlcModule, load_fixture +from ansible.module_utils import six + + +class TestCiscoWlcCommandModule(TestCiscoWlcModule): + + module = aireos_command + + def setUp(self): + super(TestCiscoWlcCommandModule, self).setUp() + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.aireos_command.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestCiscoWlcCommandModule, self).tearDown() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + + def load_from_file(*args, **kwargs): + module, commands = args + output = list() + + for item in commands: + try: + obj = json.loads(item['command']) + command = obj['command'] + except ValueError: + command = item['command'] + filename = str(command).replace(' ', '_') + output.append(load_fixture(filename)) + return output + + self.run_commands.side_effect = load_from_file + + def test_aireos_command_simple(self): + set_module_args(dict(commands=['show sysinfo'])) + result = self.execute_module() + self.assertEqual(len(result['stdout']), 1) + self.assertTrue(result['stdout'][0].startswith('Manufacturer\'s Name')) + + def test_aireos_command_multiple(self): + set_module_args(dict(commands=['show sysinfo', 'show sysinfo'])) + result = self.execute_module() + self.assertEqual(len(result['stdout']), 2) + self.assertTrue(result['stdout'][0].startswith('Manufacturer\'s Name')) + + def test_aireos_command_wait_for(self): + wait_for = 'result[0] contains "Cisco Systems Inc"' + set_module_args(dict(commands=['show sysinfo'], wait_for=wait_for)) + self.execute_module() + + def test_aireos_command_wait_for_fails(self): + wait_for = 'result[0] contains "test string"' + set_module_args(dict(commands=['show sysinfo'], wait_for=wait_for)) + self.execute_module(failed=True) + self.assertEqual(self.run_commands.call_count, 10) + + def test_aireos_command_retries(self): + wait_for = 'result[0] contains "test string"' + set_module_args(dict(commands=['show sysinfo'], wait_for=wait_for, retries=2)) + self.execute_module(failed=True) + self.assertEqual(self.run_commands.call_count, 2) + + def test_aireos_command_match_any(self): + wait_for = ['result[0] contains "Cisco Systems Inc"', + 'result[0] contains "test string"'] + set_module_args(dict(commands=['show sysinfo'], wait_for=wait_for, match='any')) + self.execute_module() + + def test_aireos_command_match_all(self): + wait_for = ['result[0] contains "Cisco Systems Inc"', + 'result[0] contains "Cisco Controller"'] + set_module_args(dict(commands=['show sysinfo'], wait_for=wait_for, match='all')) + self.execute_module() + + def test_aireos_command_match_all_failure(self): + wait_for = ['result[0] contains "Cisco Systems Inc"', + 'result[0] contains "test string"'] + commands = ['show sysinfo', 'show sysinfo'] + set_module_args(dict(commands=commands, wait_for=wait_for, match='all')) + self.execute_module(failed=True) + + def test_aireos_command_to_lines_non_ascii(self): + ''' Test data is one variation of the result of a `show run-config commands` + command on Cisco WLC version 8.8.120.0 ''' + test_data = ''' + wlan flexconnect learn-ipaddr 101 enable + `\xc8\x92\xef\xbf\xbdR\x7f`\xc8\x92\xef\xbf\xbdR\x7f` + wlan wgb broadcast-tagging disable 1 + '''.strip() + test_string = six.u(test_data) + test_stdout = [test_string, ] + result = list(aireos_command.to_lines(test_stdout)) + print(result[0]) + self.assertEqual(len(result[0]), 3) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_aireos_config.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_aireos_config.py new file mode 100644 index 000000000..fc9987cb9 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_aireos_config.py @@ -0,0 +1,131 @@ +# +# (c) 2016 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import aireos_config +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .aireos_module import TestCiscoWlcModule, load_fixture + + +class TestCiscoWlcConfigModule(TestCiscoWlcModule): + + module = aireos_config + + def setUp(self): + super(TestCiscoWlcConfigModule, self).setUp() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.aireos_config.get_config') + self.get_config = self.mock_get_config.start() + + self.mock_load_config = patch('ansible_collections.community.network.plugins.modules.aireos_config.load_config') + self.load_config = self.mock_load_config.start() + + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.aireos_config.run_commands') + self.run_commands = self.mock_run_commands.start() + + self.mock_save_config = patch('ansible_collections.community.network.plugins.modules.aireos_config.save_config') + self.save_config = self.mock_save_config.start() + + def tearDown(self): + super(TestCiscoWlcConfigModule, self).tearDown() + self.mock_get_config.stop() + self.mock_load_config.stop() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + config_file = 'aireos_config_config.cfg' + self.get_config.return_value = load_fixture(config_file) + self.load_config.return_value = None + + def test_aireos_config_unchanged(self): + src = load_fixture('aireos_config_config.cfg') + set_module_args(dict(src=src)) + self.execute_module() + + def test_aireos_config_src(self): + src = load_fixture('aireos_config_src.cfg') + set_module_args(dict(src=src)) + commands = ['sysname foo', 'interface address dynamic-interface mtc-1 10.33.20.4 255.255.255.0 10.33.20.2'] + self.execute_module(changed=True, commands=commands) + + def test_aireos_config_backup(self): + set_module_args(dict(backup=True)) + result = self.execute_module() + self.assertIn('__backup__', result) + + def test_aireos_config_save(self): + set_module_args(dict(save=True)) + self.execute_module() + self.assertEqual(self.save_config.call_count, 1) + self.assertEqual(self.get_config.call_count, 0) + self.assertEqual(self.load_config.call_count, 0) + + def test_aireos_config_before(self): + set_module_args(dict(lines=['sysname foo'], before=['test1', 'test2'])) + commands = ['test1', 'test2', 'sysname foo'] + self.execute_module(changed=True, commands=commands, sort=False) + + def test_aireos_config_after(self): + set_module_args(dict(lines=['sysname foo'], after=['test1', 'test2'])) + commands = ['sysname foo', 'test1', 'test2'] + self.execute_module(changed=True, commands=commands, sort=False) + + def test_aireos_config_before_after_no_change(self): + set_module_args(dict(lines=['sysname router'], + before=['test1', 'test2'], + after=['test3', 'test4'])) + self.execute_module() + + def test_aireos_config_config(self): + config = 'sysname localhost' + set_module_args(dict(lines=['sysname router'], config=config)) + commands = ['sysname router'] + self.execute_module(changed=True, commands=commands) + + def test_aireos_config_match_none(self): + lines = ['sysname router', 'interface create mtc-1 1'] + set_module_args(dict(lines=lines, match='none')) + self.execute_module(changed=True, commands=lines, sort=False) + + def test_nxos_config_save_always(self): + args = dict(save_when='always') + set_module_args(args) + self.execute_module() + self.assertEqual(self.save_config.call_count, 1) + self.assertEqual(self.get_config.call_count, 0) + self.assertEqual(self.load_config.call_count, 0) + + def test_nxos_config_save_changed_true(self): + args = dict(save_when='changed', lines=['sysname foo', 'interface create mtc-3 3']) + set_module_args(args) + self.execute_module(changed=True) + self.assertEqual(self.save_config.call_count, 1) + self.assertEqual(self.get_config.call_count, 1) + self.assertEqual(self.load_config.call_count, 1) + + def test_nxos_config_save_changed_false(self): + args = dict(save_when='changed') + set_module_args(args) + self.execute_module() + self.assertEqual(self.save_config.call_count, 0) + self.assertEqual(self.get_config.call_count, 0) + self.assertEqual(self.load_config.call_count, 0) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_apconos_command.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_apconos_command.py new file mode 100644 index 000000000..4d4bb13fd --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_apconos_command.py @@ -0,0 +1,110 @@ +# (c) 2019 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import json + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import apconos_command +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .apconos_module import TestApconosModule, load_fixture + + +class TestApconosCommandModule(TestApconosModule): + + module = apconos_command + + def setUp(self): + super(TestApconosCommandModule, self).setUp() + + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.apconos_command.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestApconosCommandModule, self).tearDown() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + + def load_from_file(*args, **kwargs): + module, commands = args + output = list() + for item in commands: + filename = str(item).replace(' ', '_') + output.append(load_fixture(filename)) + return output + + self.run_commands.side_effect = load_from_file + + def test_apcon_command_simple(self): + set_module_args(dict(commands=['show version'])) + result = self.execute_module() + self.assertEqual(len(result['stdout_lines']), 1) + self.assertEqual(result['stdout_lines'][0][0], 'APCON') + + def test_apcon_command_multiple(self): + set_module_args(dict(commands=['show version', 'show version'])) + result = self.execute_module() + self.assertEqual(len(result['stdout_lines']), 2) + self.assertEqual(result['stdout_lines'][0][0], 'APCON') + self.assertEqual(result['stdout_lines'][1][0], 'APCON') + + def test_apcon_command_wait_for(self): + wait_for = 'result[0] contains "APCON"' + set_module_args(dict(commands=['show version'], wait_for=wait_for)) + self.execute_module() + + def test_apcon_command_wait_for_fails(self): + wait_for = 'result[0] contains "test string"' + set_module_args(dict(commands=['show version'], wait_for=wait_for)) + self.execute_module(failed=True) + self.assertEqual(self.run_commands.call_count, 10) + + def test_apcon_command_retries(self): + wait_for = 'result[0] contains "test string"' + set_module_args(dict(commands=['show version'], wait_for=wait_for, retries=2)) + self.execute_module(failed=True) + self.assertEqual(self.run_commands.call_count, 2) + + def test_apcon_command_match_any(self): + wait_for = ['result[0] contains "test string"', + 'result[0] contains "VERSION"'] + set_module_args(dict(commands=['show version'], wait_for=wait_for, match='any')) + self.execute_module() + + def test_apcon_command_match_all(self): + wait_for = ['result[0] contains "COMPONENT"', + 'result[0] contains "MODEL"', + 'result[0] contains "VERSION"'] + set_module_args(dict(commands=['show version'], wait_for=wait_for, match='all')) + self.execute_module() + + def test_apcon_command_match_all_failure(self): + wait_for = ['result[0] contains "APCON OS"', + 'result[0] contains "test string"'] + commands = ['show version', 'show version'] + set_module_args(dict(commands=commands, wait_for=wait_for, match='all')) + self.execute_module(failed=True) + + def test_apcon_command_checkmode_not_warning(self): + commands = ['enable ssh'] + set_module_args(dict(commands=commands, _ansible_check_mode=False)) + result = self.execute_module(changed=True) + self.assertEqual(result['warnings'], []) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_aruba_command.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_aruba_command.py new file mode 100644 index 000000000..b2012660c --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_aruba_command.py @@ -0,0 +1,109 @@ +# (c) 2016 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import json + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import aruba_command +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .aruba_module import TestArubaModule, load_fixture + + +class TestArubaCommandModule(TestArubaModule): + + module = aruba_command + + def setUp(self): + super(TestArubaCommandModule, self).setUp() + + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.aruba_command.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestArubaCommandModule, self).tearDown() + + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + + def load_from_file(*args, **kwargs): + module, commands = args + output = list() + + for item in commands: + try: + obj = json.loads(item['command']) + command = obj['command'] + except ValueError: + command = item['command'] + filename = str(command).replace(' ', '_') + output.append(load_fixture(filename)) + return output + + self.run_commands.side_effect = load_from_file + + def test_aruba_command_simple(self): + set_module_args(dict(commands=['show version'])) + result = self.execute_module() + self.assertEqual(len(result['stdout']), 1) + self.assertTrue(result['stdout'][0].startswith('Aruba Operating System Software')) + + def test_aruba_command_multiple(self): + set_module_args(dict(commands=['show version', 'show version'])) + result = self.execute_module() + self.assertEqual(len(result['stdout']), 2) + self.assertTrue(result['stdout'][0].startswith('Aruba Operating System Software')) + + def test_aruba_command_wait_for(self): + wait_for = 'result[0] contains "Aruba Operating System Software"' + set_module_args(dict(commands=['show version'], wait_for=wait_for)) + self.execute_module() + + def test_aruba_command_wait_for_fails(self): + wait_for = 'result[0] contains "test string"' + set_module_args(dict(commands=['show version'], wait_for=wait_for)) + self.execute_module(failed=True) + self.assertEqual(self.run_commands.call_count, 10) + + def test_aruba_command_retries(self): + wait_for = 'result[0] contains "test string"' + set_module_args(dict(commands=['show version'], wait_for=wait_for, retries=2)) + self.execute_module(failed=True) + self.assertEqual(self.run_commands.call_count, 2) + + def test_aruba_command_match_any(self): + wait_for = ['result[0] contains "Aruba Operating System Software"', + 'result[0] contains "test string"'] + set_module_args(dict(commands=['show version'], wait_for=wait_for, match='any')) + self.execute_module() + + def test_aruba_command_match_all(self): + wait_for = ['result[0] contains "Aruba Operating System Software"', + 'result[0] contains "Aruba Networks"'] + set_module_args(dict(commands=['show version'], wait_for=wait_for, match='all')) + self.execute_module() + + def test_aruba_command_match_all_failure(self): + wait_for = ['result[0] contains "Aruba Operating System Software"', + 'result[0] contains "test string"'] + commands = ['show version', 'show version'] + set_module_args(dict(commands=commands, wait_for=wait_for, match='all')) + self.execute_module(failed=True) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_aruba_config.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_aruba_config.py new file mode 100644 index 000000000..85263216a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_aruba_config.py @@ -0,0 +1,189 @@ +# +# (c) 2016 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import aruba_config +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .aruba_module import TestArubaModule, load_fixture + + +class TestArubaConfigModule(TestArubaModule): + + module = aruba_config + + def setUp(self): + super(TestArubaConfigModule, self).setUp() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.aruba_config.get_config') + self.get_config = self.mock_get_config.start() + + self.mock_load_config = patch('ansible_collections.community.network.plugins.modules.aruba_config.load_config') + self.load_config = self.mock_load_config.start() + + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.aruba_config.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestArubaConfigModule, self).tearDown() + + self.mock_get_config.stop() + self.mock_load_config.stop() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + config_file = 'aruba_config_config.cfg' + self.get_config.return_value = load_fixture(config_file) + self.load_config.return_value = None + + def test_aruba_config_unchanged(self): + src = load_fixture('aruba_config_config.cfg') + set_module_args(dict(src=src)) + self.execute_module() + + def test_aruba_config_unchanged_different_spacing(self): + # Tab indented + set_module_args(dict(lines=['description test string'], parents=['interface GigabitEthernet0/0'])) + self.execute_module(changed=False) + # 3 spaces indented + set_module_args(dict(lines=['essid "blah"'], parents=['wlan ssid-profile "blah"'])) + self.execute_module(changed=False) + + def test_aruba_config_src(self): + src = load_fixture('aruba_config_src.cfg') + set_module_args(dict(src=src)) + commands = ['hostname foo', 'interface GigabitEthernet0/0', + 'no ip address'] + self.execute_module(changed=True, commands=commands) + + def test_aruba_config_backup(self): + set_module_args(dict(backup=True)) + result = self.execute_module() + self.assertIn('__backup__', result) + + def test_aruba_config_save_always(self): + self.run_commands.return_value = "Hostname foo" + set_module_args(dict(save_when='always')) + self.execute_module(changed=True) + self.assertEqual(self.run_commands.call_count, 1) + self.assertEqual(self.get_config.call_count, 0) + self.assertEqual(self.load_config.call_count, 0) + args = self.run_commands.call_args[0][1] + self.assertIn('write memory', args) + + def test_aruba_config_save_changed_true(self): + src = load_fixture('aruba_config_src.cfg') + set_module_args(dict(src=src, save_when='changed')) + commands = ['hostname foo', 'interface GigabitEthernet0/0', + 'no ip address'] + self.execute_module(changed=True, commands=commands) + # src = load_fixture('aruba_config_src.cfg') + + # set_module_args(dict(save_when='changed')) + # commands = ['hostname changed'] + # self.execute_module(changed=False, commands=commands) + self.assertEqual(self.run_commands.call_count, 1) + self.assertEqual(self.get_config.call_count, 1) + self.assertEqual(self.load_config.call_count, 1) + args = self.run_commands.call_args[0][1] + self.assertIn('write memory', args) + + def test_aruba_config_save_changed_false(self): + set_module_args(dict(save_when='changed')) + self.execute_module(changed=False) + self.assertEqual(self.run_commands.call_count, 0) + self.assertEqual(self.get_config.call_count, 0) + self.assertEqual(self.load_config.call_count, 0) + + def test_aruba_config_lines_wo_parents(self): + set_module_args(dict(lines=['hostname foo'])) + commands = ['hostname foo'] + self.execute_module(changed=True, commands=commands) + + def test_aruba_config_lines_w_parents(self): + set_module_args(dict(lines=['shutdown'], parents=['interface GigabitEthernet0/0'])) + commands = ['interface GigabitEthernet0/0', 'shutdown'] + self.execute_module(changed=True, commands=commands) + + def test_aruba_config_before(self): + set_module_args(dict(lines=['hostname foo'], before=['test1', 'test2'])) + commands = ['test1', 'test2', 'hostname foo'] + self.execute_module(changed=True, commands=commands, sort=False) + + def test_aruba_config_after(self): + set_module_args(dict(lines=['hostname foo'], after=['test1', 'test2'])) + commands = ['hostname foo', 'test1', 'test2'] + self.execute_module(changed=True, commands=commands, sort=False) + + def test_aruba_config_before_after_no_change(self): + set_module_args(dict(lines=['hostname router'], + before=['test1', 'test2'], + after=['test3', 'test4'])) + self.execute_module() + + def test_aruba_config_config(self): + config = 'hostname localhost' + set_module_args(dict(lines=['hostname router'], config=config)) + commands = ['hostname router'] + self.execute_module(changed=True, commands=commands) + + def test_aruba_config_replace_block(self): + lines = ['description test string', 'test string'] + parents = ['interface GigabitEthernet0/0'] + set_module_args(dict(lines=lines, replace='block', parents=parents)) + commands = parents + lines + self.execute_module(changed=True, commands=commands) + + def test_aruba_config_force(self): + lines = ['hostname router'] + set_module_args(dict(lines=lines, match='none')) + self.execute_module(changed=True, commands=lines) + + def test_aruba_config_match_none(self): + lines = ['ip address 1.2.3.4 255.255.255.0', 'description test string'] + parents = ['interface GigabitEthernet0/0'] + set_module_args(dict(lines=lines, parents=parents, match='none')) + commands = parents + lines + self.execute_module(changed=True, commands=commands, sort=False) + + def test_aruba_config_match_strict(self): + lines = ['ip address 1.2.3.4 255.255.255.0', 'description test string', + 'shutdown'] + parents = ['interface GigabitEthernet0/0'] + set_module_args(dict(lines=lines, parents=parents, match='strict')) + commands = parents + ['shutdown'] + self.execute_module(changed=True, commands=commands, sort=False) + + def test_aruba_config_match_exact(self): + lines = ['ip address 1.2.3.4 255.255.255.0', 'description test string', + 'shutdown'] + parents = ['interface GigabitEthernet0/0'] + set_module_args(dict(lines=lines, parents=parents, match='exact')) + commands = parents + lines + self.execute_module(changed=True, commands=commands, sort=False) + + def test_aruba_encrypt_false(self): + set_module_args(dict(encrypt=False)) + self.execute_module() + self.assertEqual(self.run_commands.call_count, 2) + args = self.run_commands.call_args_list + self.assertIn('encrypt disable', args[0][0]) + self.assertIn('encrypt enable', args[1][0]) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_avi_user.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_avi_user.py new file mode 100644 index 000000000..d9463a346 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_avi_user.py @@ -0,0 +1,104 @@ +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +import os +import json +from ansible_collections.community.network.tests.unit.compat import unittest +from ansible_collections.community.network.tests.unit.compat.mock import Mock +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from ansible_collections.community.network.plugins.modules import avi_user + +fixture_path = os.path.join(os.path.dirname(__file__), 'avi_fixtures') +with open(fixture_path + '/avi_user.json') as json_file: + data = json.load(json_file) + + +class TestAviUser(unittest.TestCase): + + def test_create_user(self): + set_module_args({ + "avi_credentials": { + "controller": "192.0.2.13", + "username": "username", + "password": "fakepassword", + "api_version": "18.2.5" + }, + "state": "present", + "name": "testuser", + "obj_username": "testuser", + "obj_password": "test123", + "email": "test@abc.com", + "access": [ + { + "role_ref": "/api/role?name=Tenant-Admin", + "tenant_ref": "/api/tenant?name=Test-Admin", + "all_tenants": False + } + ], + "user_profile_ref": "/api/useraccountprofile?name=Default-User-Account-Profile", + "is_active": True, + "is_superuser": True, + "default_tenant_ref": "/api/tenant?name=admin" + }) + avi_user.avi_ansible_api = Mock(return_value=data['mock_create_res']) + response = avi_user.main() + assert response['changed'] + + def test_put_on_user(self): + set_module_args({ + "avi_credentials": { + "controller": "192.0.2.13", + "username": "username", + "password": "fakepassword", + "api_version": "18.2.5" + }, + "state": "present", + "avi_api_update_method": "put", + "name": "testuser", + "obj_username": "testuser", + "obj_password": "test123", + "email": "newemail@abc.com", + "access": [{ + "role_ref": "/api/role?name=Tenant-Admin", + "tenant_ref": "/api/tenant?name=Test-Admin", + "all_tenants": False + }], + "user_profile_ref": "/api/useraccountprofile?name=Default-User-Account-Profile", + "is_active": True, + "is_superuser": True, + "default_tenant_ref": "/api/tenant?name=admin" + }) + avi_user.avi_ansible_api = Mock(return_value=data['mock_put_res']) + response = avi_user.main() + assert response['changed'] + assert response['obj'] + assert response['old_obj'] + + def test_delete_user(self): + set_module_args({ + "avi_credentials": { + "controller": "192.0.2.13", + "username": "username", + "password": "fakepassword", + "api_version": "18.2.5" + + }, + "name": "testuser", + "obj_username": "testuser", + "obj_password": "test123", + "email": "test@abc.com", + "access": [{ + "role_ref": "/api/role?name=Tenant-Admin", + "tenant_ref": "/api/tenant?name=Test-Admin", + "all_tenants": False + }], + "user_profile_ref": "/api/useraccountprofile?name=Default-User-Account-Profile", + "is_active": True, + "is_superuser": True, + "default_tenant_ref": "/api/tenant?name=admin" + }) + avi_user.avi_ansible_api = Mock(return_value=data['mock_del_res']) + response = avi_user.main() + assert response['changed'] + assert not response['obj'] + assert response['old_obj'] diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_is_is_instance.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_is_is_instance.py new file mode 100644 index 000000000..98b70b4f7 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_is_is_instance.py @@ -0,0 +1,71 @@ +# (c) 2019 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) + +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import ce_is_is_instance +from ansible_collections.community.network.tests.unit.plugins.modules.ce_module import TestCloudEngineModule, load_fixture +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args + + +class TestCloudEngineLacpModule(TestCloudEngineModule): + module = ce_is_is_instance + + def setUp(self): + super(TestCloudEngineLacpModule, self).setUp() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.ce_is_is_instance.get_nc_config') + self.get_nc_config = self.mock_get_config.start() + + self.mock_set_config = patch('ansible_collections.community.network.plugins.modules.ce_is_is_instance.set_nc_config') + self.set_nc_config = self.mock_set_config.start() + self.set_nc_config.return_value = None + + def tearDown(self): + super(TestCloudEngineLacpModule, self).tearDown() + self.mock_set_config.stop() + self.mock_get_config.stop() + + def test_isis_instance_present(self): + xml_existing = load_fixture('ce_is_is_instance', 'before.txt') + xml_end_state = load_fixture('ce_is_is_instance', 'after.txt') + update = ['isis 100', 'vpn-instance __public__'] + self.get_nc_config.side_effect = (xml_existing, xml_end_state) + config = dict( + instance_id=100, + vpn_name='__public__', + state='present') + set_module_args(config) + result = self.execute_module(changed=True) + self.assertEquals(sorted(result['updates']), sorted(update)) + + def test_isis_instance_present(self): + xml_existing = load_fixture('ce_is_is_instance', 'after.txt') + xml_end_state = load_fixture('ce_is_is_instance', 'before.txt') + update = ['undo isis 100'] + self.get_nc_config.side_effect = (xml_existing, xml_end_state) + config = dict( + instance_id=100, + vpn_name='__public__', + state='absent') + set_module_args(config) + result = self.execute_module(changed=True) + self.assertEquals(sorted(result['updates']), sorted(update)) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_is_is_interface.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_is_is_interface.py new file mode 100644 index 000000000..0dec812ac --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_is_is_interface.py @@ -0,0 +1,100 @@ +# (c) 2019 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) + +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import ce_is_is_interface +from ansible_collections.community.network.tests.unit.plugins.modules.ce_module import TestCloudEngineModule, load_fixture +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args + + +class TestCloudEngineLacpModule(TestCloudEngineModule): + module = ce_is_is_interface + + def setUp(self): + super(TestCloudEngineLacpModule, self).setUp() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.ce_is_is_interface.get_nc_config') + self.get_nc_config = self.mock_get_config.start() + + self.mock_set_config = patch('ansible_collections.community.network.plugins.modules.ce_is_is_interface.set_nc_config') + self.set_nc_config = self.mock_set_config.start() + self.set_nc_config.return_value = None + + self.before = load_fixture('ce_is_is_interface', 'before_interface.txt') + self.after = load_fixture('ce_is_is_interface', 'after_interface.txt') + + def tearDown(self): + super(TestCloudEngineLacpModule, self).tearDown() + self.mock_set_config.stop() + self.mock_get_config.stop() + + def test_isis_interface_present(self): + update = ['interface 10GE1/0/1', + 'isis enable 100', + 'isis circuit-level level-1', + 'isis dis-priority 10 level-1', + 'isis ppp-negotiation 2-way', + 'isis cost 10 level-2'] + self.get_nc_config.side_effect = (self.before, self.after) + config = dict( + instance_id=100, + ifname='10GE1/0/1', + leveltype='level_1', + level1dispriority=10, + silentenable=True, + silentcost=True, + typep2penable=True, + snpacheck=True, + p2pnegotiationmode='2_way', + p2ppeeripignore=True, + ppposicpcheckenable=True, + level2cost=10 + ) + set_module_args(config) + result = self.execute_module(changed=True) + print(result['updates']) + self.assertEquals(sorted(result['updates']), sorted(update)) + + def test_isis_interface_absent(self): + update = ['interface 10GE1/0/1', + 'undo isis enable', + 'undo isis circuit-level', + 'undo isis ppp-negotiation'] + self.get_nc_config.side_effect = (self.after, self.before) + config = dict( + instance_id=100, + ifname='10GE1/0/1', + leveltype='level_1', + level1dispriority=10, + silentenable=True, + silentcost=True, + typep2penable=True, + snpacheck=True, + p2pnegotiationmode='2_way', + p2ppeeripignore=True, + ppposicpcheckenable=True, + level2cost=10, + state='absent' + ) + set_module_args(config) + result = self.execute_module(changed=True) + self.assertEquals(sorted(result['updates']), sorted(update)) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_is_is_view.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_is_is_view.py new file mode 100644 index 000000000..5bb08849b --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_is_is_view.py @@ -0,0 +1,248 @@ +# (c) 2019 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) + +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import ce_is_is_view +from ansible_collections.community.network.tests.unit.plugins.modules.ce_module import TestCloudEngineModule, load_fixture +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args + + +class TestCloudEngineLacpModule(TestCloudEngineModule): + module = ce_is_is_view + + def setUp(self): + super(TestCloudEngineLacpModule, self).setUp() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.ce_is_is_view.get_nc_config') + self.get_nc_config = self.mock_get_config.start() + + self.mock_set_config = patch('ansible_collections.community.network.plugins.modules.ce_is_is_view.set_nc_config') + self.set_nc_config = self.mock_set_config.start() + self.set_nc_config.return_value = None + + self.before = load_fixture('ce_is_is_view', 'before.txt') + self.after = load_fixture('ce_is_is_view', 'after.txt') + + def tearDown(self): + super(TestCloudEngineLacpModule, self).tearDown() + self.mock_set_config.stop() + self.mock_get_config.stop() + + def test_ce_is_is_view_absent(self): + self.get_nc_config.side_effect = (self.after, self.before) + config = dict( + instance_id=100, + description='ISIS', + islevel='level_1', + coststyle='narrow', + stdlevel2cost=60, + stdbandwidth=100, + autocostenable=True, + autocostenablecompatible=True, + netentity='netentity', + preference_value=100, + route_policy_name='route', + max_load=32, + ip_address='1.1.1.1', + weight=100, + penetration_direct='level2-level1', + import_routepolicy_name='import', + tag=100, + allow_filter=True, + allow_up_down=True, + enablelevel1tolevel2=True, + defaultmode='always', + mode_routepolicyname='mode', + cost=100, + mode_tag=100, + level_type='level_1', + avoid_learning=True, + protocol='ospf', + processid=100, + cost_type='external', + import_cost=100, + import_tag=100, + import_route_policy='import', + impotr_leveltype='level_1', + inheritcost=True, + permitibgp=True, + export_protocol='ospf', + export_policytype='aclNumOrName', + export_processid=100, + export_ipprefix='export', + export_routepolicyname='export', + import_aclnumorname='acl', + import_routepolicyname='import', + bfd_min_rx=100, + bfd_min_tx=100, + bfd_multiplier_num=10, + state='absent' + ) + set_module_args(config) + self.execute_module(changed=True) + + def test_ce_is_is_view_present(self): + self.get_nc_config.side_effect = (self.before, self.after) + update = ['isis 100', + 'description ISIS', + 'is-level level_1', + 'cost-style narrow', + 'circuit-cost 60 level-2', + 'bandwidth-reference 100', + 'network-entity netentity', + 'preference 100 route-policy route', + 'maximum load-balancing 32', + 'nexthop 1.1.1.1 weight 100', + 'import-route isis level-2 into level-1 filter-policy route-policy import tag 100 direct allow-filter-policy allow-up-down-bit', + 'preference 100 route-policy route', + 'undo import-route isis level-1 into level-2 disable', + 'default-route-advertise always cost 100 tag 100 level-1 avoid-learning', + 'import-route isis level-2 into level-1 filter-policy route-policy import tag 100 direct allow-filter-policy allow-up-down-bit', + 'preference 100 route-policy route', + 'import-route ospf 100 inherit-cost cost-type external cost 100 tag 100 route-policy import level-1', + 'default-route-advertise always cost 100 tag 100 level-1 avoid-learning', + 'import-route isis level-2 into level-1 filter-policy route-policy import tag 100 direct allow-filter-policy allow-up-down-bit', + 'preference 100 route-policy route', + 'bfd all-interfaces enable', + 'bfd all-interfaces min-rx-interval 100 min-tx-interval 100 detect-multiplier 10', + 'import-route ospf 100 inherit-cost cost-type external cost 100 tag 100 route-policy import level-1', + 'default-route-advertise always cost 100 tag 100 level-1 avoid-learning', + 'import-route isis level-2 into level-1 filter-policy route-policy import tag 100 direct allow-filter-policy allow-up-down-bit', + 'preference 100 route-policy route', + 'filter-policy ip-prefix export route-policy export export ospf 100', + 'bfd all-interfaces min-rx-interval 100 min-tx-interval 100 detect-multiplier 10', + 'import-route ospf 100 inherit-cost cost-type external cost 100 tag 100 route-policy import level-1', + 'default-route-advertise always cost 100 tag 100 level-1 avoid-learning', + 'import-route isis level-2 into level-1 filter-policy route-policy import tag 100 direct allow-filter-policy allow-up-down-bit', + 'preference 100 route-policy route', + 'filter-policy acl-name acl route-policy importimport', + 'filter-policy ip-prefix export route-policy export export ospf 100', + 'bfd all-interfaces min-rx-interval 100 min-tx-interval 100 detect-multiplier 10', + 'import-route ospf 100 inherit-cost cost-type external cost 100 tag 100 route-policy import level-1', + 'default-route-advertise always cost 100 tag 100 level-1 avoid-learning', + 'import-route isis level-2 into level-1 filter-policy route-policy import tag 100 direct allow-filter-policy allow-up-down-bit', + 'preference 100 route-policy route', + 'auto-cost enable', + 'auto-cost enable compatible'] + + config = dict( + instance_id=100, + description='ISIS', + islevel='level_1', + coststyle='narrow', + stdlevel2cost=60, + stdbandwidth=100, + autocostenable=True, + autocostenablecompatible=True, + netentity='netentity', + preference_value=100, + route_policy_name='route', + max_load=32, + ip_address='1.1.1.1', + weight=100, + penetration_direct='level2-level1', + import_routepolicy_name='import', + tag=100, + allow_filter=True, + allow_up_down=True, + enablelevel1tolevel2=True, + defaultmode='always', + mode_routepolicyname='mode', + cost=100, + mode_tag=100, + level_type='level_1', + avoid_learning=True, + protocol='ospf', + processid=100, + cost_type='external', + import_cost=100, + import_tag=100, + import_route_policy='import', + impotr_leveltype='level_1', + inheritcost=True, + permitibgp=True, + export_protocol='ospf', + export_policytype='aclNumOrName', + export_processid=100, + export_ipprefix='export', + export_routepolicyname='export', + import_aclnumorname='acl', + import_routepolicyname='import', + bfd_min_rx=100, + bfd_min_tx=100, + bfd_multiplier_num=10 + ) + set_module_args(config) + result = self.execute_module(changed=True) + self.assertEquals(sorted(result['updates']), sorted(update)) + + def test_ce_is_is_view_no_changed(self): + self.get_nc_config.side_effect = (self.after, self.after) + config = dict( + instance_id=100, + description='ISIS', + islevel='level_1', + coststyle='narrow', + stdlevel2cost=60, + stdbandwidth=100, + autocostenable=True, + autocostenablecompatible=True, + netentity='netentity', + preference_value=100, + route_policy_name='route', + max_load=32, + ip_address='1.1.1.1', + weight=100, + penetration_direct='level2-level1', + import_routepolicy_name='import', + tag=100, + allow_filter=True, + allow_up_down=True, + enablelevel1tolevel2=True, + defaultmode='always', + mode_routepolicyname='mode', + cost=100, + mode_tag=100, + level_type='level_1', + avoid_learning=True, + protocol='ospf', + processid=100, + cost_type='external', + import_cost=100, + import_tag=100, + import_route_policy='import', + impotr_leveltype='level_1', + inheritcost=True, + permitibgp=True, + export_protocol='ospf', + export_policytype='aclNumOrName', + export_processid=100, + export_ipprefix='export', + export_routepolicyname='export', + import_aclnumorname='acl', + import_routepolicyname='import', + bfd_min_rx=100, + bfd_min_tx=100, + bfd_multiplier_num=10 + ) + set_module_args(config) + self.execute_module(changed=False) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_lacp.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_lacp.py new file mode 100644 index 000000000..a82202cf0 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_lacp.py @@ -0,0 +1,134 @@ +# (c) 2019 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) + +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import ce_lacp +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .ce_module import TestCloudEngineModule, load_fixture + + +class TestCloudEngineLacpModule(TestCloudEngineModule): + module = ce_lacp + + def setUp(self): + super(TestCloudEngineLacpModule, self).setUp() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.ce_lacp.get_nc_config') + self.get_nc_config = self.mock_get_config.start() + + self.mock_set_config = patch('ansible_collections.community.network.plugins.modules.ce_lacp.set_nc_config') + self.set_nc_config = self.mock_set_config.start() + self.set_nc_config.return_value = None + + def tearDown(self): + super(TestCloudEngineLacpModule, self).tearDown() + self.mock_set_config.stop() + self.mock_get_config.stop() + + def test_lacp_eturnk_present(self): + xml_existing = load_fixture('ce_lacp', 'ce_lacp_00.txt') + xml_end_state = load_fixture('ce_lacp', 'ce_lacp_01.txt') + update = ['lacp max active-linknumber 13', + 'lacp dampening state-flapping', + 'lacp port-id-extension enable', + 'lacp collector delay 12', + 'lacp preempt enable', + 'lacp system-id 0000-1111-2222', + 'lacp mixed-rate link enable', + 'lacp preempt delay 130', + 'lacp timeout user-defined 10', + 'lacp dampening unexpected-mac disable'] + self.get_nc_config.side_effect = (xml_existing, xml_end_state) + set_module_args(dict( + mode='Dynamic', + trunk_id='10', + preempt_enable='true', + state_flapping='true', + port_id_extension_enable='true', + unexpected_mac_disable='true', + system_id='0000-1111-2222', + timeout_type='Fast', + fast_timeout='10', + mixed_rate_link_enable='true', + preempt_delay=11, + collector_delay=12, + max_active_linknumber=13, + select='Speed', + state='present')) + result = self.execute_module(changed=True) + self.assertEqual(sorted(result['updates']), sorted(update)) + + def test_lacp_eturnk_absent(self): + xml_existing = load_fixture('ce_lacp', 'ce_lacp_10.txt') + xml_end_state = load_fixture('ce_lacp', 'ce_lacp_00.txt') + default_values = ['undo lacp priority', + 'lacp timeout Fast', + 'lacp max active-linknumber 1', + 'lacp collector delay 0', + 'lacp preempt enable false', + 'lacp dampening state-flapping false', + 'lacp dampening unexpected-mac disable false', + 'lacp mixed-rate link enable false', + 'lacp port-id-extension enable false', + 'lacp preempt delay 30', + 'lacp select Speed', + 'lacp system-id 11-22-33', + 'lacp timeout user-defined 3'] + self.get_nc_config.side_effect = (xml_existing, xml_end_state) + set_module_args(dict( + mode='Dynamic', + trunk_id='10', + preempt_enable='true', + state_flapping='true', + port_id_extension_enable='true', + unexpected_mac_disable='true', + system_id='0000-1111-2222', + timeout_type='Fast', + fast_timeout='10', + mixed_rate_link_enable='true', + preempt_delay=11, + collector_delay=12, + max_active_linknumber=13, + select='Speed', + state='absent' + )) + result = self.execute_module(changed=True) + self.assertEqual(sorted(result['updates']), sorted(default_values)) + + def test_lacp_global_present(self): + xml_existing = load_fixture('ce_lacp', 'ce_lacp_10.txt') + xml_end_state = load_fixture('ce_lacp', 'ce_lacp_11.txt') + self.get_nc_config.side_effect = (xml_existing, xml_end_state) + set_module_args(dict(global_priority=32769, + state='present')) + result = self.execute_module(changed=True) + self.assertEqual(result['updates'], ['lacp priority 32769']) + + def test_lacp_global_absent(self): + xml_existing = load_fixture('ce_lacp', 'ce_lacp_11.txt') + xml_end_state = load_fixture('ce_lacp', 'ce_lacp_10.txt') + self.get_nc_config.side_effect = (xml_existing, xml_end_state) + set_module_args(dict(global_priority=32769, + state='absent')) + result = self.execute_module(changed=True) + # excpect: lacp priority is set to default value(32768) + self.assertEqual(result['updates'], ['lacp priority 32768']) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_lldp.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_lldp.py new file mode 100644 index 000000000..28070792e --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_lldp.py @@ -0,0 +1,113 @@ +# (c) 2019 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) + +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import ce_lldp +from ansible_collections.community.network.tests.unit.plugins.modules.ce_module import TestCloudEngineModule, load_fixture +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args + + +class TestCloudEngineLacpModule(TestCloudEngineModule): + module = ce_lldp + + def setUp(self): + super(TestCloudEngineLacpModule, self).setUp() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.ce_lldp.get_nc_config') + self.get_nc_config = self.mock_get_config.start() + + self.mock_set_config = patch('ansible_collections.community.network.plugins.modules.ce_lldp.set_nc_config') + self.set_nc_config = self.mock_set_config.start() + self.set_nc_config.return_value = None + xml_existing_1 = load_fixture('ce_lldp', 'ce_lldp_global_00.txt') + xml_existing_2 = load_fixture('ce_lldp', 'ce_lldp_global_01.txt') + xml_end_state_1 = load_fixture('ce_lldp', 'ce_lldpSysParameter_00.txt') + xml_end_state_2 = load_fixture('ce_lldp', 'ce_lldpSysParameter_01.txt') + self.get_side_effect = (xml_existing_1, xml_existing_2, xml_end_state_1, xml_end_state_2) + self.result_ok = load_fixture('ce_lldp', 'result_ok.txt') + + def tearDown(self): + super(TestCloudEngineLacpModule, self).tearDown() + self.mock_set_config.stop() + self.mock_get_config.stop() + + def test_lldp_global_present(self): + update = ['lldp enable', + 'lldp mdn enable', + 'lldp mdn enable', + 'lldp transmit interval 8', + 'lldp transmit multiplier 8', + 'lldp restart 8', + 'lldp transmit delay 8', + 'lldp trap-interval 8', + 'lldp fast-count 8', + 'lldp mdn trap-interval 8', + 'lldp management-address 1.1.1.1', + 'lldp management-address bind interface bind-name'] + self.get_nc_config.side_effect = self.get_side_effect + self.set_nc_config.side_effect = [self.result_ok] * 11 + set_module_args(dict( + lldpenable='enabled', + mdnstatus='rxOnly', + interval=8, + hold_multiplier=8, + restart_delay=8, + transmit_delay=8, + notification_interval=8, + fast_count=8, + mdn_notification_interval=8, + management_address='1.1.1.1', + bind_name='bind-name') + ) + result = self.execute_module(changed=True) + self.assertEqual(sorted(result['updates']), sorted(update)) + + def test_lacp_sys_parameter_present(self): + update = ['lldp enable', + 'lldp mdn enable', + 'lldp mdn enable', + 'lldp transmit interval 8', + 'lldp transmit multiplier 8', + 'lldp restart 8', + 'lldp transmit delay 8', + 'lldp trap-interval 8', + 'lldp fast-count 8', + 'lldp mdn trap-interval 8', + 'lldp management-address 1.1.1.1', + 'lldp management-address bind interface bind-name'] + self.get_nc_config.side_effect = self.get_side_effect + self.set_nc_config.side_effect = [self.result_ok] * 11 + set_module_args(dict( + lldpenable='enabled', + mdnstatus='rxOnly', + interval=8, + hold_multiplier=8, + restart_delay=8, + transmit_delay=8, + notification_interval=8, + fast_count=8, + mdn_notification_interval=8, + management_address='1.1.1.1', + bind_name='bind-name') + ) + result = self.execute_module(changed=True) + self.assertEqual(sorted(result['updates']), sorted(update)) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_lldp_interface.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_lldp_interface.py new file mode 100644 index 000000000..a371d564e --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_lldp_interface.py @@ -0,0 +1,111 @@ +# (c) 2019 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) + +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import ce_lldp_interface +from ansible_collections.community.network.tests.unit.plugins.modules.ce_module import TestCloudEngineModule, load_fixture +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args + + +class TestCloudEngineLacpModule(TestCloudEngineModule): + module = ce_lldp_interface + + def setUp(self): + super(TestCloudEngineLacpModule, self).setUp() + + # self.mock_get_config = patch('ansible.modules.network.cloudengine.ce_lldp.get_nc_config') + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.ce_lldp_interface.get_nc_config') + self.get_nc_config = self.mock_get_config.start() + + self.mock_set_nc_config = patch('ansible_collections.community.network.plugins.modules.ce_lldp_interface.set_nc_config') + self.set_nc_config = self.mock_set_nc_config.start() + self.xml_absent = load_fixture('ce_lldp_interface', 'lldp_interface_existing.txt') + self.xml_present = load_fixture('ce_lldp_interface', 'lldp_interface_changed.txt') + self.result_ok = load_fixture('ce_lldp_interface', 'result_ok.txt') + + def tearDown(self): + super(TestCloudEngineLacpModule, self).tearDown() + self.mock_set_nc_config.stop() + self.mock_get_config.stop() + + def test_lldp_present(self): + self.get_nc_config.side_effect = (self.xml_absent, self.xml_present) * 5 + self.set_nc_config.return_value = self.result_ok + config = dict( + lldpenable='enabled', + function_lldp_interface_flag='disableINTERFACE', + type_tlv_disable='basic_tlv', + type_tlv_enable='dot1_tlv', + ifname='10GE1/0/1', + lldpadminstatus='txOnly', + manaddrtxenable=True, + portdesctxenable=True, + syscaptxenable=True, + sysdesctxenable=True, + sysnametxenable=True, + portvlantxenable=True, + protovlantxenable=True, + txprotocolvlanid=True, + vlannametxenable=True, + txvlannameid=8, + txinterval=8, + protoidtxenable=True, + macphytxenable=True, + linkaggretxenable=True, + maxframetxenable=True, + eee=True, + dcbx=True + ) + set_module_args(config) + result = self.execute_module(changed=True) + + def test_lldp_absent(self): + self.get_nc_config.side_effect = (self.xml_present, self.xml_present, self.xml_absent, self.xml_absent) + self.set_nc_config.return_value = self.result_ok + config = dict( + lldpenable='enabled', + function_lldp_interface_flag='disableINTERFACE', + type_tlv_disable='basic_tlv', + type_tlv_enable='dot1_tlv', + ifname='10GE1/0/1', + lldpadminstatus='txOnly', + manaddrtxenable=False, + portdesctxenable=False, + syscaptxenable=False, + sysdesctxenable=False, + sysnametxenable=False, + portvlantxenable=False, + protovlantxenable=False, + txprotocolvlanid=False, + vlannametxenable=False, + txvlannameid=18, + txinterval=18, + protoidtxenable=False, + macphytxenable=False, + linkaggretxenable=False, + maxframetxenable=False, + eee=False, + dcbx=False, + state='absent' + ) + set_module_args(config) + result = self.execute_module(changed=False) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_mdn_interface.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_mdn_interface.py new file mode 100644 index 000000000..f394b887b --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_mdn_interface.py @@ -0,0 +1,67 @@ +# (c) 2019 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) + +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import ce_mdn_interface +from ansible_collections.community.network.tests.unit.plugins.modules.ce_module import TestCloudEngineModule, load_fixture +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args + + +class TestCloudEngineLacpModule(TestCloudEngineModule): + module = ce_mdn_interface + + def setUp(self): + super(TestCloudEngineLacpModule, self).setUp() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.ce_mdn_interface.get_nc_config') + self.get_nc_config = self.mock_get_config.start() + + self.mock_set_config = patch('ansible_collections.community.network.plugins.modules.ce_mdn_interface.set_nc_config') + self.set_nc_config = self.mock_set_config.start() + self.set_nc_config.return_value = "<ok/>" + self.before = load_fixture('ce_mdn_interface', 'before.txt') + self.after = load_fixture('ce_mdn_interface', 'after.txt') + + def tearDown(self): + super(TestCloudEngineLacpModule, self).tearDown() + self.mock_set_config.stop() + self.mock_get_config.stop() + + def test_mdn_enable(self): + update = [['lldp enable', 'interface 10GE1/0/1', 'lldp mdn enable']] + self.get_nc_config.side_effect = (self.before, self.before, self.after, self.after) + set_module_args(dict( + lldpenable='enabled', + mdnstatus='rxOnly', + ifname='10GE1/0/1') + ) + result = self.execute_module(changed=True) + self.assertEquals(sorted(result['updates']), sorted(update)) + + def test_repeat_enable(self): + self.get_nc_config.side_effect = (self.after, self.after, self.after, self.after, ) + set_module_args(dict( + lldpenable='enabled', + mdnstatus='rxOnly', + ifname='10GE1/0/1') + ) + self.execute_module(changed=False) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_multicast_global.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_multicast_global.py new file mode 100644 index 000000000..01e6d14ce --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_multicast_global.py @@ -0,0 +1,69 @@ +# (c) 2019 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) + +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import ce_multicast_global +from ansible_collections.community.network.tests.unit.plugins.modules.ce_module import TestCloudEngineModule, load_fixture +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args + + +class TestCloudEngineLacpModule(TestCloudEngineModule): + module = ce_multicast_global + + def setUp(self): + super(TestCloudEngineLacpModule, self).setUp() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.ce_multicast_global.get_nc_config') + self.get_nc_config = self.mock_get_config.start() + + self.mock_set_config = patch('ansible_collections.community.network.plugins.modules.ce_multicast_global.set_nc_config') + self.set_nc_config = self.mock_set_config.start() + self.set_nc_config.return_value = "<ok/>" + self.before = load_fixture('ce_multicast_global', 'before.txt') + self.after = load_fixture('ce_multicast_global', 'after.txt') + + def tearDown(self): + super(TestCloudEngineLacpModule, self).tearDown() + self.mock_set_config.stop() + self.mock_get_config.stop() + + def test_multicast_enable(self): + update = ['multicast routing-enable'] + self.get_nc_config.side_effect = (self.before, self.after) + set_module_args(dict( + aftype='v4', + vrf='vpna', + state='present') + ) + result = self.execute_module(changed=True) + self.assertEquals(sorted(result['updates']), sorted(update)) + + def test_multicast_undo_enable(self): + update = ['undo multicast routing-enable'] + self.get_nc_config.side_effect = (self.after, self.before) + set_module_args(dict( + aftype='v4', + vrf='vpna', + state='absent') + ) + result = self.execute_module(changed=True) + self.assertEquals(sorted(result['updates']), sorted(update)) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_multicast_igmp_enable.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_multicast_igmp_enable.py new file mode 100644 index 000000000..3d74b7a2b --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_multicast_igmp_enable.py @@ -0,0 +1,80 @@ +# (c) 2019 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) + +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import ce_multicast_igmp_enable +from ansible_collections.community.network.tests.unit.plugins.modules.ce_module import TestCloudEngineModule, load_fixture +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args + + +class TestCloudEngineLacpModule(TestCloudEngineModule): + module = ce_multicast_igmp_enable + + def setUp(self): + super(TestCloudEngineLacpModule, self).setUp() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.ce_multicast_igmp_enable.get_nc_config') + self.get_nc_config = self.mock_get_config.start() + + self.mock_set_config = patch('ansible_collections.community.network.plugins.modules.ce_multicast_igmp_enable.set_nc_config') + self.set_nc_config = self.mock_set_config.start() + self.set_nc_config.return_value = "<ok/>" + self.before = load_fixture('ce_multicast_igmp_enable', 'before.txt') + self.after = load_fixture('ce_multicast_igmp_enable', 'after.txt') + + def tearDown(self): + super(TestCloudEngineLacpModule, self).tearDown() + self.mock_set_config.stop() + self.mock_get_config.stop() + + def test_igmp_enable(self): + update = ['igmp snooping enable', + 'igmp snooping version 2', + 'igmp snooping proxy'] + self.get_nc_config.side_effect = (self.before, self.after) + set_module_args(dict( + aftype='v4', + features='vlan', + vlan_id=1, + igmp=True, + version=2, + proxy=True) + ) + result = self.execute_module(changed=True) + self.assertEquals(sorted(result['updates']), sorted(update)) + + def test_igmp_undo_enable(self): + update = ['undo igmp snooping enable', + 'undo igmp snooping version', + 'undo igmp snooping proxy'] + self.get_nc_config.side_effect = (self.after, self.before) + set_module_args(dict( + aftype='v4', + features='vlan', + vlan_id=1, + igmp=True, + version=2, + proxy=True, + state='absent') + ) + result = self.execute_module(changed=True) + self.assertEquals(sorted(result['updates']), sorted(update)) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_static_route_bfd.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_static_route_bfd.py new file mode 100644 index 000000000..644cb0a68 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_ce_static_route_bfd.py @@ -0,0 +1,102 @@ +# (c) 2019 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) + +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import ce_static_route_bfd +from ansible_collections.community.network.tests.unit.plugins.modules.ce_module import TestCloudEngineModule, load_fixture +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args + + +class TestCloudEngineLacpModule(TestCloudEngineModule): + module = ce_static_route_bfd + + def setUp(self): + super(TestCloudEngineLacpModule, self).setUp() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.ce_static_route_bfd.get_nc_config') + self.get_nc_config = self.mock_get_config.start() + + self.mock_set_config = patch('ansible_collections.community.network.plugins.modules.ce_static_route_bfd.set_nc_config') + self.set_nc_config = self.mock_set_config.start() + self.set_nc_config.return_value = load_fixture('ce_lldp', 'result_ok.txt') + + def tearDown(self): + super(TestCloudEngineLacpModule, self).tearDown() + self.mock_set_config.stop() + self.mock_get_config.stop() + + def test_ce_static_route_bfd_changed_false(self): + srBfdPara_1 = load_fixture('ce_static_route_bfd', 'srBfdPara_1.txt') + staticrtbase_1 = load_fixture('ce_static_route_bfd', 'staticrtbase_1.txt') + self.get_nc_config.side_effect = (srBfdPara_1, srBfdPara_1, staticrtbase_1, staticrtbase_1) + + config = dict( + prefix='255.255.0.0', + mask=22, + aftype='v4', + next_hop='10.10.1.1', + nhp_interface='10GE1/0/1', + vrf='mgnt', + destvrf='_public_', + tag=23, + description='for a test', + pref='22', + function_flag='dynamicBFD', + min_tx_interval='32', + min_rx_interval='23', + detect_multiplier='24', + bfd_session_name='43' + ) + set_module_args(config) + self.execute_module(changed=False) + + def test_ce_static_route_bfd_changed_true(self): + srBfdPara_1 = load_fixture('ce_static_route_bfd', 'srBfdPara_1.txt') + srBfdPara_2 = load_fixture('ce_static_route_bfd', 'srBfdPara_2.txt') + staticrtbase_1 = load_fixture('ce_static_route_bfd', 'staticrtbase_1.txt') + staticrtbase_2 = load_fixture('ce_static_route_bfd', 'staticrtbase_2.txt') + self.get_nc_config.side_effect = (srBfdPara_1, staticrtbase_1, srBfdPara_2, staticrtbase_2) + updates = ['ip route-static vpn-instance mgnt 255.255.0.0 255.255.252.0 10GE1/0/1 10.10.1.1', + ' preference 22', + ' tag 23', + ' track bfd-session 43', + ' description for a test'] + config = dict( + prefix='255.255.0.0', + mask=22, + aftype='v4', + next_hop='10.10.1.1', + nhp_interface='10GE1/0/1', + vrf='mgnt', + destvrf='_public_', + tag=23, + description='for a test', + pref='22', + function_flag='dynamicBFD', + min_tx_interval='32', + min_rx_interval='23', + detect_multiplier='24', + bfd_session_name='43' + ) + set_module_args(config) + result = self.execute_module(changed=True) + self.assertEqual(sorted(result['updates']), sorted(updates)) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_banner.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_banner.py new file mode 100644 index 000000000..1a45a2c3a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_banner.py @@ -0,0 +1,62 @@ +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import cnos_banner +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .cnos_module import TestCnosModule, load_fixture + + +class TestCnosBannerModule(TestCnosModule): + + module = cnos_banner + + def setUp(self): + super(TestCnosBannerModule, self).setUp() + + self.mock_exec_command = patch('ansible_collections.community.network.plugins.modules.cnos_banner.exec_command') + self.exec_command = self.mock_exec_command.start() + + self.mock_load_config = patch('ansible_collections.community.network.plugins.modules.cnos_banner.load_config') + self.load_config = self.mock_load_config.start() + + def tearDown(self): + super(TestCnosBannerModule, self).tearDown() + self.mock_exec_command.stop() + self.mock_load_config.stop() + + def load_fixtures(self, commands=None): + self.exec_command.return_value = (0, load_fixture('cnos_banner_show_banner.txt').strip(), None) + self.load_config.return_value = dict(diff=None, session='session') + + def test_cnos_banner_create(self): + for banner_type in ('login', 'motd'): + set_module_args(dict(banner=banner_type, text='test\nbanner\nstring')) + commands = ['banner {0} test'.format(banner_type), 'banner {0} banner'.format(banner_type), 'banner {0} string'.format(banner_type)] + self.execute_module(changed=True, commands=commands) + + def test_cnos_banner_remove(self): + set_module_args(dict(banner='login', state='absent')) + commands = ['no banner login'] + self.execute_module(changed=True, commands=commands) + + def test_cnos_banner_nochange(self): + banner_text = load_fixture('cnos_banner_show_banner.txt').strip() + set_module_args(dict(banner='login', text=banner_text)) + self.execute_module() diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_bgp.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_bgp.py new file mode 100644 index 000000000..e4010c640 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_bgp.py @@ -0,0 +1,95 @@ +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import cnos_bgp +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .cnos_module import TestCnosModule, load_fixture + + +class TestCnosBgpModule(TestCnosModule): + + module = cnos_bgp + + def setUp(self): + super(TestCnosBgpModule, self).setUp() + + self.mock_run_cnos_commands = patch('ansible_collections.community.network.plugins.module_utils.network.cnos.cnos.run_cnos_commands') + self.run_cnos_commands = self.mock_run_cnos_commands.start() + + def tearDown(self): + super(TestCnosBgpModule, self).tearDown() + self.mock_run_cnos_commands.stop() + + def load_fixtures(self, commands=None, transport='cli'): + self.run_cnos_commands.return_value = [load_fixture('cnos_bgp_config.cfg')] + + def test_bgp_neighbor(self): + set_module_args({'username': 'admin', 'password': 'pass', + 'host': '10.241.107.39', 'deviceType': 'g8272_cnos', + 'outputfile': self.test_log, 'asNum': '33', + 'bgpArg1': 'neighbor', 'bgpArg2': '10.241.107.40', + 'bgpArg3': '13', 'bgpArg4': 'address-family', + 'bgpArg5': 'ipv4', 'bgpArg6': 'next-hop-self'}) + result = self.execute_module(changed=True) + expected_result = 'BGP configurations accomplished' + self.assertEqual(result['msg'], expected_result) + + def test_cnos_bgp_dampening(self): + set_module_args({'username': 'admin', 'password': 'pass', + 'host': '10.241.107.39', 'deviceType': 'g8272_cnos', + 'outputfile': self.test_log, 'asNum': '33', + 'bgpArg1': 'address-family', 'bgpArg2': 'ipv4', + 'bgpArg3': 'dampening', 'bgpArg4': '13', + 'bgpArg5': '233', 'bgpArg6': '333', + 'bgpArg7': '15', 'bgpArg8': '33'}) + result = self.execute_module(changed=True) + expected_result = 'BGP configurations accomplished' + self.assertEqual(result['msg'], expected_result) + + def test_cnos_bgp_network(self): + set_module_args({'username': 'admin', 'password': 'pass', + 'host': '10.241.107.39', 'deviceType': 'g8272_cnos', + 'outputfile': self.test_log, 'asNum': '33', + 'bgpArg1': 'address-family', 'bgpArg2': 'ipv4', + 'bgpArg3': 'network', 'bgpArg4': '1.2.3.4/5', + 'bgpArg5': 'backdoor'}) + result = self.execute_module(changed=True) + expected_result = 'BGP configurations accomplished' + self.assertEqual(result['msg'], expected_result) + + def test_cnos_bgp_clusterid(self): + set_module_args({'username': 'admin', 'password': 'pass', + 'host': '10.241.107.39', 'deviceType': 'g8272_cnos', + 'outputfile': self.test_log, 'asNum': '33', + 'bgpArg1': 'cluster-id', 'bgpArg2': '10.241.107.40'}) + result = self.execute_module(changed=True) + expected_result = 'BGP configurations accomplished' + self.assertEqual(result['msg'], expected_result) + + def test_cnos_bgp_graceful_restart(self): + set_module_args({'username': 'admin', 'password': 'pass', + 'host': '10.241.107.39', 'deviceType': 'g8272_cnos', + 'outputfile': self.test_log, 'asNum': '33', + 'bgpArg1': 'graceful-restart', 'bgpArg2': '333'}) + result = self.execute_module(changed=True) + expected_result = 'BGP configurations accomplished' + self.assertEqual(result['msg'], expected_result) + + def test_cnos_bgp_routerid(self): + set_module_args({'username': 'admin', 'password': 'pass', + 'host': '10.241.107.39', 'deviceType': 'g8272_cnos', + 'outputfile': self.test_log, 'asNum': '33', + 'bgpArg1': 'router-id', 'bgpArg2': '1.2.3.4'}) + result = self.execute_module(changed=True) + expected_result = 'BGP configurations accomplished' + self.assertEqual(result['msg'], expected_result) + + def test_cnos_bgp_vrf(self): + set_module_args({'username': 'admin', 'password': 'pass', + 'host': '10.241.107.39', 'deviceType': 'g8272_cnos', + 'outputfile': self.test_log, 'asNum': '33', + 'bgpArg1': 'vrf'}) + result = self.execute_module(changed=True) + expected_result = 'BGP configurations accomplished' + self.assertEqual(result['msg'], expected_result) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_command.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_command.py new file mode 100644 index 000000000..6b7563efc --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_command.py @@ -0,0 +1,104 @@ +# Copyright (C) 2017 Lenovo, Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import cnos_command +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .cnos_module import TestCnosModule, load_fixture + + +class TestCnosCommandModule(TestCnosModule): + + module = cnos_command + + def setUp(self): + super(TestCnosCommandModule, self).setUp() + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.cnos_command.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestCnosCommandModule, self).tearDown() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + + def load_from_file(*args, **kwargs): + module, commands = args + output = list() + + for item in commands: + try: + command = item + except ValueError: + command = 'show version' + filename = str(command).replace(' ', '_') + output.append(load_fixture(filename)) + return output + + self.run_commands.side_effect = load_from_file + + def test_cnos_command_simple(self): + set_module_args(dict(commands=['show version'])) + result = self.execute_module() + self.assertEqual(len(result['stdout']), 1) + self.assertTrue(result['stdout'][0].startswith('Lenovo Networking Operating System (NOS) Software')) + + def test_cnos_command_multiple(self): + set_module_args(dict(commands=['show version', 'show running-config'])) + result = self.execute_module() + self.assertEqual(len(result['stdout']), 2) + self.assertTrue(result['stdout'][0].startswith('Lenovo Networking Operating System (NOS) Software')) + + def test_cnos_command_wait_for(self): + wait_for = 'result[0] contains "Lenovo Networking Operating System (NOS) Software"' + set_module_args(dict(commands=['show version'], wait_for=wait_for)) + self.execute_module() + + def test_cnos_command_wait_for_fails(self): + wait_for = 'result[0] contains "test string"' + set_module_args(dict(commands=['show version'], wait_for=wait_for)) + self.execute_module(failed=True) + self.assertEqual(self.run_commands.call_count, 10) + + def test_cnos_command_retries(self): + wait_for = 'result[0] contains "test string"' + set_module_args(dict(commands=['show version'], wait_for=wait_for, retries=2)) + self.execute_module(failed=True) + self.assertEqual(self.run_commands.call_count, 2) + + def test_cnos_command_match_any(self): + wait_for = ['result[0] contains "Lenovo Networking Operating System (NOS) Software"', + 'result[0] contains "test string"'] + set_module_args(dict(commands=['show version'], wait_for=wait_for, match='any')) + self.execute_module() + + def test_cnos_command_match_all(self): + wait_for = ['result[0] contains "Lenovo Networking Operating System (NOS) Software"', + 'result[0] contains "Lenovo"'] + set_module_args(dict(commands=['show version'], wait_for=wait_for, match='all')) + self.execute_module() + + def test_cnos_command_match_all_failure(self): + wait_for = ['result[0] contains "Lenovo ENOS"', + 'result[0] contains "test string"'] + commands = ['show version', 'show run'] + set_module_args(dict(commands=commands, wait_for=wait_for, match='all')) + self.execute_module(failed=True) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_facts.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_facts.py new file mode 100644 index 000000000..c55281896 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_facts.py @@ -0,0 +1,82 @@ +# (c) 2016 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import json + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from .cnos_module import TestCnosModule, load_fixture +from ansible_collections.community.network.plugins.modules import cnos_facts +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args + + +class TestCnosFacts(TestCnosModule): + + module = cnos_facts + + def setUp(self): + super(TestCnosFacts, self).setUp() + self.mock_run_commands = patch( + 'ansible_collections.community.network.plugins.modules.cnos_facts.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestCnosFacts, self).tearDown() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + + def load_from_file(*args, **kwargs): + module, commands = args + output = list() + + for item in commands: + try: + obj = json.loads(item) + command = obj['command'] + except ValueError: + command = item + filename = str(command).replace(' ', '_') + filename = filename.replace('/', '7') + output.append(load_fixture(filename)) + return output + + self.run_commands.side_effect = load_from_file + + def test_cnos_facts_gather_subset_default(self): + set_module_args(dict()) + result = self.execute_module() + ansible_facts = result['ansible_facts'] + self.assertIn('hardware', ansible_facts['ansible_net_gather_subset']) + self.assertIn('default', ansible_facts['ansible_net_gather_subset']) + self.assertIn('interfaces', ansible_facts['ansible_net_gather_subset']) + self.assertEqual('ip10-241-107-39', ansible_facts['ansible_net_hostname']) + self.assertIn('Ethernet1/1', ansible_facts['ansible_net_interfaces'].keys()) + self.assertEqual(3985.8046875, ansible_facts['ansible_net_memtotal_mb']) + self.assertEqual(3070.40234375, ansible_facts['ansible_net_memfree_mb']) + + def test_cnos_facts_gather_subset_config(self): + set_module_args({'gather_subset': 'config'}) + result = self.execute_module() + ansible_facts = result['ansible_facts'] + self.assertIn('default', ansible_facts['ansible_net_gather_subset']) + self.assertIn('config', ansible_facts['ansible_net_gather_subset']) + self.assertEqual('ip10-241-107-39', ansible_facts['ansible_net_hostname']) + self.assertIn('ansible_net_config', ansible_facts) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_l3_interface.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_l3_interface.py new file mode 100644 index 000000000..03821e71c --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_l3_interface.py @@ -0,0 +1,79 @@ +# +# (c) 2018 Lenovo. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import cnos_l3_interface +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .cnos_module import TestCnosModule, load_fixture + + +class TestCnosL3InterfaceModule(TestCnosModule): + module = cnos_l3_interface + + def setUp(self): + super(TestCnosL3InterfaceModule, self).setUp() + self._patch_get_config = patch( + 'ansible_collections.community.network.plugins.modules.cnos_l3_interface.get_config' + ) + self._patch_load_config = patch( + 'ansible_collections.community.network.plugins.modules.cnos_l3_interface.load_config' + ) + self._patch_is_switchport = patch( + 'ansible_collections.community.network.plugins.modules.cnos_l3_interface.is_switchport' + ) + + self._get_config = self._patch_get_config.start() + self._load_config = self._patch_load_config.start() + self._is_switchport = self._patch_is_switchport.start() + + def tearDown(self): + super(TestCnosL3InterfaceModule, self).tearDown() + self._patch_get_config.stop() + self._patch_load_config.stop() + + def load_fixtures(self, commands=None): + config_file = 'l3_interface_config.cfg' + self._get_config.return_value = load_fixture(config_file) + self._load_config.return_value = None + self._is_switchport.return_value = False + + def test_cnos_l3_interface_ipv4_address(self, *args, **kwargs): + set_module_args(dict( + name='Ethernet 1/35', + ipv4='192.168.4.1/24' + )) + commands = [ + 'interface Ethernet 1/35', + 'ip address 192.168.4.1 255.255.255.0' + ] + result = self.execute_module(changed=True, commands=commands) + + def test_cnos_l3_interface_absent(self, *args, **kwargs): + set_module_args(dict( + name='Ethernet1/9', + state='absent' + )) + commands = [ + 'interface Ethernet1/9', + 'no ip address', + 'no ipv6 address' + ] + result = self.execute_module(changed=True, commands=commands) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_linkagg.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_linkagg.py new file mode 100644 index 000000000..9f6ee23c9 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_linkagg.py @@ -0,0 +1,144 @@ +# +# (c) 2018 Red Hat Inc. +# Copyright (C) 2017 Lenovo. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import cnos_linkagg +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .cnos_module import TestCnosModule, load_fixture + + +class TestCnosLinkaggModule(TestCnosModule): + module = cnos_linkagg + + def setUp(self): + super(TestCnosLinkaggModule, self).setUp() + self._patch_get_config = patch( + 'ansible_collections.community.network.plugins.modules.cnos_linkagg.get_config' + ) + self._patch_load_config = patch( + 'ansible_collections.community.network.plugins.modules.cnos_linkagg.load_config' + ) + + self._get_config = self._patch_get_config.start() + self._load_config = self._patch_load_config.start() + + def tearDown(self): + super(TestCnosLinkaggModule, self).tearDown() + self._patch_get_config.stop() + self._patch_load_config.stop() + + def load_fixtures(self, commands=None): + config_file = 'cnos_linkagg_config.cfg' + self._get_config.return_value = load_fixture(config_file) + self._load_config.return_value = None + + def test_cnos_linkagg_group_present(self, *args, **kwargs): + set_module_args(dict( + group='10', + state='present' + )) + result = self.execute_module(changed=True) + self.assertEqual( + result, + { + 'commands': [ + 'interface port-channel 10', + 'exit' + ], + 'changed': True + } + ) + + def test_cnos_linkagg_group_members_active(self, *args, **kwargs): + set_module_args(dict( + group='10', + mode='active', + members=[ + 'Ethernet 1/33', + 'Ethernet 1/44' + ] + )) + result = self.execute_module(changed=True) + self.assertEqual( + result, + { + 'commands': [ + 'interface port-channel 10', + 'exit', + 'interface Ethernet 1/33', + 'channel-group 10 mode active', + 'interface Ethernet 1/44', + 'channel-group 10 mode active' + ], + 'changed': True + } + ) + + def test_cnos_linkagg_group_member_removal(self, *args, **kwargs): + set_module_args(dict( + group='20', + mode='active', + members=[ + 'Ethernet 1/10', + ] + )) + result = self.execute_module(changed=True) + self.assertEqual( + result, + { + 'commands': [ + 'interface port-channel 20', + 'exit', + 'interface Ethernet 1/10', + 'channel-group 20 mode active' + ], + 'changed': True + } + ) + + def test_cnos_linkagg_group_members_absent(self, *args, **kwargs): + set_module_args(dict( + group='20', + state='absent' + )) + result = self.execute_module(changed=True) + self.assertEqual( + result, + { + 'commands': [ + 'no interface port-channel 20' + ], + 'changed': True + } + ) + set_module_args(dict( + group='10', + state='absent' + )) + result = self.execute_module(changed=False) + self.assertEqual( + result, + { + 'commands': [], + 'changed': False + } + ) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_logging.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_logging.py new file mode 100644 index 000000000..3cb54331e --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_logging.py @@ -0,0 +1,60 @@ +# +# (c) 2018 Red Hat Inc. +# Copyright (C) 2017 Lenovo. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import cnos_logging +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .cnos_module import TestCnosModule, load_fixture + + +class TestCnosLoggingModule(TestCnosModule): + + module = cnos_logging + + def setUp(self): + super(TestCnosLoggingModule, self).setUp() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.cnos_logging.get_config') + self.get_config = self.mock_get_config.start() + + self.mock_load_config = patch('ansible_collections.community.network.plugins.modules.cnos_logging.load_config') + self.load_config = self.mock_load_config.start() + + def tearDown(self): + super(TestCnosLoggingModule, self).tearDown() + self.mock_get_config.stop() + self.mock_load_config.stop() + + def load_fixtures(self, commands=None): + self.get_config.return_value = load_fixture('cnos_logging_config.cfg') + self.load_config.return_value = None + + def test_cnos_logging_buffer_size_changed_implicit(self): + set_module_args(dict(dest='logfile', name='anil')) + commands = ['logging logfile anil 5 size 10485760'] + self.execute_module(changed=True, commands=commands) + + def test_cnos_logging_logfile_size_changed_explicit(self): + set_module_args(dict(dest='logfile', name='anil', level='4', size=6000)) + commands = ['logging logfile anil 4 size 6000'] + self.execute_module(changed=True, commands=commands) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_static_route.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_static_route.py new file mode 100644 index 000000000..e0efd2bd7 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_static_route.py @@ -0,0 +1,74 @@ +# (c) 2016 Red Hat Inc. +# Copyright (C) 2017 Lenovo. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import cnos_static_route +from .cnos_module import TestCnosModule, load_fixture +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args + + +class TestCnosStaticRouteModule(TestCnosModule): + + module = cnos_static_route + + def setUp(self): + super(TestCnosStaticRouteModule, self).setUp() + + self.mock_exec_command = patch('ansible_collections.community.network.plugins.modules.cnos_banner.exec_command') + self.exec_command = self.mock_exec_command.start() + + self.mock_load_config = patch('ansible_collections.community.network.plugins.modules.cnos_static_route.load_config') + self.load_config = self.mock_load_config.start() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.cnos_static_route.get_config') + self.get_config = self.mock_get_config.start() + + def tearDown(self): + super(TestCnosStaticRouteModule, self).tearDown() + self.mock_exec_command.stop() + self.mock_load_config.stop() + self.mock_get_config.stop() + + def load_fixtures(self, commands=None): + self.exec_command.return_value = (0, load_fixture('cnos_static_route.cfg').strip(), None) + self.load_config.return_value = dict(diff=None, session='session') + + def test_cnos_static_route_present(self): + set_module_args(dict(prefix='10.241.107.20', mask='255.255.255.0', next_hop='10.241.106.1')) + self.execute_module(changed=True, commands=['ip route 10.241.107.20 255.255.255.0 10.241.106.1 1']) + + def test_cnos_static_route_present_no_defaults(self): + set_module_args(dict(prefix='10.241.106.4', mask='255.255.255.0', next_hop='1.2.3.5', + description='testing', admin_distance=100)) + self.execute_module(changed=True, + commands=['ip route 10.241.106.4 255.255.255.0 1.2.3.5 100 description testing']) + + def test_cnos_static_route_change(self): + set_module_args(dict(prefix='10.10.30.64', mask='255.255.255.0', next_hop='1.2.4.8')) + self.execute_module(changed=True, + commands=['ip route 10.10.30.64 255.255.255.0 1.2.4.8 1']) + + def test_cnos_static_route_absent(self): + set_module_args(dict(prefix='10.10.30.12', + mask='255.255.255.0', next_hop='1.2.4.8', state='absent')) + self.execute_module(changed=True, + commands=['no ip route 10.10.30.12 255.255.255.0 1.2.4.8 1']) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_system.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_system.py new file mode 100644 index 000000000..0365bbe3c --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_system.py @@ -0,0 +1,103 @@ +# +# (c) 2016 Red Hat Inc. +# Copyright (C) 2017 Lenovo. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import cnos_system +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .cnos_module import TestCnosModule, load_fixture + + +class TestCnosSystemModule(TestCnosModule): + + module = cnos_system + + def setUp(self): + super(TestCnosSystemModule, self).setUp() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.cnos_system.get_config') + self.get_config = self.mock_get_config.start() + + self.mock_load_config = patch('ansible_collections.community.network.plugins.modules.cnos_system.load_config') + self.load_config = self.mock_load_config.start() + + def tearDown(self): + super(TestCnosSystemModule, self).tearDown() + self.mock_get_config.stop() + self.mock_load_config.stop() + + def load_fixtures(self, commands=None, device=''): + self.get_config.return_value = load_fixture('cnos_system_config.cfg') + self.load_config.return_value = None + + def test_cnos_system_hostname_changed(self): + set_module_args(dict(hostname='foo')) + commands = ['hostname foo'] + self.execute_module(changed=True, commands=commands) + + def test_cnos_system_domain_lookup(self): + set_module_args(dict(lookup_enabled=False)) + commands = ['no ip domain-lookup'] + self.execute_module(changed=True, commands=commands) + + def test_cnos_system_missing_vrf(self): + domain_name = dict(name='example.com', vrf='example') + set_module_args(dict(domain_name=domain_name)) + self.execute_module(failed=True) + + def test_cnos_system_domain_name(self): + set_module_args(dict(domain_name=['example.net'])) + commands = ['ip domain-name example.net vrf default'] + self.execute_module(changed=True, commands=commands) + + def test_cnos_system_domain_name_complex(self): + domain_name = dict(name='example.net', vrf='management') + set_module_args(dict(domain_name=[domain_name])) + commands = ['ip domain-name example.net vrf management'] + self.execute_module(changed=True, commands=commands) + + def test_cnos_system_domain_search(self): + set_module_args(dict(domain_search=['example.net'])) + commands = ['ip domain-list example.net vrf default'] + self.execute_module(changed=True, commands=commands) + + def test_cnos_system_domain_search_complex(self): + domain_search = dict(name='example.net', vrf='management') + set_module_args(dict(domain_search=[domain_search])) + commands = ['ip domain-list example.net vrf management'] + self.execute_module(changed=True, commands=commands) + + def test_cnos_system_name_servers(self): + set_module_args(dict(name_servers=['1.2.3.4', '8.8.8.8'])) + commands = ['ip name-server 1.2.3.4 vrf default', 'ip name-server 8.8.8.8 vrf default'] + self.execute_module(changed=True, commands=commands) + + def test_cnos_system_name_servers_complex(self): + name_servers = dict(server='1.2.3.4', vrf='management') + set_module_args(dict(name_servers=[name_servers])) + commands = ['ip name-server 1.2.3.4 vrf management'] + self.execute_module(changed=True, commands=commands) + + def test_cnos_system_state_absent(self): + set_module_args(dict(state='absent')) + commands = ['no hostname'] + self.execute_module(changed=True, commands=commands) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_user.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_user.py new file mode 100644 index 000000000..50bb2e1f4 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_user.py @@ -0,0 +1,89 @@ +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import cnos_user +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .cnos_module import TestCnosModule, load_fixture + + +class TestCnosUserModule(TestCnosModule): + + module = cnos_user + + def setUp(self): + super(TestCnosUserModule, self).setUp() + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.cnos_user.get_config') + self.get_config = self.mock_get_config.start() + self.mock_load_config = patch('ansible_collections.community.network.plugins.modules.cnos_user.load_config') + self.load_config = self.mock_load_config.start() + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.cnos_user.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestCnosUserModule, self).tearDown() + + self.mock_get_config.stop() + self.mock_load_config.stop() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None, transport='cli'): + self.get_config.return_value = load_fixture('cnos_user_config.cfg') + self.load_config.return_value = dict(diff=None, session='session') + self.run_commands.return_value = [load_fixture('cnos_user_config.cfg')] + + def test_cnos_user_create(self): + set_module_args(dict(name='test', configured_password='Anil')) + commands = ['username test', 'username test password Anil'] + self.execute_module(changed=True, commands=commands) + + def test_cnos_user_delete(self): + set_module_args(dict(name='ansible', state='absent')) + commands = [] + self.execute_module(changed=False, commands=commands) + + def test_cnos_user_password(self): + set_module_args(dict(name='ansible', configured_password='test')) + commands = ['username ansible', 'username ansible password test'] + self.execute_module(changed=True, commands=commands) + + def test_cnos_user_purge(self): + set_module_args(dict(purge=True)) + commands = ['no username admin\n', 'no username ansible\n'] + self.execute_module(changed=True, commands=commands) + + def test_cnos_user_role(self): + set_module_args(dict(name='ansible', role='network-admin', configured_password='test')) + result = self.execute_module(changed=True) + self.assertIn('username ansible role network-admin', result['commands']) + + def test_cnos_user_sshkey(self): + set_module_args(dict(name='ansible', sshkey='test')) + commands = ['username ansible', 'username ansible sshkey test'] + self.execute_module(changed=True, commands=commands) + + def test_cnos_user_update_password_changed(self): + set_module_args(dict(name='test', configured_password='test', update_password='on_create')) + commands = ['username test', 'username test password test'] + self.execute_module(changed=True, commands=commands) + + def test_cnos_user_update_password_always(self): + set_module_args(dict(name='ansible', configured_password='test', update_password='always')) + commands = ['username ansible', 'username ansible password test'] + self.execute_module(changed=True, commands=commands) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_vlag.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_vlag.py new file mode 100644 index 000000000..0776dc6e0 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_vlag.py @@ -0,0 +1,51 @@ +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import cnos_vlag +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .cnos_module import TestCnosModule, load_fixture + + +class TestCnosVlagModule(TestCnosModule): + + module = cnos_vlag + + def setUp(self): + super(TestCnosVlagModule, self).setUp() + + self.mock_run_cnos_commands = patch('ansible_collections.community.network.plugins.module_utils.network.cnos.cnos.run_cnos_commands') + self.run_cnos_commands = self.mock_run_cnos_commands.start() + + def tearDown(self): + super(TestCnosVlagModule, self).tearDown() + self.mock_run_cnos_commands.stop() + + def load_fixtures(self, commands=None, transport='cli'): + self.run_cnos_commands.return_value = [load_fixture('cnos_vlag_config.cfg')] + + def test_cnos_vlag_enable(self): + set_module_args({'username': 'admin', 'password': 'admin', + 'host': '10.241.107.39', 'deviceType': 'g8272_cnos', + 'outputfile': self.test_log, 'vlagArg1': 'enable'}) + result = self.execute_module(changed=True) + expected_result = 'VLAG configurations accomplished' + self.assertEqual(result['msg'], expected_result) + + def test_cnos_vlag_instance(self): + set_module_args({'username': 'admin', 'password': 'pass', + 'host': '10.241.107.39', 'deviceType': 'g8272_cnos', + 'outputfile': self.test_log, 'vlagArg1': 'instance', + 'vlagArg2': '33', 'vlagArg3': '333'}) + result = self.execute_module(changed=True) + expected_result = 'VLAG configurations accomplished' + self.assertEqual(result['msg'], expected_result) + + def test_cnos_vlag_hlthchk(self): + set_module_args({'username': 'admin', 'password': 'pass', + 'host': '10.241.107.39', 'deviceType': 'g8272_cnos', + 'outputfile': self.test_log, 'vlagArg1': 'hlthchk', + 'vlagArg2': 'keepalive-interval', 'vlagArg3': '131'}) + result = self.execute_module(changed=True) + expected_result = 'VLAG configurations accomplished' + self.assertEqual(result['msg'], expected_result) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_vlan.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_vlan.py new file mode 100644 index 000000000..45f54b6c7 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_vlan.py @@ -0,0 +1,206 @@ +# (c) 2018 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import cnos_vlan +from ansible_collections.community.network.plugins.modules.cnos_vlan import parse_vlan_brief +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .cnos_module import TestCnosModule, load_fixture + + +class TestCnosVlanModule(TestCnosModule): + + module = cnos_vlan + + def setUp(self): + super(TestCnosVlanModule, self).setUp() + + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.cnos_vlan.run_commands') + self.run_commands = self.mock_run_commands.start() + + self.mock_load_config = patch('ansible_collections.community.network.plugins.modules.cnos_vlan.load_config') + self.load_config = self.mock_load_config.start() + + def tearDown(self): + super(TestCnosVlanModule, self).tearDown() + self.mock_run_commands.stop() + self.mock_load_config.stop() + + def load_fixtures(self, commands=None, transport='cli'): + self.run_commands.return_value = [load_fixture('cnos_vlan_config.cfg')] + self.load_config.return_value = {'diff': None, 'session': 'session'} + + def test_cnos_vlan_create(self): + set_module_args({'vlan_id': '3', 'name': 'test', 'state': 'present'}) + result = self.execute_module(changed=True) + expected_commands = [ + 'vlan 3', + 'name test', + ] + self.assertEqual(result['commands'], expected_commands) + + def test_cnos_vlan_id_startwith_9(self): + set_module_args({'vlan_id': '13', 'name': 'anil', 'state': 'present'}) + result = self.execute_module(changed=False) + expected_commands = [] + self.assertEqual(result['commands'], expected_commands) + + def test_cnos_vlan_rename(self): + set_module_args({'vlan_id': '2', 'name': 'test', 'state': 'present'}) + result = self.execute_module(changed=True) + expected_commands = [ + 'vlan 2', + 'name test', + ] + self.assertEqual(result['commands'], expected_commands) + + def test_cnos_vlan_with_interfaces(self): + set_module_args({'vlan_id': '2', 'name': 'vlan2', 'state': 'present', + 'interfaces': ['Ethernet1/33', 'Ethernet1/44']}) + result = self.execute_module(changed=True) + expected_commands = [ + 'vlan 2', + 'name vlan2', + 'vlan 2', + 'interface Ethernet1/33', + 'switchport mode access', + 'switchport access vlan 2', + 'vlan 2', + 'interface Ethernet1/44', + 'switchport mode access', + 'switchport access vlan 2', + ] + self.assertEqual(result['commands'], expected_commands) + + def test_cnos_vlan_with_interfaces_and_newvlan(self): + set_module_args({'vlan_id': '3', + 'name': 'vlan3', 'state': 'present', + 'interfaces': ['Ethernet1/33', 'Ethernet1/44']}) + result = self.execute_module(changed=True) + expected_commands = [ + 'vlan 3', + 'name vlan3', + 'vlan 3', + 'interface Ethernet1/33', + 'switchport mode access', + 'switchport access vlan 3', + 'vlan 3', + 'interface Ethernet1/44', + 'switchport mode access', + 'switchport access vlan 3', + ] + self.assertEqual(result['commands'], expected_commands) + + def test_parse_vlan_brief(self): + result = parse_vlan_brief(load_fixture('cnos_vlan_config.cfg')) + obj = [ + { + 'interfaces': [ + 'po1', + 'po2', + 'po11', + 'po12', + 'po13', + 'po14', + 'po15', + 'po17', + 'po20', + 'po100', + 'po1001', + 'po1002', + 'po1003', + 'po1004', + 'Ethernet1/2', + 'Ethernet1/3', + 'Ethernet1/4', + 'Ethernet1/9', + 'Ethernet1/10', + 'Ethernet1/11', + 'Ethernet1/14', + 'Ethernet1/15', + 'Ethernet1/16', + 'Ethernet1/17', + 'Ethernet1/18', + 'Ethernet1/19', + 'Ethernet1/20', + 'Ethernet1/21', + 'Ethernet1/22', + 'Ethernet1/23', + 'Ethernet1/24', + 'Ethernet1/25', + 'Ethernet1/26', + 'Ethernet1/27', + 'Ethernet1/28', + 'Ethernet1/29', + 'Ethernet1/30', + 'Ethernet1/31', + 'Ethernet1/32', + 'Ethernet1/33', + 'Ethernet1/34', + 'Ethernet1/35', + 'Ethernet1/36', + 'Ethernet1/37', + 'Ethernet1/38', + 'Ethernet1/39', + 'Ethernet1/40', + 'Ethernet1/41', + 'Ethernet1/42', + 'Ethernet1/43', + 'Ethernet1/44', + 'Ethernet1/45', + 'Ethernet1/46', + 'Ethernet1/47', + 'Ethernet1/48', + 'Ethernet1/49', + 'Ethernet1/50', + 'Ethernet1/51', + 'Ethernet1/52', + 'Ethernet1/53', + 'Ethernet1/54'], + 'state': 'ACTIVE', + 'name': 'default', + 'vlan_id': '1'}, + { + 'interfaces': [], + 'state': 'ACTIVE', + 'name': 'VLAN0002', + 'vlan_id': '2'}, + { + 'interfaces': [], + 'state': 'ACTIVE', + 'name': 'VLAN0003', + 'vlan_id': '3'}, + { + 'interfaces': [], + 'state': 'ACTIVE', + 'name': 'VLAN0005', + 'vlan_id': '5'}, + { + 'interfaces': [], + 'state': 'ACTIVE', + 'name': 'VLAN0012', + 'vlan_id': '12'}, + { + 'interfaces': [], + 'state': 'ACTIVE', + 'name': 'anil', + 'vlan_id': '13'}] + self.assertEqual(result, obj) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_vrf.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_vrf.py new file mode 100644 index 000000000..068247034 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_cnos_vrf.py @@ -0,0 +1,78 @@ +# +# (c) 2019 Lenovo. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import cnos_vrf +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .cnos_module import TestCnosModule, load_fixture + + +class TestCnosVrfModule(TestCnosModule): + + module = cnos_vrf + + def setUp(self): + super(TestCnosVrfModule, self).setUp() + + self.mock_load_config = patch('ansible_collections.community.network.plugins.modules.cnos_vrf.load_config') + self.load_config = self.mock_load_config.start() + + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.cnos_vrf.run_commands') + self.run_commands = self.mock_run_commands.start() + + self._patch_is_switchport = patch( + 'ansible_collections.community.network.plugins.modules.cnos_vrf.is_switchport' + ) + self._is_switchport = self._patch_is_switchport.start() + + def tearDown(self): + super(TestCnosVrfModule, self).tearDown() + self.mock_load_config.stop() + self.mock_run_commands.stop() + self._patch_is_switchport.stop() + + def load_fixtures(self, commands=None): + config_file = 'cnos_vrf_config.cfg' + self.load_config.return_value = load_fixture(config_file) + self.run_commands.return_value = load_fixture(config_file) + self._is_switchport.return_value = False + + def test_cnos_vrf_present(self): + set_module_args(dict(name='test1', state='present')) + self.execute_module(changed=True, commands=['vrf context test1']) + + def test_cnos_vrf_present_management(self): + set_module_args(dict(name='management', state='present')) + self.execute_module(changed=True, commands=['vrf context management']) + + def test_cnos_vrf_absent_management(self): + set_module_args(dict(name='management', state='absent')) + result = self.execute_module(failed=True) + self.assertEqual(result['msg'], 'Management VRF context cannot be deleted') + + def test_cnos_vrf_absent_no_change(self): + set_module_args(dict(name='test1', state='absent')) + self.execute_module(changed=False, commands=[]) + + def test_cnos_vrf_default(self): + set_module_args(dict(name='default', state='present')) + result = self.execute_module(failed=True) + self.assertEqual(result['msg'], 'VRF context default is reserved') diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_cv_server_provision.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_cv_server_provision.py new file mode 100644 index 000000000..8a92b0dec --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_cv_server_provision.py @@ -0,0 +1,889 @@ +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat import unittest +from ansible_collections.community.network.tests.unit.compat.mock import patch, Mock +import sys +sys.modules['cvprac'] = Mock() +sys.modules['cvprac.cvp_client'] = Mock() +sys.modules['cvprac.cvp_client_errors'] = Mock() +from ansible_collections.community.network.plugins.modules import cv_server_provision + + +class MockException(Exception): + pass + + +class TestCvServerProvision(unittest.TestCase): + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.CvpApiError', + new_callable=lambda: MockException) + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.server_configurable_configlet') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.switch_in_compliance') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.switch_info') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.connect') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.AnsibleModule') + def test_main_module_args(self, mock_module, mock_connect, mock_info, + mock_comp, mock_server_conf, mock_exception): + ''' Test main module args. + ''' + mock_module_object = Mock() + mock_module_object.params = dict(action='show', switch_name='eos') + mock_module_object.fail_json.side_effect = SystemExit('Exiting') + mock_module.return_value = mock_module_object + mock_connect.return_value = 'Client' + mock_info.side_effect = mock_exception('Error Getting Info') + argument_spec = dict( + host=dict(required=True), + port=dict(required=False, default=None), + protocol=dict(default='https', choices=['http', 'https']), + username=dict(required=True), + password=dict(required=True, no_log=True), + server_name=dict(required=True), + switch_name=dict(required=True), + switch_port=dict(required=True), + port_vlan=dict(required=False, default=None), + template=dict(require=True), + action=dict(default='show', choices=['show', 'add', 'remove']), + auto_run=dict(type='bool', default=False), + ) + self.assertRaises(SystemExit, cv_server_provision.main) + mock_module.assert_called_with(argument_spec=argument_spec, + supports_check_mode=False) + self.assertEqual(mock_connect.call_count, 1) + self.assertEqual(mock_info.call_count, 1) + mock_comp.assert_not_called() + mock_server_conf.assert_not_called() + mock_module_object.fail_json.assert_called_with(msg='Error Getting Info') + + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.CvpApiError', + new_callable=lambda: MockException) + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.server_configurable_configlet') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.switch_in_compliance') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.switch_info') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.connect') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.AnsibleModule') + def test_main_no_switch_configlet(self, mock_module, mock_connect, + mock_info, mock_comp, mock_server_conf, + mock_exception): + ''' Test main fails if switch has no configlet for Ansible to edit. + ''' + mock_module_object = Mock() + mock_module_object.params = dict(action='add', switch_name='eos') + mock_module_object.fail_json.side_effect = SystemExit('Exiting') + mock_module.return_value = mock_module_object + mock_connect.return_value = 'Client' + mock_info.return_value = 'Info' + mock_server_conf.return_value = None + self.assertRaises(SystemExit, cv_server_provision.main) + self.assertEqual(mock_connect.call_count, 1) + self.assertEqual(mock_info.call_count, 1) + self.assertEqual(mock_comp.call_count, 1) + self.assertEqual(mock_server_conf.call_count, 1) + mock_module_object.fail_json.assert_called_with( + msg='Switch eos has no configurable server ports.') + + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.CvpApiError', + new_callable=lambda: MockException) + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.port_configurable') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.server_configurable_configlet') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.switch_in_compliance') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.switch_info') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.connect') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.AnsibleModule') + def test_main_port_not_in_config(self, mock_module, mock_connect, mock_info, + mock_comp, mock_server_conf, + mock_port_conf, mock_exception): + ''' Test main fails if user specified port not in configlet. + ''' + mock_module_object = Mock() + mock_module_object.params = dict(action='add', switch_name='eos', + switch_port='3') + mock_module_object.fail_json.side_effect = SystemExit('Exiting') + mock_module.return_value = mock_module_object + mock_connect.return_value = 'Client' + mock_info.return_value = 'Info' + mock_server_conf.return_value = 'Configlet' + mock_port_conf.return_value = None + self.assertRaises(SystemExit, cv_server_provision.main) + self.assertEqual(mock_connect.call_count, 1) + self.assertEqual(mock_info.call_count, 1) + self.assertEqual(mock_comp.call_count, 1) + self.assertEqual(mock_server_conf.call_count, 1) + self.assertEqual(mock_port_conf.call_count, 1) + mock_module_object.fail_json.assert_called_with( + msg='Port 3 is not configurable as a server port on switch eos.') + + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.configlet_action') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.port_configurable') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.server_configurable_configlet') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.switch_in_compliance') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.switch_info') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.connect') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.AnsibleModule') + def test_main_show(self, mock_module, mock_connect, mock_info, mock_comp, + mock_server_conf, mock_port_conf, mock_conf_action): + ''' Test main good with show action. + ''' + mock_module_object = Mock() + mock_module_object.params = dict(action='show', switch_name='eos', + switch_port='3', auto_run=False) + mock_module.return_value = mock_module_object + mock_connect.return_value = 'Client' + mock_info.return_value = 'Info' + mock_server_conf.return_value = 'Configlet' + mock_port_conf.return_value = 'Port' + mock_conf_action.return_value = dict() + cv_server_provision.main() + self.assertEqual(mock_connect.call_count, 1) + self.assertEqual(mock_info.call_count, 1) + mock_comp.assert_not_called() + self.assertEqual(mock_server_conf.call_count, 1) + self.assertEqual(mock_port_conf.call_count, 1) + self.assertEqual(mock_conf_action.call_count, 1) + mock_module_object.fail_json.assert_not_called() + return_dict = dict(changed=False, switchInfo='Info', + switchConfigurable=True, portConfigurable=True, + taskCreated=False, taskExecuted=False, + taskCompleted=False) + mock_module_object.exit_json.assert_called_with(**return_dict) + + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.configlet_action') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.port_configurable') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.server_configurable_configlet') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.switch_in_compliance') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.switch_info') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.connect') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.AnsibleModule') + def test_main_add_no_auto_run(self, mock_module, mock_connect, mock_info, + mock_comp, mock_server_conf, mock_port_conf, + mock_conf_action): + ''' Test main good with add action and no auto_run. + ''' + mock_module_object = Mock() + mock_module_object.params = dict(action='add', switch_name='eos', + switch_port='3', auto_run=False) + mock_module.return_value = mock_module_object + mock_connect.return_value = 'Client' + mock_info.return_value = 'Info' + mock_server_conf.return_value = 'Configlet' + mock_port_conf.return_value = 'Port' + mock_conf_action.return_value = dict(taskCreated=True) + cv_server_provision.main() + self.assertEqual(mock_connect.call_count, 1) + self.assertEqual(mock_info.call_count, 1) + self.assertEqual(mock_comp.call_count, 1) + self.assertEqual(mock_server_conf.call_count, 1) + self.assertEqual(mock_port_conf.call_count, 1) + self.assertEqual(mock_conf_action.call_count, 1) + mock_module_object.fail_json.assert_not_called() + return_dict = dict(changed=False, switchInfo='Info', + switchConfigurable=True, portConfigurable=True, + taskCreated=True, taskExecuted=False, + taskCompleted=False) + mock_module_object.exit_json.assert_called_with(**return_dict) + + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.wait_for_task_completion') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.configlet_update_task') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.configlet_action') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.port_configurable') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.server_configurable_configlet') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.switch_in_compliance') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.switch_info') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.connect') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.AnsibleModule') + def test_main_add_auto_run(self, mock_module, mock_connect, mock_info, + mock_comp, mock_server_conf, mock_port_conf, + mock_conf_action, mock_conf_task, mock_wait): + ''' Test main good with add and auto_run. Config updated, task created. + ''' + mock_module_object = Mock() + mock_module_object.params = dict(action='add', switch_name='eos', + switch_port='3', auto_run=True) + mock_module.return_value = mock_module_object + mock_client_object = Mock() + mock_connect.return_value = mock_client_object + mock_info.return_value = 'Info' + mock_server_conf.return_value = 'Configlet' + mock_port_conf.return_value = 'Port' + mock_conf_action.return_value = dict(taskCreated=True, changed=True) + mock_conf_task.return_value = '7' + mock_wait.return_value = True + cv_server_provision.main() + self.assertEqual(mock_connect.call_count, 1) + self.assertEqual(mock_info.call_count, 1) + self.assertEqual(mock_comp.call_count, 1) + self.assertEqual(mock_server_conf.call_count, 1) + self.assertEqual(mock_port_conf.call_count, 1) + self.assertEqual(mock_conf_action.call_count, 1) + self.assertEqual(mock_conf_task.call_count, 1) + self.assertEqual(mock_wait.call_count, 1) + mock_module_object.fail_json.assert_not_called() + return_dict = dict(changed=True, switchInfo='Info', taskId='7', + switchConfigurable=True, portConfigurable=True, + taskCreated=True, taskExecuted=True, + taskCompleted=True) + mock_module_object.exit_json.assert_called_with(**return_dict) + + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.wait_for_task_completion') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.configlet_update_task') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.configlet_action') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.port_configurable') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.server_configurable_configlet') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.switch_in_compliance') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.switch_info') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.connect') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.AnsibleModule') + def test_main_add_auto_run_no_task(self, mock_module, mock_connect, + mock_info, mock_comp, mock_server_conf, + mock_port_conf, mock_conf_action, mock_conf_task, + mock_wait): + ''' Test main good with add and auto_run. Config not updated, no task. + ''' + mock_module_object = Mock() + mock_module_object.params = dict(action='add', switch_name='eos', + switch_port='3', auto_run=True) + mock_module.return_value = mock_module_object + mock_client_object = Mock() + mock_connect.return_value = mock_client_object + mock_info.return_value = 'Info' + mock_server_conf.return_value = 'Configlet' + mock_port_conf.return_value = 'Port' + mock_conf_action.return_value = dict(taskCreated=True, changed=False) + mock_conf_task.return_value = None + cv_server_provision.main() + self.assertEqual(mock_connect.call_count, 1) + self.assertEqual(mock_info.call_count, 1) + self.assertEqual(mock_comp.call_count, 1) + self.assertEqual(mock_server_conf.call_count, 1) + self.assertEqual(mock_port_conf.call_count, 1) + self.assertEqual(mock_conf_action.call_count, 1) + self.assertEqual(mock_conf_task.call_count, 1) + mock_wait.assert_not_called() + mock_module_object.fail_json.assert_not_called() + return_dict = dict(changed=False, switchInfo='Info', + switchConfigurable=True, portConfigurable=True, + taskCreated=False, taskExecuted=False, + taskCompleted=False) + mock_module_object.exit_json.assert_called_with(**return_dict) + + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.CvpClient') + def test_connect_good(self, mock_client): + ''' Test connect success. + ''' + module = Mock() + module.params = dict(host='host', username='username', + password='password', protocol='https', port='10') + connect_mock = Mock() + mock_client.return_value = connect_mock + client = cv_server_provision.connect(module) + self.assertIsInstance(client, Mock) + self.assertEqual(mock_client.call_count, 1) + connect_mock.connect.assert_called_once_with(['host'], 'username', + 'password', port='10', + protocol='https') + module.fail_json.assert_not_called() + + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.CvpLoginError', + new_callable=lambda: MockException) + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.CvpClient') + def test_connect_fail(self, mock_client, mock_exception): + ''' Test connect failure with login error. + ''' + module = Mock() + module.params = dict(host='host', username='username', + password='password', protocol='https', port='10') + module.fail_json.side_effect = SystemExit + connect_mock = Mock() + connect_mock.connect.side_effect = mock_exception('Login Error') + mock_client.return_value = connect_mock + self.assertRaises(SystemExit, cv_server_provision.connect, module) + self.assertEqual(connect_mock.connect.call_count, 1) + module.fail_json.assert_called_once_with(msg='Login Error') + + def test_switch_info_good(self): + ''' Test switch_info success. + ''' + module = Mock() + module.params = dict(switch_name='eos') + module.client.api.get_device_by_name.return_value = dict(fqdn='eos') + info = cv_server_provision.switch_info(module) + self.assertEqual(module.client.api.get_device_by_name.call_count, 1) + self.assertEqual(info['fqdn'], 'eos') + module.fail_json.assert_not_called() + + def test_switch_info_no_switch(self): + ''' Test switch_info fails. + ''' + module = Mock() + module.params = dict(switch_name='eos') + module.client.api.get_device_by_name.return_value = None + info = cv_server_provision.switch_info(module) + self.assertEqual(module.client.api.get_device_by_name.call_count, 1) + self.assertEqual(info, None) + module.fail_json.assert_called_once_with( + msg="Device with name 'eos' does not exist.") + + def test_switch_in_compliance_good(self): + ''' Test switch_in_compliance good. + ''' + module = Mock() + module.client.api.check_compliance.return_value = dict( + complianceCode='0000') + sw_info = dict(key='key', type='type', fqdn='eos') + cv_server_provision.switch_in_compliance(module, sw_info) + self.assertEqual(module.client.api.check_compliance.call_count, 1) + module.fail_json.assert_not_called() + + def test_switch_in_compliance_fail(self): + ''' Test switch_in_compliance fail. + ''' + module = Mock() + module.client.api.check_compliance.return_value = dict( + complianceCode='0001') + sw_info = dict(key='key', type='type', fqdn='eos') + cv_server_provision.switch_in_compliance(module, sw_info) + self.assertEqual(module.client.api.check_compliance.call_count, 1) + module.fail_json.assert_called_with( + msg='Switch eos is not in compliance.' + ' Returned compliance code 0001.') + + def test_server_configurable_configlet_good(self): + ''' Test server_configurable_configlet good. + ''' + module = Mock() + module.params = dict(switch_name='eos') + configlets = [dict(name='configlet1', info='line'), + dict(name='eos-server', info='info')] + module.client.api.get_configlets_by_device_id.return_value = configlets + sw_info = dict(key='key', type='type', fqdn='eos') + result = cv_server_provision.server_configurable_configlet(module, + sw_info) + self.assertEqual(module.client.api.get_configlets_by_device_id.call_count, 1) + self.assertIsNotNone(result) + self.assertEqual(result['name'], 'eos-server') + self.assertEqual(result['info'], 'info') + + def test_server_configurable_configlet_not_configurable(self): + ''' Test server_configurable_configlet fail. No server configlet. + ''' + module = Mock() + module.params = dict(switch_name='eos') + configlets = [dict(name='configlet1', info='line'), + dict(name='configlet2', info='info')] + module.client.api.get_configlets_by_device_id.return_value = configlets + sw_info = dict(key='key', type='type', fqdn='eos') + result = cv_server_provision.server_configurable_configlet(module, sw_info) + self.assertEqual(module.client.api.get_configlets_by_device_id.call_count, 1) + self.assertIsNone(result) + + def test_server_configurable_configlet_no_configlets(self): + ''' Test server_configurable_configlet fail. No switch configlets. + ''' + module = Mock() + module.params = dict(switch_name='eos') + module.client.api.get_configlets_by_device_id.return_value = [] + sw_info = dict(key='key', type='type', fqdn='eos') + result = cv_server_provision.server_configurable_configlet(module, + sw_info) + self.assertEqual(module.client.api.get_configlets_by_device_id.call_count, 1) + self.assertIsNone(result) + + def test_port_configurable_good(self): + ''' Test port_configurable user provided switch port in configlet. + ''' + module = Mock() + module.params = dict(switch_name='eos', switch_port='3') + config = '!\ninterface Ethernet3\n!\ninterface Ethernet4\n!' + configlet = dict(name='eos-server', config=config) + result = cv_server_provision.port_configurable(module, configlet) + self.assertTrue(result) + + def test_port_configurable_fail(self): + ''' Test port_configurable user provided switch port not in configlet. + ''' + module = Mock() + module.params = dict(switch_name='eos', switch_port='2') + config = '!\ninterface Ethernet3\n!\ninterface Ethernet4\n!' + configlet = dict(name='eos-server', config=config) + result = cv_server_provision.port_configurable(module, configlet) + self.assertFalse(result) + + def test_port_configurable_fail_no_config(self): + ''' Test port_configurable configlet empty. + ''' + module = Mock() + module.params = dict(switch_name='eos', switch_port='2') + config = '' + configlet = dict(name='eos-server', config=config) + result = cv_server_provision.port_configurable(module, configlet) + self.assertFalse(result) + + def test_configlet_action_show_blank_config(self): + ''' Test configlet_action show returns current port configuration. + ''' + module = Mock() + module.params = dict(action='show', switch_name='eos', switch_port='3') + config = '!\ninterface Ethernet3\n!\ninterface Ethernet4\n!' + configlet = dict(name='eos-server', key='key', config=config) + result = cv_server_provision.configlet_action(module, configlet) + self.assertIsNotNone(result) + self.assertEqual(result['currentConfigBlock'], 'interface Ethernet3\n!') + module.client.api.update_configlet.assert_not_called() + + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.config_from_template') + def test_configlet_action_add_with_task(self, mock_template): + ''' Test configlet_action add with change updates configlet and adds + proper info to return data. Including task spawned info. + ''' + module = Mock() + module.params = dict(action='add', switch_name='eos', switch_port='3') + config = '!\ninterface Ethernet3\n!\ninterface Ethernet4\n!' + configlet = dict(name='eos-server', key='key', config=config) + template_config = ('interface Ethernet3\n description Host eos' + ' managed by Ansible and Jinja template\n' + ' load-interval 30\n' + ' switchport\n' + ' switchport mode trunk\n' + ' no shutdown\n!') + mock_template.return_value = template_config + update_return = dict(data='Configlet eos-server successfully updated' + ' and task initiated.') + module.client.api.update_configlet.return_value = update_return + result = cv_server_provision.configlet_action(module, configlet) + self.assertIsNotNone(result) + self.assertEqual(result['oldConfigBlock'], 'interface Ethernet3\n!') + full_config = '!\n' + template_config + '\ninterface Ethernet4\n!' + self.assertEqual(result['fullConfig'], full_config) + self.assertEqual(result['updateConfigletResponse'], + update_return['data']) + self.assertTrue(result['changed']) + self.assertTrue(result['taskCreated']) + self.assertEqual(module.client.api.update_configlet.call_count, 1) + + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.config_from_template') + def test_configlet_action_add_no_task(self, mock_template): + ''' Test configlet_action add that doesn't change configlet adds proper + info to return data. Does not including any task info. + ''' + module = Mock() + module.params = dict(action='add', switch_name='eos', switch_port='3') + config = ('!\ninterface Ethernet3\n description test\n' + '!\ninterface Ethernet4\n!') + configlet = dict(name='eos-server', key='key', config=config) + template_config = 'interface Ethernet3\n description test\n!' + mock_template.return_value = template_config + update_return = dict(data='Configlet eos-server successfully updated.') + module.client.api.update_configlet.return_value = update_return + result = cv_server_provision.configlet_action(module, configlet) + self.assertIsNotNone(result) + self.assertEqual(result['oldConfigBlock'], + 'interface Ethernet3\n description test\n!') + self.assertEqual(result['fullConfig'], config) + self.assertEqual(result['updateConfigletResponse'], + update_return['data']) + self.assertNotIn('changed', result) + self.assertNotIn('taskCreated', result) + self.assertEqual(module.client.api.update_configlet.call_count, 1) + + def test_configlet_action_remove_with_task(self): + ''' Test configlet_action remove with change updates configlet and adds + proper info to return data. Including task spawned info. + ''' + module = Mock() + module.params = dict(action='remove', switch_name='eos', + switch_port='3') + config = ('!\ninterface Ethernet3\n description test\n' + '!\ninterface Ethernet4\n!') + configlet = dict(name='eos-server', key='key', config=config) + update_return = dict(data='Configlet eos-server successfully updated' + ' and task initiated.') + module.client.api.update_configlet.return_value = update_return + result = cv_server_provision.configlet_action(module, configlet) + self.assertIsNotNone(result) + self.assertEqual(result['oldConfigBlock'], + 'interface Ethernet3\n description test\n!') + full_config = '!\ninterface Ethernet3\n!\ninterface Ethernet4\n!' + self.assertEqual(result['fullConfig'], full_config) + self.assertEqual(result['updateConfigletResponse'], + update_return['data']) + self.assertTrue(result['changed']) + self.assertTrue(result['taskCreated']) + self.assertEqual(module.client.api.update_configlet.call_count, 1) + + def test_configlet_action_remove_no_task(self): + ''' Test configlet_action with remove that doesn't change configlet and + adds proper info to return data. Does not including any task info. + ''' + module = Mock() + module.params = dict(action='remove', switch_name='eos', + switch_port='3') + config = '!\ninterface Ethernet3\n!\ninterface Ethernet4\n!' + configlet = dict(name='eos-server', key='key', config=config) + update_return = dict(data='Configlet eos-server successfully updated.') + module.client.api.update_configlet.return_value = update_return + result = cv_server_provision.configlet_action(module, configlet) + self.assertIsNotNone(result) + self.assertEqual(result['oldConfigBlock'], 'interface Ethernet3\n!') + self.assertEqual(result['fullConfig'], config) + self.assertEqual(result['updateConfigletResponse'], + update_return['data']) + self.assertNotIn('changed', result) + self.assertNotIn('taskCreated', result) + self.assertEqual(module.client.api.update_configlet.call_count, 1) + + def test_current_config_empty_config(self): + ''' Test current_config with empty config for port + ''' + module = Mock() + module.params = dict(switch_name='eos', switch_port='4') + config = '!\ninterface Ethernet3\n!\ninterface Ethernet4' + result = cv_server_provision.current_config(module, config) + self.assertIsNotNone(result) + self.assertEqual(result, 'interface Ethernet4') + + def test_current_config_with_config(self): + ''' Test current_config with config for port + ''' + module = Mock() + module.params = dict(switch_name='eos', switch_port='3') + config = ('!\ninterface Ethernet3\n description test\n' + '!\ninterface Ethernet4\n!') + result = cv_server_provision.current_config(module, config) + self.assertIsNotNone(result) + self.assertEqual(result, 'interface Ethernet3\n description test\n!') + + def test_current_config_no_match(self): + ''' Test current_config with no entry for port + ''' + module = Mock() + module.fail_json.side_effect = SystemExit + module.params = dict(switch_name='eos', switch_port='2') + config = '!\ninterface Ethernet3\n description test\n!' + self.assertRaises(SystemExit, cv_server_provision.current_config, + module, config) + + def test_valid_template_true(self): + ''' Test valid_template true + ''' + template = 'interface Ethernet3\n description test\n!' + result = cv_server_provision.valid_template('3', template) + self.assertTrue(result) + + def test_valid_template_false(self): + ''' Test valid_template false + ''' + template = 'interface Ethernet3\n description test\n!' + result = cv_server_provision.valid_template('4', template) + self.assertFalse(result) + + @patch('jinja2.DebugUndefined') + @patch('jinja2.Environment') + @patch('jinja2.FileSystemLoader') + def test_config_from_template_no_template(self, mock_file_sys, mock_env, + mock_debug): + ''' Test config_from_template good. No template. + ''' + module = Mock() + module.fail_json.side_effect = SystemExit + module.params = dict(switch_name='eos', switch_port='3', + server_name='new', template='jinja.j2') + mock_file_sys.return_value = 'file' + mock_debug.return_value = 'debug' + env_mock = Mock() + env_mock.get_template.return_value = None + mock_env.return_value = env_mock + self.assertRaises(SystemExit, cv_server_provision.config_from_template, + module) + self.assertEqual(mock_file_sys.call_count, 1) + self.assertEqual(mock_env.call_count, 1) + self.assertEqual(module.fail_json.call_count, 1) + + @patch('jinja2.meta.find_undeclared_variables') + @patch('jinja2.DebugUndefined') + @patch('jinja2.Environment') + @patch('jinja2.FileSystemLoader') + def test_config_from_template_good_no_vlan(self, mock_file_sys, mock_env, mock_debug, + mock_find): + ''' Test config_from_template good. No port_vlan. + ''' + module = Mock() + module.params = dict(switch_name='eos', switch_port='3', + server_name='new', template='jinja.j2') + mock_file_sys.return_value = 'file' + mock_debug.return_value = 'debug' + template_mock = Mock() + template_mock.render.return_value = ('interface Ethernet3\n' + ' description test\n' + ' switchport\n' + ' switchport mode trunk\n' + ' no shutdown\n!') + env_mock = Mock() + env_mock.loader.get_source.return_value = ['one', 'two'] + env_mock.parse.return_value = 'parsed' + env_mock.get_template.return_value = template_mock + mock_env.return_value = env_mock + mock_find.return_value = dict(server_name=None, switch_port=None) + result = cv_server_provision.config_from_template(module) + self.assertIsNotNone(result) + expected = ('interface Ethernet3\n' + ' description test\n' + ' switchport\n' + ' switchport mode trunk\n' + ' no shutdown\n!') + self.assertEqual(result, expected) + self.assertEqual(mock_file_sys.call_count, 1) + self.assertEqual(mock_env.call_count, 1) + module.fail_json.assert_not_called() + + @patch('jinja2.meta.find_undeclared_variables') + @patch('jinja2.DebugUndefined') + @patch('jinja2.Environment') + @patch('jinja2.FileSystemLoader') + def test_config_from_template_good_vlan(self, mock_file_sys, mock_env, mock_debug, + mock_find): + ''' Test config_from_template good. With port_vlan. + ''' + module = Mock() + module.params = dict(switch_name='eos', switch_port='3', + server_name='new', template='jinja.j2', port_vlan='7') + mock_file_sys.return_value = 'file' + mock_debug.return_value = 'debug' + template_mock = Mock() + template_mock.render.return_value = ('interface Ethernet3\n' + ' description test\n' + ' switchport\n' + ' switchport access vlan 7\n' + ' no shutdown\n!') + env_mock = Mock() + env_mock.loader.get_source.return_value = ['one', 'two'] + env_mock.parse.return_value = 'parsed' + env_mock.get_template.return_value = template_mock + mock_env.return_value = env_mock + mock_find.return_value = dict(server_name=None, switch_port=None, + port_vlan=None) + result = cv_server_provision.config_from_template(module) + self.assertIsNotNone(result) + expected = ('interface Ethernet3\n' + ' description test\n' + ' switchport\n' + ' switchport access vlan 7\n' + ' no shutdown\n!') + self.assertEqual(result, expected) + self.assertEqual(mock_file_sys.call_count, 1) + self.assertEqual(mock_env.call_count, 1) + module.fail_json.assert_not_called() + + @patch('jinja2.meta.find_undeclared_variables') + @patch('jinja2.DebugUndefined') + @patch('jinja2.Environment') + @patch('jinja2.FileSystemLoader') + def test_config_from_template_fail_wrong_port(self, mock_file_sys, mock_env, + mock_debug, mock_find): + ''' Test config_from_template fail. Wrong port number in template. + ''' + module = Mock() + module.params = dict(switch_name='eos', switch_port='4', + server_name='new', template='jinja.j2') + mock_file_sys.return_value = 'file' + mock_debug.return_value = 'debug' + template_mock = Mock() + template_mock.render.return_value = ('interface Ethernet3\n' + ' description test\n!') + env_mock = Mock() + env_mock.loader.get_source.return_value = ['one', 'two'] + env_mock.parse.return_value = 'parsed' + env_mock.get_template.return_value = template_mock + mock_env.return_value = env_mock + mock_find.return_value = dict(server_name=None, switch_port=None) + result = cv_server_provision.config_from_template(module) + self.assertIsNotNone(result) + expected = 'interface Ethernet3\n description test\n!' + self.assertEqual(result, expected) + self.assertEqual(mock_file_sys.call_count, 1) + self.assertEqual(mock_env.call_count, 1) + module.fail_json.assert_called_with(msg='Template content does not' + ' configure proper interface' + ' - %s' % expected) + + @patch('jinja2.meta.find_undeclared_variables') + @patch('jinja2.DebugUndefined') + @patch('jinja2.Environment') + @patch('jinja2.FileSystemLoader') + def test_config_from_template_fail_no_vlan(self, mock_file_sys, mock_env, + mock_debug, mock_find): + ''' Test config_from_template fail. Template needs vlan but none provided. + ''' + module = Mock() + module.params = dict(switch_name='eos', switch_port='3', + server_name='new', template='jinja.j2', + port_vlan=None) + mock_file_sys.return_value = 'file' + mock_debug.return_value = 'debug' + template_mock = Mock() + template_mock.render.return_value = ('interface Ethernet3\n' + ' description test\n!') + env_mock = Mock() + env_mock.loader.get_source.return_value = ['one', 'two'] + env_mock.parse.return_value = 'parsed' + env_mock.get_template.return_value = template_mock + mock_env.return_value = env_mock + mock_find.return_value = dict(server_name=None, switch_port=None, + port_vlan=None) + result = cv_server_provision.config_from_template(module) + self.assertIsNotNone(result) + expected = 'interface Ethernet3\n description test\n!' + self.assertEqual(result, expected) + self.assertEqual(mock_file_sys.call_count, 1) + self.assertEqual(mock_env.call_count, 1) + module.fail_json.assert_called_with(msg='Template jinja.j2 requires a' + ' vlan. Please re-run with vlan' + ' number provided.') + + def test_updated_configlet_content_add(self): + ''' Test updated_configlet_content. Add config. + ''' + module = Mock() + module.params = dict(switch_name='eos', switch_port='3') + existing_config = '!\ninterface Ethernet3\n!\ninterface Ethernet4\n!' + new_config_block = 'interface Ethernet3\n description test\n!' + result = cv_server_provision.updated_configlet_content(module, + existing_config, + new_config_block) + expected = ('!\ninterface Ethernet3\n description test\n' + '!\ninterface Ethernet4\n!') + self.assertEqual(result, expected) + module.fail_json.assert_not_called() + + def test_updated_configlet_content_remove(self): + ''' Test updated_configlet_content. Remove config. + ''' + module = Mock() + module.params = dict(switch_name='eos', switch_port='3') + existing_config = ('!\ninterface Ethernet3\n description test\n' + '!\ninterface Ethernet4') + new_config_block = 'interface Ethernet3\n!' + result = cv_server_provision.updated_configlet_content(module, + existing_config, + new_config_block) + expected = '!\ninterface Ethernet3\n!\ninterface Ethernet4' + self.assertEqual(result, expected) + module.fail_json.assert_not_called() + + def test_updated_configlet_content_no_match(self): + ''' Test updated_configlet_content. Interface not in config. + ''' + module = Mock() + module.fail_json.side_effect = SystemExit + module.params = dict(switch_name='eos', switch_port='2') + existing_config = '!\ninterface Ethernet3\n description test\n!' + new_config_block = 'interface Ethernet3\n!' + self.assertRaises(SystemExit, + cv_server_provision.updated_configlet_content, + module, existing_config, new_config_block) + + @patch('time.sleep') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.switch_info') + def test_configlet_update_task_good_one_try(self, mock_info, mock_sleep): + ''' Test configlet_update_task gets task after one try. + ''' + module = Mock() + task = dict(data=dict(WORKFLOW_ACTION='Configlet Push'), + description='Configlet Assign', + workOrderId='7') + device_info = dict(taskIdList=[task]) + mock_info.return_value = device_info + result = cv_server_provision.configlet_update_task(module) + self.assertEqual(result, '7') + mock_sleep.assert_not_called() + self.assertEqual(mock_info.call_count, 1) + + @patch('time.sleep') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.switch_info') + def test_configlet_update_task_good_three_tries(self, mock_info, mock_sleep): + ''' Test configlet_update_task gets task on third try. + ''' + module = Mock() + task1 = dict(data=dict(WORKFLOW_ACTION='Configlet Push'), + description='Configlet Assign', + workOrderId='7') + task2 = dict(data=dict(WORKFLOW_ACTION='Nonsense'), + description='Configlet Assign', + workOrderId='700') + device_info = dict(taskIdList=[task1, task2]) + mock_info.side_effect = [dict(), dict(), device_info] + result = cv_server_provision.configlet_update_task(module) + self.assertEqual(result, '7') + self.assertEqual(mock_sleep.call_count, 2) + self.assertEqual(mock_info.call_count, 3) + + @patch('time.sleep') + @patch('ansible_collections.community.network.plugins.modules.cv_server_provision.switch_info') + def test_configlet_update_task_no_task(self, mock_info, mock_sleep): + ''' Test configlet_update_task does not get task after three tries. + ''' + module = Mock() + mock_info.side_effect = [dict(), dict(), dict()] + result = cv_server_provision.configlet_update_task(module) + self.assertIsNone(result) + self.assertEqual(mock_sleep.call_count, 3) + self.assertEqual(mock_info.call_count, 3) + + @patch('time.sleep') + def test_wait_for_task_completion_good_one_try(self, mock_time): + ''' Test wait_for_task_completion completed. One Try. + ''' + module = Mock() + module.client.api.get_task_by_id.return_value = dict( + workOrderUserDefinedStatus='Completed') + result = cv_server_provision.wait_for_task_completion(module, '7') + self.assertTrue(result) + self.assertEqual(module.client.api.get_task_by_id.call_count, 1) + module.fail_json.assert_not_called() + mock_time.assert_not_called() + + @patch('time.sleep') + def test_wait_for_task_completion_good_three_tries(self, mock_time): + ''' Test wait_for_task_completion completed. Three tries. + ''' + module = Mock() + try_one_two = dict(workOrderUserDefinedStatus='Pending') + try_three = dict(workOrderUserDefinedStatus='Completed') + module.client.api.get_task_by_id.side_effect = [try_one_two, + try_one_two, try_three] + result = cv_server_provision.wait_for_task_completion(module, '7') + self.assertTrue(result) + self.assertEqual(module.client.api.get_task_by_id.call_count, 3) + module.fail_json.assert_not_called() + self.assertEqual(mock_time.call_count, 2) + + @patch('time.sleep') + def test_wait_for_task_completion_fail(self, mock_time): + ''' Test wait_for_task_completion failed. + ''' + module = Mock() + try_one = dict(workOrderUserDefinedStatus='Failed') + try_two = dict(workOrderUserDefinedStatus='Completed') + module.client.api.get_task_by_id.side_effect = [try_one, try_two] + result = cv_server_provision.wait_for_task_completion(module, '7') + self.assertTrue(result) + self.assertEqual(module.client.api.get_task_by_id.call_count, 2) + text = ('Task 7 has reported status Failed. Please consult the CVP' + ' admins for more information.') + module.fail_json.assert_called_with(msg=text) + self.assertEqual(mock_time.call_count, 1) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_dladm_vnic.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_dladm_vnic.py new file mode 100644 index 000000000..01503541e --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_dladm_vnic.py @@ -0,0 +1,253 @@ +# Copyright (c) 2020 Justin Bronn <jbronn@gmail.com> +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +import json + +import pytest +from ansible.module_utils.basic import AnsibleModule +from ansible_collections.community.network.plugins.modules import ( + dladm_vnic, +) +from ansible_collections.community.network.tests.unit.plugins.modules.utils import ( + set_module_args, +) + + +DLADM = "/usr/sbin/dladm" + + +def mocker_vnic_set(mocker, vnic_exists=False, rc=0, out="", err=""): + """ + Common mocker object + """ + get_bin_path = mocker.patch.object(AnsibleModule, "get_bin_path") + get_bin_path.return_value = DLADM + run_command = mocker.patch.object(AnsibleModule, "run_command") + run_command.return_value = (rc, out, err) + vnic_exists_func = mocker.patch.object(dladm_vnic.VNIC, "vnic_exists") + vnic_exists_func.return_value = vnic_exists + + +@pytest.fixture +def mocked_vnic_create(mocker): + mocker_vnic_set(mocker) + + +@pytest.fixture +def mocked_vnic_delete(mocker): + mocker_vnic_set(mocker, vnic_exists=True) + + +def test_vnic_create(mocked_vnic_create, capfd): + """ + vnic creation + """ + vnic_name = "vnic0" + vnic_link = "e1000g0" + set_module_args( + { + "name": vnic_name, + "link": vnic_link, + "state": "present", + "_ansible_check_mode": False, + } + ) + with pytest.raises(SystemExit): + dladm_vnic.main() + + assert AnsibleModule.run_command.call_count == 1 + args = AnsibleModule.run_command.call_args_list[0][0] + assert args[0][0] == DLADM + assert args[0][1] == "create-vnic" + assert args[0][2] == "-l" + assert args[0][3] == vnic_link + assert args[0][4] == vnic_name + + out, err = capfd.readouterr() + results = json.loads(out) + assert not results.get("failed") + assert results["changed"] + + +def test_vnic_delete(mocked_vnic_delete, capfd): + """ + vnic deletion + """ + vnic_name = "net0" + vnic_link = "xge1" + vnic_temp = (False, True) + + for temp in vnic_temp: + set_module_args( + { + "name": vnic_name, + "state": "absent", + "link": vnic_link, + "temporary": temp, + "_ansible_check_mode": False, + } + ) + with pytest.raises(SystemExit): + dladm_vnic.main() + + out, err = capfd.readouterr() + results = json.loads(out) + assert not results.get("failed") + assert results["changed"] + + assert AnsibleModule.run_command.call_count == len(vnic_temp) + for i, call_args in enumerate(AnsibleModule.run_command.call_args_list): + args = call_args[0][0] + print(args) + assert args[0] == DLADM + assert args[1] == "delete-vnic" + if vnic_temp[i]: + assert args[2] == '-t' + assert args[3] == vnic_name + else: + assert args[2] == vnic_name + + +def test_vnic_create_vlan(mocked_vnic_create, capfd): + """ + vnic creation with valid vlan + """ + vnic_name = "vnic0" + vnic_link = "e1000g0" + vnic_vlans = (1, "23", 23, 4094) + vnic_temp = (True, False, False, True) + + for vlan, temp in zip(vnic_vlans, vnic_temp): + set_module_args( + { + "name": vnic_name, + "link": vnic_link, + "state": "present", + "temporary": temp, + "vlan": vlan, + "_ansible_check_mode": False, + } + ) + with pytest.raises(SystemExit): + dladm_vnic.main() + + out, err = capfd.readouterr() + results = json.loads(out) + assert not results.get("failed") + assert results["changed"] + + assert AnsibleModule.run_command.call_count == len(vnic_vlans) + for i, call_args in enumerate(AnsibleModule.run_command.call_args_list): + args = call_args[0][0] + assert args[0] == DLADM + assert args[1] == "create-vnic" + if vnic_temp[i]: + assert args[2] == "-t" + arg_idx = 3 + else: + arg_idx = 2 + assert args[arg_idx] == "-v" + assert args[arg_idx + 1] == int(vnic_vlans[i]) + assert args[arg_idx + 2] == "-l" + assert args[arg_idx + 3] == vnic_link + assert args[arg_idx + 4] == vnic_name + + +def test_vnic_create_vlan_invalid(mocked_vnic_create, capfd): + """ + vnic creation failures with invalid vlan + """ + vnic_name = "vnic1" + vnic_link = "e1000g1" + vnic_vlans = ("foo", ["bar"], 0, 4095) + + for vlan in vnic_vlans: + set_module_args( + { + "name": vnic_name, + "link": vnic_link, + "state": "present", + "vlan": vlan, + "_ansible_check_mode": False, + } + ) + with pytest.raises(SystemExit): + dladm_vnic.main() + + out, err = capfd.readouterr() + results = json.loads(out) + assert results.get("failed") + + +def test_vnic_create_mac(mocked_vnic_create, capfd): + """ + vnic creation with valid mac address + """ + vnic_name = "vnic0" + vnic_link = "ibg0" + vnic_macs = ("00:20:91:de:ad:be", "00:0c:29:be:ef:be") + vnic_temp = (False, True) + + for mac, temp in zip(vnic_macs, vnic_temp): + set_module_args( + { + "name": vnic_name, + "link": vnic_link, + "mac": mac, + "state": "present", + "temporary": temp, + "_ansible_check_mode": False, + } + ) + with pytest.raises(SystemExit): + dladm_vnic.main() + + out, err = capfd.readouterr() + results = json.loads(out) + assert not results.get("failed") + assert results["changed"] + + assert AnsibleModule.run_command.call_count == len(vnic_macs) + for i, call_args in enumerate(AnsibleModule.run_command.call_args_list): + args = call_args[0][0] + assert args[0] == DLADM + assert args[1] == "create-vnic" + if vnic_temp[i]: + assert args[2] == "-t" + arg_idx = 3 + else: + arg_idx = 2 + assert args[arg_idx] == "-m" + assert args[arg_idx + 1] == vnic_macs[i] + assert args[arg_idx + 2] == "-l" + assert args[arg_idx + 3] == vnic_link + assert args[arg_idx + 4] == vnic_name + + +def test_vnic_create_mac_invalid(mocked_vnic_create, capfd): + """ + vnic creation with an invalid mac address + """ + vnic_name = "vnic0" + vnic_link = "ibg0" + mac_invalid_args = ("01:20:91:de:ad:be", "00:0c:29:be:ef:") + + for mac in mac_invalid_args: + set_module_args( + { + "name": vnic_name, + "link": vnic_link, + "state": "present", + "mac": mac, + "_ansible_check_mode": False, + } + ) + with pytest.raises(SystemExit): + dladm_vnic.main() + + out, err = capfd.readouterr() + results = json.loads(out) + assert results.get("failed") diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_edgeos_command.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_edgeos_command.py new file mode 100644 index 000000000..bbd36e180 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_edgeos_command.py @@ -0,0 +1,106 @@ +# (c) 2018 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + + +import json + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import edgeos_command +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .edgeos_module import TestEdgeosModule, load_fixture + + +class TestEdgeosCommandModule(TestEdgeosModule): + + module = edgeos_command + + def setUp(self): + super(TestEdgeosCommandModule, self).setUp() + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.edgeos_command.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestEdgeosCommandModule, self).tearDown() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + def load_from_file(*args, **kwargs): + module, commands = args + output = list() + + for item in commands: + try: + obj = json.loads(item) + command = obj['command'] + except (ValueError, TypeError): + command = item['command'] + filename = str(command).replace(' ', '_') + output.append(load_fixture(filename)) + return output + + self.run_commands.side_effect = load_from_file + + def test_edgeos_command_simple(self): + set_module_args(dict(commands=['show version'])) + result = self.execute_module() + self.assertEqual(len(result['stdout']), 1) + self.assertTrue(result['stdout'][0].startswith('Version: v1.9.7')) + + def test_edgeos_command_multiple(self): + set_module_args(dict(commands=['show version', 'show version'])) + result = self.execute_module() + self.assertEqual(len(result['stdout']), 2) + self.assertTrue(result['stdout'][0].startswith('Version: v1.9.7')) + + def test_edgeos_commond_wait_for(self): + wait_for = 'result[0] contains "Ubiquiti Networks"' + set_module_args(dict(commands=['show version'], wait_for=wait_for)) + self.execute_module() + + def test_edgeos_command_wait_for_fails(self): + wait_for = 'result[0] contains "bad string"' + set_module_args(dict(commands=['show version'], wait_for=wait_for)) + self.execute_module(failed=True) + self.assertEqual(self.run_commands.call_count, 10) + + def test_edgeos_command_retries(self): + wait_for = 'result[0] contains "bad string"' + set_module_args(dict(commands=['show version'], wait_for=wait_for, retries=2)) + self.execute_module(failed=True) + self.assertEqual(self.run_commands.call_count, 2) + + def test_edgeos_command_match_any(self): + wait_for = ['result[0] contains "Ubiquiti Networks"', + 'result[0] contains "bad string"'] + set_module_args(dict(commands=['show version'], wait_for=wait_for, match='any')) + self.execute_module() + + def test_edgeos_command_match_all(self): + wait_for = ['result[0] contains "Ubiquiti Networks"', + 'result[0] contains "EdgeRouter"'] + set_module_args(dict(commands=['show version'], wait_for=wait_for, match='all')) + self.execute_module() + + def test_vyos_command_match_all_failure(self): + wait_for = ['result[0] contains "Ubiquiti Networks"', + 'result[0] contains "bad string"'] + commands = ['show version', 'show version'] + set_module_args(dict(commands=commands, wait_for=wait_for, match='all')) + self.execute_module(failed=True) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_edgeos_config.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_edgeos_config.py new file mode 100644 index 000000000..897ca79b0 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_edgeos_config.py @@ -0,0 +1,105 @@ +# +# (c) 2018 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import edgeos_config +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .edgeos_module import TestEdgeosModule, load_fixture + + +class TestEdgeosConfigModule(TestEdgeosModule): + + module = edgeos_config + + def setUp(self): + super(TestEdgeosConfigModule, self).setUp() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.edgeos_config.get_config') + self.get_config = self.mock_get_config.start() + + self.mock_load_config = patch('ansible_collections.community.network.plugins.modules.edgeos_config.load_config') + self.load_config = self.mock_load_config.start() + + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.edgeos_config.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestEdgeosConfigModule, self).tearDown() + + self.mock_get_config.stop() + self.mock_load_config.stop() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + config_file = 'edgeos_config_config.cfg' + self.get_config.return_value = load_fixture(config_file) + self.load_config.return_value = None + + def test_edgeos_config_unchanged(self): + src = load_fixture('edgeos_config_config.cfg') + set_module_args(dict(src=src)) + self.execute_module() + + def test_edgeos_config_src(self): + src = load_fixture('edgeos_config_src.cfg') + set_module_args(dict(src=src)) + commands = ['set system host-name er01', 'delete interfaces ethernet eth0 address'] + self.execute_module(changed=True, commands=commands) + + def test_edgeos_config_src_brackets(self): + src = load_fixture('edgeos_config_src_brackets.cfg') + set_module_args(dict(src=src)) + commands = ['set interfaces ethernet eth0 address 10.10.10.10/24', 'set system host-name er01'] + self.execute_module(changed=True, commands=commands) + + def test_edgeos_config_backup(self): + set_module_args(dict(backup=True)) + result = self.execute_module() + self.assertIn('__backup__', result) + + def test_edgeos_config_lines(self): + commands = ['set system host-name er01'] + set_module_args(dict(lines=commands)) + self.execute_module(changed=True, commands=commands) + + def test_edgeos_config_config(self): + config = 'set system host-name localhost' + new_config = ['set system host-name er01'] + set_module_args(dict(lines=new_config, config=config)) + self.execute_module(changed=True, commands=new_config) + + def test_edgeos_config_match_none(self): + lines = ['set system interfaces ethernet eth0 address 1.2.3.4/24', + 'set system interfaces ethernet eth0 description Outside'] + set_module_args(dict(lines=lines, match='none')) + self.execute_module(changed=True, commands=lines, sort=False) + + def test_edgeos_config_single_quote_wrapped_values(self): + lines = ["set system interfaces ethernet eth0 description 'tests single quotes'"] + set_module_args(dict(lines=lines)) + commands = ["set system interfaces ethernet eth0 description 'tests single quotes'"] + self.execute_module(changed=True, commands=commands) + + def test_edgeos_config_single_quote_wrapped_values_failure(self): + lines = ["set system interfaces ethernet eth0 description 'test's single quotes'"] + set_module_args(dict(lines=lines)) + self.execute_module(failed=True) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_edgeos_facts.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_edgeos_facts.py new file mode 100644 index 000000000..2b1804d66 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_edgeos_facts.py @@ -0,0 +1,86 @@ +# (c) 2018 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import json + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import edgeos_facts +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .edgeos_module import TestEdgeosModule, load_fixture + + +class TestEdgeosFactsModule(TestEdgeosModule): + + module = edgeos_facts + + def setUp(self): + super(TestEdgeosFactsModule, self).setUp() + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.edgeos_facts.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestEdgeosFactsModule, self).tearDown() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + def load_from_file(*args, **kwargs): + module, commands = args + output = list() + + for item in commands: + try: + obj = json.loads(item) + command = obj['command'] + except ValueError: + command = item + filename = str(command).replace(' ', '_') + output.append(load_fixture(filename)) + return output + + self.run_commands.side_effect = load_from_file + + def test_edgeos_facts_default(self): + set_module_args(dict(gather_subset='default')) + result = self.execute_module() + facts = result.get('ansible_facts') + self.assertEqual(len(facts), 5) + self.assertEqual(facts['ansible_net_hostname'].strip(), 'er01') + self.assertEqual(facts['ansible_net_version'], '1.9.7+hotfix.4') + + def test_edgeos_facts_not_all(self): + set_module_args(dict(gather_subset='!all')) + result = self.execute_module() + facts = result.get('ansible_facts') + self.assertEqual(len(facts), 5) + self.assertEqual(facts['ansible_net_hostname'].strip(), 'er01') + self.assertEqual(facts['ansible_net_version'], '1.9.7+hotfix.4') + + def test_edgeos_facts_exclude_most(self): + set_module_args(dict(gather_subset=['!neighbors', '!config'])) + result = self.execute_module() + facts = result.get('ansible_facts') + self.assertEqual(len(facts), 5) + self.assertEqual(facts['ansible_net_hostname'].strip(), 'er01') + self.assertEqual(facts['ansible_net_version'], '1.9.7+hotfix.4') + + def test_edgeos_facts_invalid_subset(self): + set_module_args(dict(gather_subset='cereal')) + result = self.execute_module(failed=True) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_edgeswitch_facts.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_edgeswitch_facts.py new file mode 100644 index 000000000..9eb49a8d3 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_edgeswitch_facts.py @@ -0,0 +1,71 @@ +# (c) 2018 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import edgeswitch_facts +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .edgeswitch_module import TestEdgeswitchModule, load_fixture + + +class TestEdgeswitchFactsModule(TestEdgeswitchModule): + + module = edgeswitch_facts + + def setUp(self): + super(TestEdgeswitchFactsModule, self).setUp() + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.edgeswitch_facts.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestEdgeswitchFactsModule, self).tearDown() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + def load_from_file(*args, **kwargs): + module = args + commands = kwargs['commands'] + output = list() + + for command in commands: + filename = str(command).split(' | ')[0].replace(' ', '_') + output.append(load_fixture('edgeswitch_facts_%s' % filename)) + return output + + self.run_commands.side_effect = load_from_file + + def test_edgeswitch_facts_default(self): + set_module_args(dict(gather_subset=['all', '!interfaces', '!config', '!startupconfig'])) + result = self.execute_module() + facts = result.get('ansible_facts') + self.assertEqual(len(facts), 5) + self.assertEqual(facts['ansible_net_hostname'], 'sw_test_1') + self.assertEqual(facts['ansible_net_serialnum'], 'F09FC2EFD310') + self.assertEqual(facts['ansible_net_version'], '1.7.4.5075842') + + def test_edgeswitch_facts_interfaces(self): + set_module_args(dict(gather_subset='interfaces')) + result = self.execute_module() + facts = result.get('ansible_facts') + self.assertEqual(len(facts), 6) + self.assertEqual(facts['ansible_net_interfaces']['0/1']['operstatus'], 'Enable') + self.assertEqual(facts['ansible_net_interfaces']['0/2']['mediatype'], '2.5G-BaseFX') + self.assertEqual(facts['ansible_net_interfaces']['0/3']['physicalstatus'], '10G Full') + self.assertEqual(facts['ansible_net_interfaces']['0/4']['lineprotocol'], 'Up') + self.assertEqual(facts['ansible_net_interfaces']['0/15']['description'], 'UPLINK VIDEO WITH A VERY LONG DESCRIPTION THAT HELPS NO ONE') diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_edgeswitch_vlan.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_edgeswitch_vlan.py new file mode 100644 index 000000000..1614a2fd3 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_edgeswitch_vlan.py @@ -0,0 +1,152 @@ +# (c) 2018 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import edgeswitch_vlan +from ansible_collections.community.network.plugins.modules.edgeswitch_vlan import parse_vlan_brief, parse_interfaces_switchport +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .edgeswitch_module import TestEdgeswitchModule, load_fixture + + +class TestEdgeswitchVlanModule(TestEdgeswitchModule): + + module = edgeswitch_vlan + + def setUp(self): + super(TestEdgeswitchVlanModule, self).setUp() + + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.edgeswitch_vlan.run_commands') + self.run_commands = self.mock_run_commands.start() + + self.mock_load_config = patch('ansible_collections.community.network.plugins.modules.edgeswitch_vlan.load_config') + self.load_config = self.mock_load_config.start() + + def tearDown(self): + super(TestEdgeswitchVlanModule, self).tearDown() + self.mock_run_commands.stop() + self.mock_load_config.stop() + + def load_fixtures(self, commands=None): + def load_from_file(*args, **kwargs): + module, commands = args + output = list() + + for command in commands: + if command.startswith('vlan ') or command == 'exit': + output.append('') + else: + filename = str(command).split(' | ')[0].replace(' ', '_') + output.append(load_fixture('edgeswitch_vlan_%s' % filename)) + return output + + self.run_commands.side_effect = load_from_file + self.load_config.return_value = {} + + def test_edgeswitch_vlan_create(self): + set_module_args({'vlan_id': '200', 'name': 'video', 'state': 'present'}) + result = self.execute_module(changed=True) + expected_commands = [ + 'vlan database', + 'vlan 200', + 'vlan name 200 \"video\"', + 'exit' + ] + self.assertEqual(result['commands'], expected_commands) + + def test_edgeswitch_vlan_id_startwith_100(self): + set_module_args({'vlan_id': '100', 'name': 'voice', 'state': 'present'}) + result = self.execute_module(changed=False) + expected_commands = [] + self.assertEqual(result['commands'], expected_commands) + + def test_edgeswitch_vlan_rename(self): + set_module_args({'vlan_id': '100', 'name': 'video', 'state': 'present'}) + result = self.execute_module(changed=True) + expected_commands = [ + 'vlan database', + 'vlan name 100 \"video\"', + 'exit' + ] + self.assertEqual(result['commands'], expected_commands) + + def test_edgeswitch_vlan_with_interfaces_range(self): + set_module_args({'vlan_id': '100', 'name': 'voice', 'state': 'present', 'tagged_interfaces': ['0/6-0/8']}) + result = self.execute_module(changed=True) + expected_commands = [ + 'interface 0/6-0/8', + 'vlan participation include 100', + 'vlan tagging 100', + ] + self.assertEqual(result['commands'], expected_commands) + + def test_edgeswitch_vlan_with_interfaces_and_newvlan(self): + set_module_args({'vlan_id': '3', 'name': 'vlan3', 'state': 'present', 'untagged_interfaces': ['0/8', '0/7']}) + result = self.execute_module(changed=True) + expected_commands = [ + 'vlan database', + 'vlan 3', + 'vlan name 3 \"vlan3\"', + 'exit', + 'interface 0/7-0/8', + 'vlan participation include 3', + 'vlan pvid 3', + ] + self.assertEqual(result['commands'], expected_commands) + + def test_parse_interfaces_switchport(self): + result = parse_interfaces_switchport(load_fixture('edgeswitch_vlan_show_interfaces_switchport')) + i1 = { + 'interface': '0/1', + 'pvid_mode': '1', + 'untagged_vlans': ['1'], + 'tagged_vlans': ['100'], + 'forbidden_vlans': [''], + } + i3 = { + 'interface': '0/3', + 'pvid_mode': '1', + 'untagged_vlans': [''], + 'tagged_vlans': ['100'], + 'forbidden_vlans': ['1'], + } + i5 = { + 'interface': '0/5', + 'pvid_mode': '100', + 'untagged_vlans': ['100'], + 'tagged_vlans': [''], + 'forbidden_vlans': [''], + } + self.assertEqual(result['0/1'], i1) + self.assertEqual(result['0/3'], i3) + self.assertEqual(result['0/5'], i5) + + def test_parse_vlan_brief(self): + result = parse_vlan_brief(load_fixture('edgeswitch_vlan_show_vlan_brief')) + obj = [ + { + 'vlan_id': '1', + 'name': 'default' + }, + { + 'vlan_id': '100', + 'name': 'voice' + } + ] + self.assertEqual(result, obj) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_enos_command.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_enos_command.py new file mode 100644 index 000000000..589a0bd3b --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_enos_command.py @@ -0,0 +1,104 @@ +# Copyright (C) 2017 Lenovo, Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import enos_command +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .enos_module import TestEnosModule, load_fixture + + +class TestEnosCommandModule(TestEnosModule): + + module = enos_command + + def setUp(self): + super(TestEnosCommandModule, self).setUp() + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.enos_command.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestEnosCommandModule, self).tearDown() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + + def load_from_file(*args, **kwargs): + module, commands = args + output = list() + + for item in commands: + try: + command = item + except ValueError: + command = 'show version' + filename = str(command).replace(' ', '_') + output.append(load_fixture(filename)) + return output + + self.run_commands.side_effect = load_from_file + + def test_enos_command_simple(self): + set_module_args(dict(commands=['show version'])) + result = self.execute_module() + self.assertEqual(len(result['stdout']), 1) + self.assertTrue(result['stdout'][0].startswith('System Information')) + + def test_enos_command_multiple(self): + set_module_args(dict(commands=['show version', 'show run'])) + result = self.execute_module() + self.assertEqual(len(result['stdout']), 2) + self.assertTrue(result['stdout'][0].startswith('System Information')) + + def test_enos_command_wait_for(self): + wait_for = 'result[0] contains "System Information"' + set_module_args(dict(commands=['show version'], wait_for=wait_for)) + self.execute_module() + + def test_enos_command_wait_for_fails(self): + wait_for = 'result[0] contains "test string"' + set_module_args(dict(commands=['show version'], wait_for=wait_for)) + self.execute_module(failed=True) + self.assertEqual(self.run_commands.call_count, 10) + + def test_enos_command_retries(self): + wait_for = 'result[0] contains "test string"' + set_module_args(dict(commands=['show version'], wait_for=wait_for, retries=2)) + self.execute_module(failed=True) + self.assertEqual(self.run_commands.call_count, 2) + + def test_enos_command_match_any(self): + wait_for = ['result[0] contains "System Information"', + 'result[0] contains "test string"'] + set_module_args(dict(commands=['show version'], wait_for=wait_for, match='any')) + self.execute_module() + + def test_enos_command_match_all(self): + wait_for = ['result[0] contains "System Information"', + 'result[0] contains "Lenovo"'] + set_module_args(dict(commands=['show version'], wait_for=wait_for, match='all')) + self.execute_module() + + def test_enos_command_match_all_failure(self): + wait_for = ['result[0] contains "Lenovo ENOS"', + 'result[0] contains "test string"'] + commands = ['show version', 'show run'] + set_module_args(dict(commands=commands, wait_for=wait_for, match='all')) + self.execute_module(failed=True) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_enos_config.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_enos_config.py new file mode 100644 index 000000000..5ae6fdc6b --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_enos_config.py @@ -0,0 +1,125 @@ +# +# (c) 2016 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import enos_config +from .enos_module import TestEnosModule, load_fixture + +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args + + +class TestEnosConfigModule(TestEnosModule): + + module = enos_config + + def setUp(self): + self.patcher_get_config = patch('ansible_collections.community.network.plugins.modules.enos_config.get_config') + self.mock_get_config = self.patcher_get_config.start() + self.patcher_exec_command = patch('ansible_collections.community.network.plugins.modules.enos_config.load_config') + self.mock_exec_command = self.patcher_exec_command.start() + + def tearDown(self): + self.patcher_get_config.stop() + self.patcher_exec_command.stop() + + def load_fixtures(self, commands=None): + config_file = 'enos_config_config.cfg' + self.mock_get_config.return_value = load_fixture(config_file) + self.mock_exec_command.return_value = 'dummy diff' + + def test_enos_config_unchanged(self): + src = load_fixture('enos_config_config.cfg') + set_module_args(dict(src=src)) + self.execute_module() + + def test_enos_config_src(self): + src = load_fixture('enos_config_src.cfg') + set_module_args(dict(src=src)) + commands = ['hostname foo', 'interface ip 13', + 'no ip ospf enable'] + self.execute_module(changed=True, commands=commands) + + def test_enos_config_backup(self): + set_module_args(dict(backup=True)) + result = self.execute_module() + self.assertIn('__backup__', result) + + def test_enos_config_lines_wo_parents(self): + set_module_args(dict(lines=['hostname foo'])) + commands = ['hostname foo'] + self.execute_module(changed=True, commands=commands) + + def test_enos_config_lines_w_parents(self): + set_module_args(dict(lines=['shutdown'], parents=['interface ip 13'])) + commands = ['interface ip 13', 'shutdown'] + self.execute_module(changed=True, commands=commands) + + def test_enos_config_before(self): + set_module_args(dict(lines=['hostname foo'], before=['test1', 'test2'])) + commands = ['test1', 'test2', 'hostname foo'] + self.execute_module(changed=True, commands=commands, sort=False) + + def test_enos_config_after(self): + set_module_args(dict(lines=['hostname foo'], after=['test1', 'test2'])) + commands = ['hostname foo', 'test1', 'test2'] + self.execute_module(changed=True, commands=commands, sort=False) + + def test_enos_config_before_after_no_change(self): + set_module_args(dict(lines=['hostname router'], + before=['test1', 'test2'], + after=['test3', 'test4'])) + self.execute_module() + + def test_enos_config_config(self): + config = 'hostname localhost' + set_module_args(dict(lines=['hostname router'], config=config)) + commands = ['hostname router'] + self.execute_module(changed=True, commands=commands) + + def test_enos_config_replace_block(self): + lines = ['description test string', 'test string'] + parents = ['interface ip 13'] + set_module_args(dict(lines=lines, replace='block', parents=parents)) + commands = parents + lines + self.execute_module(changed=True, commands=commands) + + def test_enos_config_match_none(self): + lines = ['ip address 1.2.3.4 255.255.255.0', 'description test string'] + parents = ['interface ip 13'] + set_module_args(dict(lines=lines, parents=parents, match='none')) + commands = parents + lines + self.execute_module(changed=True, commands=commands, sort=False) + + def test_enos_config_match_strict(self): + lines = ['ip address 1.2.3.4 255.255.255.0', 'exit'] + parents = ['interface ip 13'] + set_module_args(dict(lines=lines, parents=parents, match='strict')) + commands = parents + ['exit'] + self.execute_module(changed=True, commands=commands, sort=False) + + def test_enos_config_match_exact(self): + lines = ['ip address 1.2.3.4 255.255.255.0', 'description test string', + 'shutdown'] + parents = ['interface ip 13'] + set_module_args(dict(lines=lines, parents=parents, match='exact')) + commands = parents + lines + self.execute_module(changed=True, commands=commands, sort=False) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_enos_facts.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_enos_facts.py new file mode 100644 index 000000000..851dff418 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_enos_facts.py @@ -0,0 +1,82 @@ +# (c) 2016 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import json + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from .enos_module import TestEnosModule, load_fixture +from ansible_collections.community.network.plugins.modules import enos_facts +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args + + +class TestEnosFacts(TestEnosModule): + + module = enos_facts + + def setUp(self): + super(TestEnosFacts, self).setUp() + self.mock_run_commands = patch( + 'ansible_collections.community.network.plugins.modules.enos_facts.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestEnosFacts, self).tearDown() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + + def load_from_file(*args, **kwargs): + module, commands = args + output = list() + + for item in commands: + try: + obj = json.loads(item) + command = obj['command'] + except ValueError: + command = item + filename = str(command).replace(' ', '_') + filename = filename.replace('/', '7') + output.append(load_fixture(filename)) + return output + + self.run_commands.side_effect = load_from_file + + def test_enos_facts_gather_subset_default(self): + set_module_args(dict()) + result = self.execute_module() + ansible_facts = result['ansible_facts'] + self.assertIn('hardware', ansible_facts['ansible_net_gather_subset']) + self.assertIn('default', ansible_facts['ansible_net_gather_subset']) + self.assertIn('interfaces', ansible_facts['ansible_net_gather_subset']) + self.assertEqual('test1', ansible_facts['ansible_net_hostname']) + self.assertIn('MGT', ansible_facts['ansible_net_interfaces'].keys()) + self.assertEqual(3992.75390625, ansible_facts['ansible_net_memtotal_mb']) + self.assertEqual(3383.109375, ansible_facts['ansible_net_memfree_mb']) + + def test_enos_facts_gather_subset_config(self): + set_module_args({'gather_subset': 'config'}) + result = self.execute_module() + ansible_facts = result['ansible_facts'] + self.assertIn('default', ansible_facts['ansible_net_gather_subset']) + self.assertIn('config', ansible_facts['ansible_net_gather_subset']) + self.assertEqual('test1', ansible_facts['ansible_net_hostname']) + self.assertIn('ansible_net_config', ansible_facts) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_eric_eccli_command.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_eric_eccli_command.py new file mode 100644 index 000000000..4db1d9e9a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_eric_eccli_command.py @@ -0,0 +1,126 @@ +# (c) 2019 Ericsson. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import json + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import eric_eccli_command +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .eccli_module import TestEccliModule, load_fixture + + +class TestEccliCommandModule(TestEccliModule): + + module = eric_eccli_command + + def setUp(self): + super(TestEccliCommandModule, self).setUp() + + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.eric_eccli_command.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestEccliCommandModule, self).tearDown() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + + def load_from_file(*args, **kwargs): + module, commands = args + output = list() + + for item in commands: + try: + obj = json.loads(item['command']) + command = obj['command'] + except ValueError: + command = item['command'] + filename = str(command).replace(' ', '_') + output.append(load_fixture(filename)) + return output + + self.run_commands.side_effect = load_from_file + + def test_eric_eccli_command_simple(self): + set_module_args(dict(commands=['show version'])) + result = self.execute_module() + self.assertEqual(len(result['stdout']), 1) + self.assertTrue(result['stdout'][0].startswith('Ericsson IPOS Version')) + + def test_eric_eccli_command_multiple(self): + set_module_args(dict(commands=['show version', 'show version'])) + result = self.execute_module() + self.assertEqual(len(result['stdout']), 2) + self.assertTrue(result['stdout'][0].startswith('Ericsson IPOS Version')) + + def test_eric_eccli_command_wait_for(self): + wait_for = 'result[0] contains "Ericsson IPOS"' + set_module_args(dict(commands=['show version'], wait_for=wait_for)) + self.execute_module() + + def test_eric_eccli_command_wait_for_fails(self): + wait_for = 'result[0] contains "test string"' + set_module_args(dict(commands=['show version'], wait_for=wait_for)) + self.execute_module(failed=True) + self.assertEqual(self.run_commands.call_count, 10) + + def test_eric_eccli_command_retries(self): + wait_for = 'result[0] contains "test string"' + set_module_args(dict(commands=['show version'], wait_for=wait_for, retries=2)) + self.execute_module(failed=True) + self.assertEqual(self.run_commands.call_count, 2) + + def test_eric_eccli_command_match_any(self): + wait_for = ['result[0] contains "Ericsson IPOS"', + 'result[0] contains "test string"'] + set_module_args(dict(commands=['show version'], wait_for=wait_for, match='any')) + self.execute_module() + + def test_eric_eccli_command_match_all(self): + wait_for = ['result[0] contains "Ericsson IPOS"', + 'result[0] contains "Version IPOS"'] + set_module_args(dict(commands=['show version'], wait_for=wait_for, match='all')) + self.execute_module() + + def test_eric_eccli_command_match_all_failure(self): + wait_for = ['result[0] contains "Ericsson IPOS"', + 'result[0] contains "test string"'] + commands = ['show version', 'show version'] + set_module_args(dict(commands=commands, wait_for=wait_for, match='all')) + self.execute_module(failed=True) + + def test_eric_eccli_command_configure_check_warning(self): + commands = ['configure terminal'] + set_module_args({ + 'commands': commands, + '_ansible_check_mode': True, + }) + result = self.execute_module() + self.assertEqual( + result['warnings'], + ['only non-config commands are supported when using check mode, not executing configure terminal'], + ) + + def test_eric_eccli_command_configure_not_warning(self): + commands = ['configure terminal'] + set_module_args(dict(commands=commands)) + result = self.execute_module() + self.assertEqual(result['warnings'], []) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_exos_command.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_exos_command.py new file mode 100644 index 000000000..f33aed298 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_exos_command.py @@ -0,0 +1,120 @@ +# +# (c) 2018 Extreme Networks Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import json + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from ansible_collections.community.network.plugins.modules import exos_command +from .exos_module import TestExosModule, load_fixture + + +class TestExosCommandModule(TestExosModule): + + module = exos_command + + def setUp(self): + super(TestExosCommandModule, self).setUp() + + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.exos_command.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestExosCommandModule, self).tearDown() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + + def load_from_file(*args, **kwargs): + module, commands = args + output = list() + + for item in commands: + try: + obj = json.loads(item['command']) + command = obj['command'] + except ValueError: + command = item['command'] + filename = str(command).replace(' ', '_') + output.append(load_fixture(filename)) + return output + + self.run_commands.side_effect = load_from_file + + def test_exos_command_simple(self): + set_module_args(dict(commands=['show version'])) + result = self.execute_module() + self.assertEqual(len(result['stdout']), 1) + self.assertTrue(result['stdout'][0].startswith('Switch :')) + + def test_exos_command_multiple(self): + set_module_args(dict(commands=['show version', 'show version'])) + result = self.execute_module() + self.assertEqual(len(result['stdout']), 2) + self.assertTrue(result['stdout'][0].startswith('Switch :')) + + def test_exos_command_wait_for(self): + wait_for = 'result[0] contains "Switch :"' + set_module_args(dict(commands=['show version'], wait_for=wait_for)) + self.execute_module() + + def test_exos_command_wait_for_fails(self): + wait_for = 'result[0] contains "test string"' + set_module_args(dict(commands=['show version'], wait_for=wait_for)) + self.execute_module(failed=True) + self.assertEqual(self.run_commands.call_count, 10) + + def test_exos_command_retries(self): + wait_for = 'result[0] contains "test string"' + set_module_args(dict(commands=['show version'], wait_for=wait_for, retries=2)) + self.execute_module(failed=True) + self.assertEqual(self.run_commands.call_count, 2) + + def test_exos_command_match_any(self): + wait_for = ['result[0] contains "Switch"', + 'result[0] contains "test string"'] + set_module_args(dict(commands=['show version'], wait_for=wait_for, match='any')) + self.execute_module() + + def test_exos_command_match_all(self): + wait_for = ['result[0] contains "Switch"', + 'result[0] contains "Switch :"'] + set_module_args(dict(commands=['show version'], wait_for=wait_for, match='all')) + self.execute_module() + + def test_exos_command_match_all_failure(self): + wait_for = ['result[0] contains "Switch :"', + 'result[0] contains "test string"'] + commands = ['show version', 'show version'] + set_module_args(dict(commands=commands, wait_for=wait_for, match='all')) + self.execute_module(failed=True) + + def test_exos_command_configure_error(self): + commands = ['disable ospf'] + set_module_args({ + 'commands': commands, + '_ansible_check_mode': True, + }) + result = self.execute_module() + self.assertEqual( + result['warnings'], + ['only show commands are supported when using check mode, not executing `disable ospf`'] + ) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_exos_config.py.disabled b/ansible_collections/community/network/tests/unit/plugins/modules/test_exos_config.py.disabled new file mode 100644 index 000000000..4f23e6cbb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_exos_config.py.disabled @@ -0,0 +1,265 @@ +# +# (c) 2018 Extreme Networks Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch, MagicMock +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from ansible_collections.community.network.plugins.cliconf.exos import Cliconf +from ansible_collections.community.network.plugins.modules.network.exos import exos_config +from .exos_module import TestExosModule, load_fixture + + +class TestExosConfigModule(TestExosModule): + + module = exos_config + + def setUp(self): + super(TestExosConfigModule, self).setUp() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.network.exos.exos_config.get_config') + self.get_config = self.mock_get_config.start() + + self.mock_load_config = patch('ansible_collections.community.network.plugins.modules.network.exos.exos_config.load_config') + self.load_config = self.mock_load_config.start() + + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.network.exos.exos_config.run_commands') + self.run_commands = self.mock_run_commands.start() + + self.mock_get_startup_config = patch('ansible_collections.community.network.plugins.modules.network.exos.exos_config.get_startup_config') + self.get_startup_config = self.mock_get_startup_config.start() + + self.cliconf_obj = Cliconf(MagicMock()) + + self.mock_get_diff = patch('ansible_collections.community.network.plugins.modules.network.exos.exos_config.get_diff') + self.get_diff = self.mock_get_diff.start() + + self.running_config = load_fixture('exos_config_config.cfg') + + def tearDown(self): + super(TestExosConfigModule, self).tearDown() + self.mock_get_config.stop() + self.mock_load_config.stop() + self.mock_run_commands.stop() + self.mock_get_startup_config.stop() + + def load_fixtures(self, commands=None): + config_file = 'exos_config_config.cfg' + self.get_config.return_value = load_fixture(config_file) + self.load_config.return_value = None + + def test_exos_config_unchanged(self): + src = load_fixture('exos_config_config.cfg') + set_module_args(dict(src=src)) + self.get_diff.return_value = self.cliconf_obj.get_diff(src, src) + self.execute_module() + + def test_exos_config_src(self): + src = load_fixture('exos_config_src.cfg') + set_module_args(dict(src=src)) + commands = ['configure ports 1 description-string "IDS"', + 'configure snmp sysName "marble"'] + self.get_diff.return_value = self.cliconf_obj.get_diff(src, self.running_config) + self.execute_module(changed=True, commands=commands) + + def test_exos_config_backup(self): + set_module_args(dict(backup=True)) + result = self.execute_module() + self.assertIn('__backup__', result) + + def test_exos_config_save_always(self): + self.run_commands.return_value = 'configure snmp sysName "marble"' + set_module_args(dict(save_when='always')) + self.execute_module(changed=True) + self.assertEqual(self.run_commands.call_count, 1) + self.assertEqual(self.get_config.call_count, 0) + self.assertEqual(self.load_config.call_count, 0) + args = self.run_commands.call_args[0][1] + self.assertIn('save configuration', args['command']) + + def test_exos_config_save_changed_true(self): + src = load_fixture('exos_config_src.cfg') + set_module_args(dict(src=src, save_when='changed')) + commands = ['configure ports 1 description-string "IDS"', + 'configure snmp sysName "marble"'] + self.get_diff.return_value = self.cliconf_obj.get_diff(src, self.running_config) + self.execute_module(changed=True, commands=commands) + self.assertEqual(self.run_commands.call_count, 1) + self.assertEqual(self.get_config.call_count, 1) + self.assertEqual(self.load_config.call_count, 1) + args = self.run_commands.call_args[0][1] + self.assertIn('save configuration', args['command']) + + def test_exos_config_save_changed_true_check_mode(self): + src = load_fixture('exos_config_src.cfg') + set_module_args(dict(src=src, save_when='changed', _ansible_check_mode=True)) + commands = ['configure ports 1 description-string "IDS"', + 'configure snmp sysName "marble"'] + self.get_diff.return_value = self.cliconf_obj.get_diff(src, self.running_config) + self.execute_module(changed=True, commands=commands) + self.assertEqual(self.run_commands.call_count, 0) + self.assertEqual(self.get_config.call_count, 1) + self.assertEqual(self.load_config.call_count, 0) + + def test_exos_config_save_changed_false(self): + set_module_args(dict(save_when='changed')) + self.execute_module(changed=False) + self.assertEqual(self.run_commands.call_count, 0) + self.assertEqual(self.get_config.call_count, 0) + self.assertEqual(self.load_config.call_count, 0) + + def test_exos_config_save_modified_false(self): + self.get_startup_config.return_value = load_fixture('exos_config_config.cfg') + set_module_args(dict(save_when='modified')) + self.execute_module(changed=False) + self.assertEqual(self.run_commands.call_count, 0) + self.assertEqual(self.get_config.call_count, 1) + self.assertEqual(self.get_startup_config.call_count, 1) + self.assertEqual(self.load_config.call_count, 0) + + def test_exos_config_save_modified_true(self): + self.get_startup_config.return_value = load_fixture('exos_config_modified.cfg') + set_module_args(dict(save_when='modified')) + self.execute_module(changed=True) + self.assertEqual(self.run_commands.call_count, 1) + self.assertTrue(self.get_config.call_count > 0) + self.assertEqual(self.get_startup_config.call_count, 1) + self.assertEqual(self.load_config.call_count, 0) + + def test_exos_config_lines(self): + lines = ['configure snmp sysName "marble"'] + set_module_args(dict(lines=lines)) + commands = ['configure snmp sysName "marble"'] + self.get_diff.return_value = self.cliconf_obj.get_diff('\n'.join(lines), self.running_config) + self.execute_module(changed=True, commands=commands) + + def test_exos_config_before(self): + lines = ['configure snmp sysName "marble"'] + set_module_args(dict(lines=lines, before=['test1', 'test2'])) + commands = ['test1', 'test2', 'configure snmp sysName "marble"'] + self.get_diff.return_value = self.cliconf_obj.get_diff('\n'.join(lines), self.running_config) + self.execute_module(changed=True, commands=commands, sort=False) + + def test_exos_config_after(self): + lines = ['configure snmp sysName "marble"'] + set_module_args(dict(lines=lines, after=['test1', 'test2'])) + commands = ['configure snmp sysName "marble"', 'test1', 'test2'] + self.get_diff.return_value = self.cliconf_obj.get_diff('\n'.join(lines), self.running_config) + self.execute_module(changed=True, commands=commands, sort=False) + + def test_exos_config_before_after_no_change(self): + lines = ['configure snmp sysName "x870"'] + set_module_args(dict(lines=lines, + before=['test1', 'test2'], + after=['test3', 'test4'])) + self.get_diff.return_value = self.cliconf_obj.get_diff('\n'.join(lines), self.running_config) + self.execute_module() + + def test_exos_config_config(self): + config = 'hostname localhost' + lines = ['configure snmp sysName "x870"'] + set_module_args(dict(lines=lines, config=config)) + commands = ['configure snmp sysName "x870"'] + self.get_diff.return_value = self.cliconf_obj.get_diff('\n'.join(lines), config) + self.execute_module(changed=True, commands=commands) + + def test_exos_config_match_none(self): + lines = ['configure snmp sysName "x870"'] + set_module_args(dict(lines=lines, match='none')) + self.get_diff.return_value = self.cliconf_obj.get_diff('\n'.join(lines), self.running_config, diff_match='none') + self.execute_module(changed=True, commands=lines) + + def test_exos_config_src_and_lines_fails(self): + args = dict(src='foo', lines='foo') + set_module_args(args) + self.execute_module(failed=True) + + def test_exos_config_match_exact_requires_lines(self): + args = dict(match='exact') + set_module_args(args) + self.execute_module(failed=True) + + def test_exos_config_match_strict_requires_lines(self): + args = dict(match='strict') + set_module_args(args) + self.execute_module(failed=True) + + def test_exos_config_replace_block_requires_lines(self): + args = dict(replace='block') + set_module_args(args) + self.execute_module(failed=True) + + def test_exos_config_replace_config_requires_src(self): + args = dict(replace='config') + set_module_args(args) + self.execute_module(failed=True) + + def test_exos_diff_running_unchanged(self): + args = dict(diff_against='running', _ansible_diff=True) + set_module_args(args) + self.execute_module(changed=False) + + def test_exos_diff_running_unchanged_check(self): + args = dict(diff_against='running', + _ansible_diff=True, + _ansible_check_mode=True) + set_module_args(args) + self.execute_module(changed=False) + + def test_exos_diff_startup_unchanged(self): + mock_get_startup_config = patch('ansible_collections.community.network.plugins.modules.network.exos.exos_config.get_startup_config') + get_startup_config = mock_get_startup_config.start() + get_startup_config.return_value = load_fixture('exos_config_config.cfg') + + args = dict(diff_against='startup', _ansible_diff=True) + set_module_args(args) + self.execute_module(changed=False) + self.assertEqual(get_startup_config.call_count, 1) + + mock_get_startup_config.stop() + + def test_exos_diff_startup_changed(self): + mock_get_startup_config = patch('ansible_collections.community.network.plugins.modules.network.exos.exos_config.get_startup_config') + get_startup_config = mock_get_startup_config.start() + get_startup_config.return_value = load_fixture('exos_config_modified.cfg') + + args = dict(diff_against='startup', _ansible_diff=True) + set_module_args(args) + self.execute_module(changed=True) + self.assertEqual(get_startup_config.call_count, 1) + + mock_get_startup_config.stop() + + def test_exos_diff_intended_unchanged(self): + intended_config = load_fixture('exos_config_config.cfg') + args = dict(diff_against='intended', + intended_config=intended_config, + _ansible_diff=True) + set_module_args(args) + self.get_diff = self.cliconf_obj.get_diff(intended_config, self.running_config) + self.execute_module(changed=False) + + def test_exos_diff_intended_modified(self): + intended_config = load_fixture('exos_config_modified.cfg') + args = dict(diff_against='intended', + intended_config=intended_config, + _ansible_diff=True) + set_module_args(args) + self.get_diff = self.cliconf_obj.get_diff(intended_config, self.running_config) + self.execute_module(changed=True) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_exos_facts.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_exos_facts.py new file mode 100644 index 000000000..1f8666c24 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_exos_facts.py @@ -0,0 +1,124 @@ +# +# (c) 2018 Extreme Networks Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os +import json + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from ansible.module_utils.common._collections_compat import Mapping +from ansible_collections.community.network.plugins.modules import exos_facts +from .exos_module import TestExosModule + + +class TestExosFactsModule(TestExosModule): + + module = exos_facts + + def setUp(self): + super(TestExosFactsModule, self).setUp() + + self.mock_run_commands = patch('ansible_collections.community.network.plugins.module_utils.network.exos.facts.legacy.base.run_commands') + self.run_commands = self.mock_run_commands.start() + + self.mock_get_resource_connection = patch('ansible_collections.ansible.netcommon.plugins.module_utils.network.' + 'common.facts.facts.get_resource_connection') + self.get_resource_connection = self.mock_get_resource_connection.start() + + def tearDown(self): + super(TestExosFactsModule, self).tearDown() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + + def load_from_file(*args, **kwargs): + module, commands = args + output = list() + fixture_path = os.path.join(os.path.dirname(__file__), 'exos_fixtures') + + for command in commands: + if isinstance(command, Mapping): + command = command['command'] + filename = str(command).replace(' ', '_') + filename = os.path.join(fixture_path, filename) + with open(filename) as f: + data = f.read() + + try: + data = json.loads(data) + except Exception: + pass + + output.append(data) + return output + + self.run_commands.side_effect = load_from_file + + def test_exos_facts_default(self): + set_module_args(dict(gather_subset='default')) + result = self.execute_module() + self.assertEqual( + result['ansible_facts']['ansible_net_model'], 'X870-32c' + ) + self.assertEqual( + result['ansible_facts']['ansible_net_serialnum'], '1604G-00175' + ) + self.assertEqual( + result['ansible_facts']['ansible_net_version'], '22.5.1.7' + ) + + def test_exos_facts_hardware(self): + set_module_args(dict(gather_subset='hardware')) + result = self.execute_module() + self.assertEqual( + result['ansible_facts']['ansible_net_memfree_mb'], 7298 + ) + self.assertEqual( + result['ansible_facts']['ansible_net_memtotal_mb'], 8192 + ) + + def test_exos_facts_interfaces(self): + set_module_args(dict(gather_subset='interfaces')) + result = self.execute_module() + self.assertEqual( + result['ansible_facts']['ansible_net_interfaces']['1']['bandwidth_configured'], '25000' + ) + self.assertEqual( + result['ansible_facts']['ansible_net_interfaces']['3']['description'], 'Database Server' + ) + self.assertEqual( + result['ansible_facts']['ansible_net_interfaces']['3']['type'], 'Ethernet' + ) + self.assertEqual( + result['ansible_facts']['ansible_net_interfaces']['vlan1']['ipv4'][0]['address'], '10.0.1.1' + ) + self.assertEqual( + result['ansible_facts']['ansible_net_interfaces']['vlan3']['ipv6'][0]['address'], 'fe80::202:b3ff:fe1e:8329' + ) + self.assertEqual( + result['ansible_facts']['ansible_net_all_ipv4_addresses'], ['10.0.1.1', '192.168.1.1'] + ) + self.assertEqual( + result['ansible_facts']['ansible_net_all_ipv6_addresses'], ['fe80::202:b3ff:fe1e:8329'] + ) + self.assertEqual( + result['ansible_facts']['ansible_net_interfaces']['vlan3']['type'], 'VLAN' + ) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_ftd_configuration.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_ftd_configuration.py new file mode 100644 index 000000000..4b6463f8f --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_ftd_configuration.py @@ -0,0 +1,125 @@ +# Copyright (c) 2018-2019 Cisco and/or its affiliates. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +import pytest +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args, exit_json, fail_json, AnsibleFailJson, AnsibleExitJson + +from ansible.module_utils import basic +from ansible_collections.community.network.plugins.module_utils.network.ftd.common import FtdConfigurationError, FtdServerError, FtdUnexpectedResponse +from ansible_collections.community.network.plugins.module_utils.network.ftd.configuration import FtdInvalidOperationNameError, CheckModeException +from ansible_collections.community.network.plugins.module_utils.network.ftd.fdm_swagger_client import ValidationError +from ansible_collections.community.network.plugins.modules import ftd_configuration + + +class TestFtdConfiguration(object): + module = ftd_configuration + + @pytest.fixture(autouse=True) + def module_mock(self, mocker): + return mocker.patch.multiple(basic.AnsibleModule, exit_json=exit_json, fail_json=fail_json) + + @pytest.fixture(autouse=True) + def connection_mock(self, mocker): + connection_class_mock = mocker.patch('ansible_collections.community.network.plugins.modules.ftd_configuration.Connection') + return connection_class_mock.return_value + + @pytest.fixture + def resource_mock(self, mocker): + resource_class_mock = mocker.patch('ansible_collections.community.network.plugins.modules.ftd_configuration.BaseConfigurationResource') + resource_instance = resource_class_mock.return_value + return resource_instance.execute_operation + + def test_module_should_fail_when_ftd_invalid_operation_name_error(self, resource_mock): + operation_name = 'test name' + resource_mock.side_effect = FtdInvalidOperationNameError(operation_name) + + result = self._run_module_with_fail_json({'operation': operation_name}) + assert result['failed'] + assert 'Invalid operation name provided: %s' % operation_name == result['msg'] + + def test_module_should_fail_when_ftd_configuration_error(self, resource_mock): + operation_name = 'test name' + msg = 'Foo error.' + resource_mock.side_effect = FtdConfigurationError(msg) + + result = self._run_module_with_fail_json({'operation': operation_name}) + assert result['failed'] + assert 'Failed to execute %s operation because of the configuration error: %s' % (operation_name, msg) == \ + result['msg'] + + def test_module_should_fail_when_ftd_server_error(self, resource_mock): + operation_name = 'test name' + code = 500 + response = {'error': 'foo'} + resource_mock.side_effect = FtdServerError(response, code) + + result = self._run_module_with_fail_json({'operation': operation_name}) + assert result['failed'] + assert 'Server returned an error trying to execute %s operation. Status code: %s. ' \ + 'Server response: %s' % (operation_name, code, response) == \ + result['msg'] + + def test_module_should_fail_when_validation_error(self, resource_mock): + operation_name = 'test name' + msg = 'Foo error.' + resource_mock.side_effect = ValidationError(msg) + + result = self._run_module_with_fail_json({'operation': operation_name}) + assert result['failed'] + assert msg == result['msg'] + + def test_module_should_fail_when_unexpected_server_response(self, resource_mock): + operation_name = 'test name' + msg = 'Foo error.' + resource_mock.side_effect = FtdUnexpectedResponse(msg) + + result = self._run_module_with_fail_json({'operation': operation_name}) + + assert result['failed'] + assert msg == result['msg'] + + def test_module_should_fail_when_check_mode_exception(self, resource_mock): + operation_name = 'test name' + msg = 'Foo error.' + resource_mock.side_effect = CheckModeException(msg) + + result = self._run_module({'operation': operation_name}) + assert not result['changed'] + + def test_module_should_run_successful(self, resource_mock): + operation_name = 'test name' + resource_mock.return_value = {'result': 'ok'} + + result = self._run_module({'operation': operation_name}) + assert result['response'] == {'result': 'ok'} + + def _run_module(self, module_args): + set_module_args(module_args) + with pytest.raises(AnsibleExitJson) as ex: + self.module.main() + return ex.value.args[0] + + def _run_module_with_fail_json(self, module_args): + set_module_args(module_args) + with pytest.raises(AnsibleFailJson) as exc: + self.module.main() + result = exc.value.args[0] + return result diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_ftd_file_download.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_ftd_file_download.py new file mode 100644 index 000000000..a39220c07 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_ftd_file_download.py @@ -0,0 +1,99 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +import pytest + +from ansible.module_utils import basic +from ansible_collections.community.network.plugins.module_utils.network.ftd.common import HTTPMethod +from ansible_collections.community.network.plugins.module_utils.network.ftd.fdm_swagger_client import FILE_MODEL_NAME, OperationField +from ansible_collections.community.network.plugins.modules import ftd_file_download +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args, exit_json, fail_json, AnsibleFailJson, AnsibleExitJson + + +class TestFtdFileDownload(object): + module = ftd_file_download + + @pytest.fixture(autouse=True) + def module_mock(self, mocker): + return mocker.patch.multiple(basic.AnsibleModule, exit_json=exit_json, fail_json=fail_json) + + @pytest.fixture + def connection_mock(self, mocker): + connection_class_mock = mocker.patch('ansible_collections.community.network.plugins.modules.ftd_file_download.Connection') + return connection_class_mock.return_value + + @pytest.mark.parametrize("missing_arg", ['operation', 'destination']) + def test_module_should_fail_without_required_args(self, missing_arg): + module_args = {'operation': 'downloadFile', 'destination': '/tmp'} + del module_args[missing_arg] + set_module_args(module_args) + + with pytest.raises(AnsibleFailJson) as ex: + self.module.main() + + assert 'missing required arguments: %s' % missing_arg in str(ex.value) + + def test_module_should_fail_when_no_operation_spec_found(self, connection_mock): + connection_mock.get_operation_spec.return_value = None + set_module_args({'operation': 'nonExistingDownloadOperation', 'destination': '/tmp'}) + + with pytest.raises(AnsibleFailJson) as ex: + self.module.main() + + result = ex.value.args[0] + assert result['failed'] + assert result['msg'] == 'Operation with specified name is not found: nonExistingDownloadOperation' + + def test_module_should_fail_when_not_download_operation_specified(self, connection_mock): + connection_mock.get_operation_spec.return_value = { + OperationField.METHOD: HTTPMethod.GET, + OperationField.URL: '/object', + OperationField.MODEL_NAME: 'NetworkObject' + } + set_module_args({'operation': 'nonDownloadOperation', 'destination': '/tmp'}) + + with pytest.raises(AnsibleFailJson) as ex: + self.module.main() + + result = ex.value.args[0] + assert result['failed'] + assert result['msg'] == 'Invalid download operation: nonDownloadOperation. ' \ + 'The operation must make GET request and return a file.' + + def test_module_should_call_download_and_return(self, connection_mock): + connection_mock.validate_path_params.return_value = (True, None) + connection_mock.get_operation_spec.return_value = { + OperationField.METHOD: HTTPMethod.GET, + OperationField.URL: '/file/{objId}', + OperationField.MODEL_NAME: FILE_MODEL_NAME + } + + set_module_args({ + 'operation': 'downloadFile', + 'path_params': {'objId': '12'}, + 'destination': '/tmp' + }) + with pytest.raises(AnsibleExitJson) as ex: + self.module.main() + + result = ex.value.args[0] + assert not result['changed'] + connection_mock.download_file.assert_called_once_with('/file/{objId}', '/tmp', {'objId': '12'}) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_ftd_file_upload.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_ftd_file_upload.py new file mode 100644 index 000000000..b5fd837b8 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_ftd_file_upload.py @@ -0,0 +1,81 @@ +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +import pytest +from ansible.module_utils import basic +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args, exit_json, fail_json, AnsibleFailJson, AnsibleExitJson + +from ansible_collections.community.network.plugins.modules import ftd_file_upload +from ansible_collections.community.network.plugins.module_utils.network.ftd.fdm_swagger_client import OperationField +from ansible_collections.community.network.plugins.module_utils.network.ftd.common import HTTPMethod + + +class TestFtdFileUpload(object): + module = ftd_file_upload + + @pytest.fixture(autouse=True) + def module_mock(self, mocker): + return mocker.patch.multiple(basic.AnsibleModule, exit_json=exit_json, fail_json=fail_json) + + @pytest.fixture + def connection_mock(self, mocker): + connection_class_mock = mocker.patch('ansible_collections.community.network.plugins.modules.ftd_file_upload.Connection') + return connection_class_mock.return_value + + @pytest.mark.parametrize("missing_arg", ['operation', 'file_to_upload']) + def test_module_should_fail_without_required_args(self, missing_arg): + module_args = {'operation': 'uploadFile', 'file_to_upload': '/tmp/test.txt'} + del module_args[missing_arg] + set_module_args(module_args) + + with pytest.raises(AnsibleFailJson) as ex: + self.module.main() + + assert 'missing required arguments: %s' % missing_arg in str(ex.value) + + def test_module_should_fail_when_no_operation_spec_found(self, connection_mock): + connection_mock.get_operation_spec.return_value = None + set_module_args({'operation': 'nonExistingUploadOperation', 'file_to_upload': '/tmp/test.txt'}) + + with pytest.raises(AnsibleFailJson) as ex: + self.module.main() + + result = ex.value.args[0] + assert result['failed'] + assert result['msg'] == 'Operation with specified name is not found: nonExistingUploadOperation' + + def test_module_should_fail_when_not_upload_operation_specified(self, connection_mock): + connection_mock.get_operation_spec.return_value = { + OperationField.METHOD: HTTPMethod.GET, + OperationField.URL: '/object/network', + OperationField.MODEL_NAME: 'NetworkObject' + } + set_module_args({'operation': 'nonUploadOperation', 'file_to_upload': '/tmp/test.txt'}) + + with pytest.raises(AnsibleFailJson) as ex: + self.module.main() + + result = ex.value.args[0] + assert result['failed'] + assert result['msg'] == 'Invalid upload operation: nonUploadOperation. ' \ + 'The operation must make POST request and return UploadStatus model.' + + def test_module_should_call_upload_and_return_response(self, connection_mock): + connection_mock.get_operation_spec.return_value = { + OperationField.METHOD: HTTPMethod.POST, + OperationField.URL: '/uploadFile', + OperationField.MODEL_NAME: 'FileUploadStatus' + } + connection_mock.upload_file.return_value = {'id': '123'} + + set_module_args({ + 'operation': 'uploadFile', + 'file_to_upload': '/tmp/test.txt' + }) + with pytest.raises(AnsibleExitJson) as ex: + self.module.main() + + result = ex.value.args[0] + assert result['changed'] + assert {'id': '123'} == result['response'] + connection_mock.upload_file.assert_called_once_with('/tmp/test.txt', '/uploadFile') diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_ftd_install.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_ftd_install.py new file mode 100644 index 000000000..fb0ada651 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_ftd_install.py @@ -0,0 +1,249 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +import pytest +from ansible_collections.community.network.tests.unit.compat.mock import PropertyMock +from ansible.module_utils import basic +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args, exit_json, fail_json, AnsibleFailJson, AnsibleExitJson + +from ansible_collections.community.network.plugins.modules import ftd_install +from ansible_collections.community.network.plugins.module_utils.network.ftd.device import FtdModel + +DEFAULT_MODULE_PARAMS = dict( + device_hostname="firepower", + device_username="admin", + device_password="pass", + device_new_password="newpass", + device_sudo_password="sudopass", + device_ip="192.168.0.1", + device_netmask="255.255.255.0", + device_gateway="192.168.0.254", + device_model=FtdModel.FTD_ASA5516_X, + dns_server="8.8.8.8", + console_ip="10.89.0.0", + console_port="2004", + console_username="console_user", + console_password="console_pass", + rommon_file_location="tftp://10.0.0.1/boot/ftd-boot-1.9.2.0.lfbff", + image_file_location="http://10.0.0.1/Release/ftd-6.2.3-83.pkg", + image_version="6.2.3-83", + search_domains="cisco.com", + force_install=False +) + + +class TestFtdInstall(object): + module = ftd_install + + @pytest.fixture(autouse=True) + def module_mock(self, mocker): + mocker.patch.multiple(basic.AnsibleModule, exit_json=exit_json, fail_json=fail_json) + mocker.patch.object(basic.AnsibleModule, '_socket_path', new_callable=PropertyMock, create=True, + return_value=mocker.MagicMock()) + + @pytest.fixture(autouse=True) + def connection_mock(self, mocker): + connection_class_mock = mocker.patch('ansible_collections.community.network.plugins.modules.ftd_install.Connection') + return connection_class_mock.return_value + + @pytest.fixture + def config_resource_mock(self, mocker): + resource_class_mock = mocker.patch('ansible_collections.community.network.plugins.modules.ftd_install.BaseConfigurationResource') + return resource_class_mock.return_value + + @pytest.fixture(autouse=True) + def ftd_factory_mock(self, mocker): + return mocker.patch('ansible_collections.community.network.plugins.modules.ftd_install.FtdPlatformFactory') + + @pytest.fixture(autouse=True) + def has_kick_mock(self, mocker): + return mocker.patch('ansible_collections.community.network.plugins.module_utils.network.ftd.device.HAS_KICK', True) + + def test_module_should_fail_when_kick_is_not_installed(self, mocker): + mocker.patch('ansible_collections.community.network.plugins.module_utils.network.ftd.device.HAS_KICK', False) + + set_module_args(dict(DEFAULT_MODULE_PARAMS)) + with pytest.raises(AnsibleFailJson) as ex: + self.module.main() + + result = ex.value.args[0] + assert result['failed'] + assert "Firepower-kickstart library is required to run this module" in result['msg'] + + def test_module_should_fail_when_platform_is_not_supported(self, config_resource_mock): + config_resource_mock.execute_operation.return_value = {'platformModel': 'nonSupportedModel'} + module_params = dict(DEFAULT_MODULE_PARAMS) + del module_params['device_model'] + + set_module_args(module_params) + with pytest.raises(AnsibleFailJson) as ex: + self.module.main() + + result = ex.value.args[0] + assert result['failed'] + assert result['msg'] == "Platform model 'nonSupportedModel' is not supported by this module." + + def test_module_should_fail_when_device_model_is_missing_with_local_connection(self, mocker): + mocker.patch.object(basic.AnsibleModule, '_socket_path', create=True, return_value=None) + module_params = dict(DEFAULT_MODULE_PARAMS) + del module_params['device_model'] + + set_module_args(module_params) + with pytest.raises(AnsibleFailJson) as ex: + self.module.main() + + result = ex.value.args[0] + assert result['failed'] + expected_msg = \ + "The following parameters are mandatory when the module is used with 'local' connection: device_model." + assert expected_msg == result['msg'] + + def test_module_should_fail_when_management_ip_values_are_missing_with_local_connection(self, mocker): + mocker.patch.object(basic.AnsibleModule, '_socket_path', create=True, return_value=None) + module_params = dict(DEFAULT_MODULE_PARAMS) + del module_params['device_ip'] + del module_params['device_netmask'] + del module_params['device_gateway'] + + set_module_args(module_params) + with pytest.raises(AnsibleFailJson) as ex: + self.module.main() + + result = ex.value.args[0] + assert result['failed'] + expected_msg = "The following parameters are mandatory when the module is used with 'local' connection: " \ + "device_gateway, device_ip, device_netmask." + assert expected_msg == result['msg'] + + def test_module_should_return_when_software_is_already_installed(self, config_resource_mock): + config_resource_mock.execute_operation.return_value = { + 'softwareVersion': '6.3.0-11', + 'platformModel': 'Cisco ASA5516-X Threat Defense' + } + module_params = dict(DEFAULT_MODULE_PARAMS) + module_params['image_version'] = '6.3.0-11' + + set_module_args(module_params) + with pytest.raises(AnsibleExitJson) as ex: + self.module.main() + + result = ex.value.args[0] + assert not result['changed'] + assert result['msg'] == 'FTD already has 6.3.0-11 version of software installed.' + + def test_module_should_proceed_if_software_is_already_installed_and_force_param_given(self, config_resource_mock): + config_resource_mock.execute_operation.return_value = { + 'softwareVersion': '6.3.0-11', + 'platformModel': 'Cisco ASA5516-X Threat Defense' + } + module_params = dict(DEFAULT_MODULE_PARAMS) + module_params['image_version'] = '6.3.0-11' + module_params['force_install'] = True + + set_module_args(module_params) + with pytest.raises(AnsibleExitJson) as ex: + self.module.main() + + result = ex.value.args[0] + assert result['changed'] + assert result['msg'] == 'Successfully installed FTD image 6.3.0-11 on the firewall device.' + + def test_module_should_install_ftd_image(self, config_resource_mock, ftd_factory_mock): + config_resource_mock.execute_operation.side_effect = [ + { + 'softwareVersion': '6.2.3-11', + 'platformModel': 'Cisco ASA5516-X Threat Defense' + } + ] + module_params = dict(DEFAULT_MODULE_PARAMS) + + set_module_args(module_params) + with pytest.raises(AnsibleExitJson) as ex: + self.module.main() + + result = ex.value.args[0] + assert result['changed'] + assert result['msg'] == 'Successfully installed FTD image 6.2.3-83 on the firewall device.' + ftd_factory_mock.create.assert_called_once_with('Cisco ASA5516-X Threat Defense', DEFAULT_MODULE_PARAMS) + ftd_factory_mock.create.return_value.install_ftd_image.assert_called_once_with(DEFAULT_MODULE_PARAMS) + + def test_module_should_fill_management_ip_values_when_missing(self, config_resource_mock, ftd_factory_mock): + config_resource_mock.execute_operation.side_effect = [ + { + 'softwareVersion': '6.3.0-11', + 'platformModel': 'Cisco ASA5516-X Threat Defense' + }, + { + 'items': [{ + 'ipv4Address': '192.168.1.1', + 'ipv4NetMask': '255.255.255.0', + 'ipv4Gateway': '192.168.0.1' + }] + } + ] + module_params = dict(DEFAULT_MODULE_PARAMS) + expected_module_params = dict(module_params) + del module_params['device_ip'] + del module_params['device_netmask'] + del module_params['device_gateway'] + expected_module_params.update( + device_ip='192.168.1.1', + device_netmask='255.255.255.0', + device_gateway='192.168.0.1' + ) + + set_module_args(module_params) + with pytest.raises(AnsibleExitJson): + self.module.main() + + ftd_factory_mock.create.assert_called_once_with('Cisco ASA5516-X Threat Defense', expected_module_params) + ftd_factory_mock.create.return_value.install_ftd_image.assert_called_once_with(expected_module_params) + + def test_module_should_fill_dns_server_when_missing(self, config_resource_mock, ftd_factory_mock): + config_resource_mock.execute_operation.side_effect = [ + { + 'softwareVersion': '6.3.0-11', + 'platformModel': 'Cisco ASA5516-X Threat Defense' + }, + { + 'items': [{ + 'dnsServerGroup': { + 'id': '123' + } + }] + }, + { + 'dnsServers': [{ + 'ipAddress': '8.8.9.9' + }] + } + ] + module_params = dict(DEFAULT_MODULE_PARAMS) + expected_module_params = dict(module_params) + del module_params['dns_server'] + expected_module_params['dns_server'] = '8.8.9.9' + + set_module_args(module_params) + with pytest.raises(AnsibleExitJson): + self.module.main() + + ftd_factory_mock.create.assert_called_once_with('Cisco ASA5516-X Threat Defense', expected_module_params) + ftd_factory_mock.create.return_value.install_ftd_image.assert_called_once_with(expected_module_params) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_iap_start_workflow.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_iap_start_workflow.py new file mode 100644 index 000000000..a084a0a1d --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_iap_start_workflow.py @@ -0,0 +1,914 @@ +""" +iap_token unit tests +""" +# -*- coding: utf-8 -*- + +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# pylint: disable=invalid-name,protected-access,function-redefined,unused-argument +# pylint: disable=unused-import,redundant-unittest-assert + +from __future__ import (absolute_import, division, print_function) + +__metaclass__ = type + +import mock +import unittest +from ansible_collections.community.network.plugins.modules import iap_start_workflow + + +class TestWorkflowModule(unittest.TestCase): + + @mock.patch('ansible_collections.community.network.plugins.modules.iap_start_workflow.start_workflow') + def test_iap_workflow(self, iap_workflow): + params = {"description": "NewTestAnsible", + "https": "false", + "iap_fqdn": "localhost", + "iap_port": "3000", + "token_key": "NDM2OGJlMzg5MjRlMTQyNzc0YmZmNmQ5ZWRkYzcyYTE=", + "validate_certs": "false", + "variables": { + "value": "3333" + }, + "workflow_name": "DummyWF"} + + module = {"params": params} + return_response = { + "_id": "e17646fc7a8f4a6a9e691fe4", + "created": "2018-09-15T21:57:50.388Z", + "created_by": "5b8fe4fcb3f8b800134ea5fd", + "description": "NewTestAnsible", + "font_size": 12, + "groups": [], + "last_updated": "2019-02-22T15:55:40.197Z", + "last_updated_by": "5b8fe4fcb3f8b800134ea5fd", + "locked": 'false', + "metrics": { + "progress": 0, + "start_time": 1551043499742, + "user": "5b8fe4fcb3f8b800134ea5fd" + }, + "name": "DummyWF", + "status": "running", + "tasks": { + "10d1": { + "_id": "1ca495e4-dc86-41df-b3ca-8c215920ec91", + "app": "WorkFlowEngine", + "deprecated": 'false', + "description": "Create a new Job variable by Job ID and assign it a value.", + "displayName": "WorkFlowEngine", + "groups": [], + "iterations": [ + "1ca495e4-dc86-41df-b3ca-8c215920ec91" + ], + "job": { + "_id": "e17646fc7a8f4a6a9e691fe4", + "description": "NewTestAnsible", + "index": 0, + "name": "DummyWF", + "task": "10d1" + }, + "location": "Application", + "locked": 'false', + "matched": [ + { + "highlightString": "<span class='highlight-string'>new</span>Variable", + "key": "name" + }, + { + "highlightString": "Create a <span class='highlight-string'>new</span> " + "Job variable by Job ID and assign it a value.", + "key": "description" + } + ], + "metrics": { + "owner": "" + }, + "name": "newVariable", + "status": "incomplete", + "summary": "Create a Job Variable", + "type": "operation", + "variables": { + "incoming": { + "name": "anyVar", + "value": { + "hello": "hello_from_the_other" + } + }, + "outgoing": { + "value": 'null' + } + }, + "x": 0.24, + "y": 0.3904899135446686 + }, + "50c1": { + "_id": "33a32349-c151-4b67-b1cb-d5df2147772f", + "actor": "Pronghorn", + "app": "StringMethods", + "deprecated": 'false', + "description": "Concatenates a string with a second string(s). The second parameter can be a " + "string or array.", + "displayName": "String", + "groups": [], + "iterations": [ + "33a32349-c151-4b67-b1cb-d5df2147772f" + ], + "job": { + "_id": "e17646fc7a8f4a6a9e691fe4", + "description": "NewTestAnsible", + "index": 0, + "name": "DummyWF", + "task": "50c1" + }, + "location": "Application", + "locked": 'false', + "matched": [ + { + "highlightString": "<span class='highlight-string'>Strin</span>gMethods", + "key": "app" + }, + { + "highlightString": "Concatenates <span class='highlight-string'>" + "strin</span>gs together.", + "key": "summary" + }, + { + "highlightString": "Concatenates a <span class='highlight-string'>strin</span>g " + "with a second string(s). The second parameter " + "can be a string or array.", + "key": "description" + } + ], + "metrics": { + "owner": "" + }, + "name": "concat", + "scheduled": 'false', + "status": "incomplete", + "summary": "Concatenates strings together.", + "type": "automatic", + "variables": { + "error": "", + "incoming": { + "str": "$var.5023.return_data", + "stringN": [ + "_side" + ] + }, + "outgoing": { + "combinedStrings": 'null' + } + }, + "x": 0.37, + "y": 0.17002881844380405 + }, + "5023": { + "_id": "56396de1-c7b5-495e-aff8-342fe168a2b1", + "app": "WorkFlowEngine", + "deprecated": 'false', + "description": "Query data using a dot/bracket notation string and a matching key/value pair.", + "displayName": "WorkFlowEngine", + "groups": [], + "iterations": [ + "56396de1-c7b5-495e-aff8-342fe168a2b1" + ], + "job": { + "_id": "e17646fc7a8f4a6a9e691fe4", + "description": "NewTestAnsible", + "index": 0, + "name": "DummyWF", + "task": "5023" + }, + "location": "Application", + "locked": 'false', + "matched": [ + { + "highlightString": "<span class='highlight-string'>query</span>", + "key": "name" + }, + { + "highlightString": "<span class='highlight-string'>Query</span> Data Using " + "'json-query' Format", + "key": "summary" + }, + { + "highlightString": "<span class='highlight-string'>Query</span> data using a " + "dot/bracket notation string and a matching key/value pair.", + "key": "description" + } + ], + "metrics": { + "owner": "" + }, + "name": "query", + "scheduled": 'false', + "status": "incomplete", + "summary": "Query Data Using 'json-query' Format", + "type": "operation", + "variables": { + "error": "", + "incoming": { + "obj": "$var.10d1.value", + "pass_on_'null'": 'false', + "query": "hello" + }, + "outgoing": { + "return_data": 'null' + } + }, + "x": 0.2630769230769231, + "y": 0.2420749279538905 + }, + "7cd4": { + "_id": "dc132a1a-4ac8-4bfe-b75d-ea95eac84d09", + "actor": "job", + "app": "WorkFlowEngine", + "deprecated": 'false', + "description": "Run a child Job inside a Workflow", + "displayName": "WorkFlowEngine", + "groups": [], + "iterations": [ + "dc132a1a-4ac8-4bfe-b75d-ea95eac84d09" + ], + "job": { + "_id": "e17646fc7a8f4a6a9e691fe4", + "description": "NewTestAnsible", + "index": 0, + "name": "DummyWF", + "task": "7cd4" + }, + "location": "Application", + "locked": 'false', + "matched": [ + { + "highlightString": "<span class='highlight-string'>child</span>Job", + "key": "name" + }, + { + "highlightString": "Run <span class='highlight-string'>Child</span> Job", + "key": "summary" + }, + { + "highlightString": "Run a <span class='highlight-string'>child</span>" + " Job inside a Workflow", + "key": "description" + } + ], + "metrics": { + "owner": "" + }, + "name": "childJob", + "status": "incomplete", + "summary": "Run Child Job", + "type": "operation", + "variables": { + "incoming": { + "task": "", + "variables": { + "child1_body": { + "task": "50c1", + "value": "combinedStrings", + "variable": "" + } + }, + "workflow": "child1" + }, + "outgoing": { + "job_details": 'null' + } + }, + "x": 0.6146153846153846, + "y": 0.40634005763688763 + }, + "87f4": { + "_id": "1f5da682-b377-4739-a60d-31d897c59863", + "app": "MOP", + "deprecated": 'false', + "description": "MOP confirm Task", + "displayName": "MOP", + "groups": [ + "5b8fe4fcb3f8b800134ea5fc" + ], + "iterations": [ + "1f5da682-b377-4739-a60d-31d897c59863" + ], + "job": { + "_id": "e17646fc7a8f4a6a9e691fe4", + "description": "NewTestAnsible", + "index": 0, + "name": "DummyWF", + "task": "87f4" + }, + "location": "Application", + "locked": 'false', + "matched": [ + { + "highlightString": "<span class='highlight-string'>confirm</span>Task", + "key": "name" + }, + { + "highlightString": "MOP <span class='highlight-string'>confirm</span> Task", + "key": "summary" + }, + { + "highlightString": "MOP <span class='highlight-string'>confirm</span> Task", + "key": "description" + } + ], + "metrics": { + "owner": "" + }, + "name": "confirmTask", + "scheduled": 'false', + "status": "incomplete", + "summary": "MOP confirm Task", + "type": "manual", + "variables": { + "error": "", + "incoming": { + "body": "<!value_output!>", + "title": "Run Time Var", + "variables": "$var.f97e.value" + }, + "outgoing": {} + }, + "view": "/mop/task/confirmTask", + "x": 0.6961538461538461, + "y": 0.06772334293948126 + }, + "f97e": { + "_id": "38017b10-5e26-4161-bccb-c2f983dcf1ca", + "app": "WorkFlowEngine", + "deprecated": 'false', + "description": "Create a new Job variable by Job ID and assign it a value.", + "displayName": "WorkFlowEngine", + "groups": [], + "iterations": [ + "38017b10-5e26-4161-bccb-c2f983dcf1ca" + ], + "job": { + "_id": "e17646fc7a8f4a6a9e691fe4", + "description": "NewTestAnsible", + "index": 0, + "name": "DummyWF", + "task": "f97e" + }, + "location": "Application", + "locked": 'false', + "matched": [ + { + "highlightString": "<span class='highlight-string'>new</span>Variable", + "key": "name" + }, + { + "highlightString": "Create a <span class='highlight-string'>new</span>" + " Job variable by Job ID and assign it a value.", + "key": "description" + } + ], + "metrics": { + "owner": "" + }, + "name": "newVariable", + "status": "incomplete", + "summary": "Create a Job Variable", + "type": "operation", + "variables": { + "incoming": { + "name": "run_time", + "value": { + "value_output": "I am RunTime Variable" + } + }, + "outgoing": { + "value": 'null' + } + }, + "x": 0.45615384615384613, + "y": -0.04755043227665706 + }, + "workflow_end": { + "groups": [], + "name": "workflow_end", + "status": "incomplete", + "x": 0.9, + "y": 0.5979827089337176 + }, + "workflow_start": { + "groups": [], + "metrics": { + "finish_state": "success", + "start_time": 1551043499742, + "user": "5b8fe4fcb3f8b800134ea5fd" + }, + "name": "workflow_start", + "status": "complete", + "x": 0.04692307692307692, + "y": 0.6023054755043228 + } + }, + "transitions": { + "10d1": { + "5023": { + "state": "success", + "type": "standard" + } + }, + "5023": { + "50c1": { + "state": "success", + "type": "standard" + } + }, + "50c1": { + "f97e": { + "state": "success", + "type": "standard" + } + }, + "7cd4": { + "workflow_end": { + "state": "success", + "type": "standard" + } + }, + "87f4": { + "7cd4": { + "state": "success", + "type": "standard" + } + }, + "f97e": { + "87f4": { + "state": "success", + "type": "standard" + } + }, + "workflow_end": {}, + "workflow_start": { + "10d1": { + "state": "success", + "type": "standard" + } + } + }, + "type": "automation", + "variables": { + "_id": "e17646fc7a8f4a6a9e691fe4", + "initiator": "admin@pronghorn", + "value": "3333" + }, + "watchers": [ + "5b8fe4fcb3f8b800134ea5fd" + ] + } + iap_workflow.return_value = { + "_id": "e17646fc7a8f4a6a9e691fe4", + "created": "2018-09-15T21:57:50.388Z", + "created_by": "5b8fe4fcb3f8b800134ea5fd", + "description": "NewTestAnsible", + "font_size": 12, + "groups": [], + "last_updated": "2019-02-22T15:55:40.197Z", + "last_updated_by": "5b8fe4fcb3f8b800134ea5fd", + "locked": 'false', + "metrics": { + "progress": 0, + "start_time": 1551043499742, + "user": "5b8fe4fcb3f8b800134ea5fd" + }, + "name": "DummyWF", + "status": "running", + "tasks": { + "10d1": { + "_id": "1ca495e4-dc86-41df-b3ca-8c215920ec91", + "app": "WorkFlowEngine", + "deprecated": 'false', + "description": "Create a new Job variable by Job ID and assign it a value.", + "displayName": "WorkFlowEngine", + "groups": [], + "iterations": [ + "1ca495e4-dc86-41df-b3ca-8c215920ec91" + ], + "job": { + "_id": "e17646fc7a8f4a6a9e691fe4", + "description": "NewTestAnsible", + "index": 0, + "name": "DummyWF", + "task": "10d1" + }, + "location": "Application", + "locked": 'false', + "matched": [ + { + "highlightString": "<span class='highlight-string'>new</span>Variable", + "key": "name" + }, + { + "highlightString": "Create a <span class='highlight-string'>new</span> " + "Job variable by Job ID and assign it a value.", + "key": "description" + } + ], + "metrics": { + "owner": "" + }, + "name": "newVariable", + "status": "incomplete", + "summary": "Create a Job Variable", + "type": "operation", + "variables": { + "incoming": { + "name": "anyVar", + "value": { + "hello": "hello_from_the_other" + } + }, + "outgoing": { + "value": 'null' + } + }, + "x": 0.24, + "y": 0.3904899135446686 + }, + "5023": { + "_id": "56396de1-c7b5-495e-aff8-342fe168a2b1", + "app": "WorkFlowEngine", + "deprecated": 'false', + "description": "Query data using a dot/bracket notation string and a matching key/value pair.", + "displayName": "WorkFlowEngine", + "groups": [], + "iterations": [ + "56396de1-c7b5-495e-aff8-342fe168a2b1" + ], + "job": { + "_id": "e17646fc7a8f4a6a9e691fe4", + "description": "NewTestAnsible", + "index": 0, + "name": "DummyWF", + "task": "5023" + }, + "location": "Application", + "locked": 'false', + "matched": [ + { + "highlightString": "<span class='highlight-string'>query</span>", + "key": "name" + }, + { + "highlightString": "<span class='highlight-string'>Query</span> " + "Data Using 'json-query' Format", + "key": "summary" + }, + { + "highlightString": "<span class='highlight-string'>Query</span> " + "data using a dot/bracket notation string and a " + "matching key/value pair.", + "key": "description" + } + ], + "metrics": { + "owner": "" + }, + "name": "query", + "scheduled": 'false', + "status": "incomplete", + "summary": "Query Data Using 'json-query' Format", + "type": "operation", + "variables": { + "error": "", + "incoming": { + "obj": "$var.10d1.value", + "pass_on_'null'": 'false', + "query": "hello" + }, + "outgoing": { + "return_data": 'null' + } + }, + "x": 0.2630769230769231, + "y": 0.2420749279538905 + }, + "50c1": { + "_id": "33a32349-c151-4b67-b1cb-d5df2147772f", + "actor": "Pronghorn", + "app": "StringMethods", + "deprecated": 'false', + "description": "Concatenates a string with a second string(s). " + "The second parameter can be a string or array.", + "displayName": "String", + "groups": [], + "iterations": [ + "33a32349-c151-4b67-b1cb-d5df2147772f" + ], + "job": { + "_id": "e17646fc7a8f4a6a9e691fe4", + "description": "NewTestAnsible", + "index": 0, + "name": "DummyWF", + "task": "50c1" + }, + "location": "Application", + "locked": 'false', + "matched": [ + { + "highlightString": "<span class='highlight-string'>Strin</span>gMethods", + "key": "app" + }, + { + "highlightString": "Concatenates <span class='highlight-string'>strin</span>gs together.", + "key": "summary" + }, + { + "highlightString": "Concatenates a <span class='highlight-string'>strin</span>g " + "with a second string(s). The second parameter " + "can be a string or array.", + "key": "description" + } + ], + "metrics": { + "owner": "" + }, + "name": "concat", + "scheduled": 'false', + "status": "incomplete", + "summary": "Concatenates strings together.", + "type": "automatic", + "variables": { + "error": "", + "incoming": { + "str": "$var.5023.return_data", + "stringN": [ + "_side" + ] + }, + "outgoing": { + "combinedStrings": 'null' + } + }, + "x": 0.37, + "y": 0.17002881844380405 + }, + "7cd4": { + "_id": "dc132a1a-4ac8-4bfe-b75d-ea95eac84d09", + "actor": "job", + "app": "WorkFlowEngine", + "deprecated": 'false', + "description": "Run a child Job inside a Workflow", + "displayName": "WorkFlowEngine", + "groups": [], + "iterations": [ + "dc132a1a-4ac8-4bfe-b75d-ea95eac84d09" + ], + "job": { + "_id": "e17646fc7a8f4a6a9e691fe4", + "description": "NewTestAnsible", + "index": 0, + "name": "DummyWF", + "task": "7cd4" + }, + "location": "Application", + "locked": 'false', + "matched": [ + { + "highlightString": "<span class='highlight-string'>child</span>Job", + "key": "name" + }, + { + "highlightString": "Run <span class='highlight-string'>Child</span> Job", + "key": "summary" + }, + { + "highlightString": "Run a <span class='highlight-string'>child</span> " + "Job inside a Workflow", + "key": "description" + } + ], + "metrics": { + "owner": "" + }, + "name": "childJob", + "status": "incomplete", + "summary": "Run Child Job", + "type": "operation", + "variables": { + "incoming": { + "task": "", + "variables": { + "child1_body": { + "task": "50c1", + "value": "combinedStrings", + "variable": "" + } + }, + "workflow": "child1" + }, + "outgoing": { + "job_details": 'null' + } + }, + "x": 0.6146153846153846, + "y": 0.40634005763688763 + }, + "87f4": { + "_id": "1f5da682-b377-4739-a60d-31d897c59863", + "app": "MOP", + "deprecated": 'false', + "description": "MOP confirm Task", + "displayName": "MOP", + "groups": [ + "5b8fe4fcb3f8b800134ea5fc" + ], + "iterations": [ + "1f5da682-b377-4739-a60d-31d897c59863" + ], + "job": { + "_id": "e17646fc7a8f4a6a9e691fe4", + "description": "NewTestAnsible", + "index": 0, + "name": "DummyWF", + "task": "87f4" + }, + "location": "Application", + "locked": 'false', + "matched": [ + { + "highlightString": "<span class='highlight-string'>confirm</span>Task", + "key": "name" + }, + { + "highlightString": "MOP <span class='highlight-string'>confirm</span> Task", + "key": "summary" + }, + { + "highlightString": "MOP <span class='highlight-string'>confirm</span> Task", + "key": "description" + } + ], + "metrics": { + "owner": "" + }, + "name": "confirmTask", + "scheduled": 'false', + "status": "incomplete", + "summary": "MOP confirm Task", + "type": "manual", + "variables": { + "error": "", + "incoming": { + "body": "<!value_output!>", + "title": "Run Time Var", + "variables": "$var.f97e.value" + }, + "outgoing": {} + }, + "view": "/mop/task/confirmTask", + "x": 0.6961538461538461, + "y": 0.06772334293948126 + }, + "f97e": { + "_id": "38017b10-5e26-4161-bccb-c2f983dcf1ca", + "app": "WorkFlowEngine", + "deprecated": 'false', + "description": "Create a new Job variable by Job ID and assign it a value.", + "displayName": "WorkFlowEngine", + "groups": [], + "iterations": [ + "38017b10-5e26-4161-bccb-c2f983dcf1ca" + ], + "job": { + "_id": "e17646fc7a8f4a6a9e691fe4", + "description": "NewTestAnsible", + "index": 0, + "name": "DummyWF", + "task": "f97e" + }, + "location": "Application", + "locked": 'false', + "matched": [ + { + "highlightString": "<span class='highlight-string'>new</span>Variable", + "key": "name" + }, + { + "highlightString": "Create a <span class='highlight-string'>new</span> " + "Job variable by Job ID and assign it a value.", + "key": "description" + } + ], + "metrics": { + "owner": "" + }, + "name": "newVariable", + "status": "incomplete", + "summary": "Create a Job Variable", + "type": "operation", + "variables": { + "incoming": { + "name": "run_time", + "value": { + "value_output": "I am RunTime Variable" + } + }, + "outgoing": { + "value": 'null' + } + }, + "x": 0.45615384615384613, + "y": -0.04755043227665706 + }, + "workflow_end": { + "groups": [], + "name": "workflow_end", + "status": "incomplete", + "x": 0.9, + "y": 0.5979827089337176 + }, + "workflow_start": { + "groups": [], + "metrics": { + "finish_state": "success", + "start_time": 1551043499742, + "user": "5b8fe4fcb3f8b800134ea5fd" + }, + "name": "workflow_start", + "status": "complete", + "x": 0.04692307692307692, + "y": 0.6023054755043228 + } + }, + "transitions": { + "10d1": { + "5023": { + "state": "success", + "type": "standard" + } + }, + "5023": { + "50c1": { + "state": "success", + "type": "standard" + } + }, + "50c1": { + "f97e": { + "state": "success", + "type": "standard" + } + }, + "7cd4": { + "workflow_end": { + "state": "success", + "type": "standard" + } + }, + "87f4": { + "7cd4": { + "state": "success", + "type": "standard" + } + }, + "f97e": { + "87f4": { + "state": "success", + "type": "standard" + } + }, + "workflow_end": {}, + "workflow_start": { + "10d1": { + "state": "success", + "type": "standard" + } + } + }, + "type": "automation", + "variables": { + "_id": "e17646fc7a8f4a6a9e691fe4", + "initiator": "admin@pronghorn", + "value": "3333" + }, + "watchers": [ + "5b8fe4fcb3f8b800134ea5fd" + ] + } + result = iap_start_workflow.start_workflow(module) + self.assertEqual(result, return_response) + + +if __name__ == '__main__': + unittest.main() diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_iap_token.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_iap_token.py new file mode 100644 index 000000000..490097907 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_iap_token.py @@ -0,0 +1,51 @@ +""" +iap_token unit tests +""" +# -*- coding: utf-8 -*- + +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# pylint: disable=invalid-name,protected-access,function-redefined,unused-argument +# pylint: disable=unused-import,redundant-unittest-assert + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + + +import unittest + + +class TestClass(unittest.TestCase): + """ + Test cases + """ + def _assert_incident_api(self, module, url, method, headers): + """ + Setup Test + """ + self.assertTrue('http://localhost:4007/login' in url, 'token') + return Response(), {'status': 200} + + def test_incident_url(self): + self.assertTrue(True, True) + + +class Response(object): + """ + Setup Response + """ + def read(self): + return '{"token": "ljhklj%3D"}' diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_banner.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_banner.py new file mode 100644 index 000000000..6fc6eb7e1 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_banner.py @@ -0,0 +1,96 @@ +# Copyright: (c) 2019, Ansible Project +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import icx_banner +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .icx_module import TestICXModule, load_fixture + + +class TestICXBannerModule(TestICXModule): + + module = icx_banner + + def setUp(self): + super(TestICXBannerModule, self).setUp() + self.mock_exec_command = patch('ansible_collections.community.network.plugins.modules.icx_banner.exec_command') + self.exec_command = self.mock_exec_command.start() + + self.mock_load_config = patch('ansible_collections.community.network.plugins.modules.icx_banner.load_config') + self.load_config = self.mock_load_config.start() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.icx_banner.get_config') + self.get_config = self.mock_get_config.start() + + self.set_running_config() + + def tearDown(self): + super(TestICXBannerModule, self).tearDown() + self.mock_exec_command.stop() + self.mock_load_config.stop() + self.mock_get_config.stop() + + def load_fixtures(self, commands=None): + compares = None + + def load_file(*args, **kwargs): + module = args + for arg in args: + if arg.params['check_running_config'] is True: + return load_fixture('icx_banner_show_banner.txt').strip() + else: + return '' + + self.exec_command.return_value = (0, '', None) + self.get_config.side_effect = load_file + self.load_config.return_value = dict(diff=None, session='session') + + def test_icx_banner_create(self): + if not self.ENV_ICX_USE_DIFF: + set_module_args(dict(banner='motd', text='welcome\nnew user')) + commands = ['banner motd $\nwelcome\nnew user\n$'] + self.execute_module(changed=True, commands=commands) + else: + for banner_type in ('motd', 'exec', 'incoming'): + set_module_args(dict(banner=banner_type, text='test\nbanner\nstring')) + commands = ['banner {0} $\ntest\nbanner\nstring\n$'.format(banner_type)] + self.execute_module(changed=True, commands=commands) + + def test_icx_banner_remove(self): + set_module_args(dict(banner='motd', state='absent')) + if not self.ENV_ICX_USE_DIFF: + commands = ['no banner motd'] + self.execute_module(changed=True, commands=commands) + else: + commands = ['no banner motd'] + self.execute_module(changed=True, commands=commands) + + def test_icx_banner_motd_enter_set(self): + set_module_args(dict(banner='motd', enterkey=True)) + + if not self.ENV_ICX_USE_DIFF: + commands = ['banner motd require-enter-key'] + self.execute_module(changed=True, commands=commands) + else: + self.execute_module(changed=False) + + def test_icx_banner_motd_enter_remove(self): + set_module_args(dict(banner='motd', state='absent', enterkey=False)) + if not self.ENV_ICX_USE_DIFF: + commands = ['no banner motd', 'no banner motd require-enter-key'] + self.execute_module(changed=True, commands=commands) + + else: + commands = ['no banner motd', 'no banner motd require-enter-key'] + self.execute_module(changed=True, commands=commands) + + def test_icx_banner_remove_compare(self): + set_module_args(dict(banner='incoming', state='absent', check_running_config='True')) + if self.get_running_config(compare=True): + if not self.ENV_ICX_USE_DIFF: + commands = [] + self.execute_module(changed=False, commands=commands) + else: + commands = [] + self.execute_module() diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_command.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_command.py new file mode 100644 index 000000000..df356a25a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_command.py @@ -0,0 +1,113 @@ +# Copyright: (c) 2019, Ansible Project +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import json +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import icx_command +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .icx_module import TestICXModule, load_fixture + + +class TestICXCommandModule(TestICXModule): + + module = icx_command + + def setUp(self): + super(TestICXCommandModule, self).setUp() + + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.icx_command.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestICXCommandModule, self).tearDown() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + + def load_from_file(*args, **kwargs): + module, commands = args + output = list() + + for item in commands: + try: + if item == 'skip': + continue + obj = json.loads(item['command']) + command = obj['command'] + except ValueError: + command = item['command'] + filename = str(command).replace(' ', '_') + output.append(load_fixture(filename)) + + return output + + self.run_commands.side_effect = load_from_file + + def test_icx_command_simple(self): + set_module_args(dict(commands=['show version'])) + result = self.execute_module() + self.assertEqual(len(result['stdout']), 1) + self.assertTrue(result['stdout'][0].startswith('Copyright (c) 1996-2017 Brocade Communications Systems')) + + def test_icx_command_multiple(self): + set_module_args(dict(commands=['show version', 'show version'])) + result = self.execute_module() + self.assertEqual(len(result['stdout']), 2) + self.assertTrue(result['stdout'][0].startswith('Copyright (c) 1996-2017 Brocade Communications Systems')) + + def test_icx_command_wait_for(self): + wait_for = 'result[0] contains "ICX"' + set_module_args(dict(commands=['show version'], wait_for=wait_for)) + self.execute_module() + + def test_icx_command_wait_for_fails(self): + wait_for = 'result[0] contains "test string"' + set_module_args(dict(commands=['show version'], wait_for=wait_for)) + self.execute_module(failed=True) + # run_commands call count is 1(skip) + 10(current) + self.assertEqual(self.run_commands.call_count, 11) + + def test_icx_command_retries(self): + wait_for = 'result[0] contains "test string"' + set_module_args(dict(commands=['show version'], wait_for=wait_for, retries=2)) + self.execute_module(failed=True) + self.assertEqual(self.run_commands.call_count, 3) + + def test_icx_command_match_any(self): + wait_for = ['result[0] contains "ICX"', + 'result[0] contains "test string"'] + set_module_args(dict(commands=['show version'], wait_for=wait_for, match='any')) + self.execute_module() + + def test_icx_command_match_all(self): + wait_for = ['result[0] contains "ICX"', + 'result[0] contains "Version:10.1.09T225"'] + set_module_args(dict(commands=['show version'], wait_for=wait_for, match='all')) + self.execute_module() + + def test_icx_command_match_all_failure(self): + wait_for = ['result[0] contains "ICX"', + 'result[0] contains "test string"'] + commands = ['show version', 'show version'] + set_module_args(dict(commands=commands, wait_for=wait_for, match='all')) + self.execute_module(failed=True) + + def test_icx_command_configure_check_warning(self): + commands = ['configure terminal'] + set_module_args({ + 'commands': commands, + '_ansible_check_mode': True, + }) + result = self.execute_module() + self.assertEqual( + result['warnings'], + ['Only show commands are supported when using check mode, not executing configure terminal'], + ) + + def test_icx_command_configure_not_warning(self): + commands = ['configure terminal'] + set_module_args(dict(commands=commands)) + result = self.execute_module() + self.assertEqual(result['warnings'], []) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_config.py.disabled b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_config.py.disabled new file mode 100644 index 000000000..a7b394f91 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_config.py.disabled @@ -0,0 +1,219 @@ +# Copyright: (c) 2019, Ansible Project +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch, MagicMock +from ansible_collections.community.network.plugins.modules.network.icx import icx_config +from ansible_collections.community.network.plugins.cliconf.icx import Cliconf +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .icx_module import TestICXModule, load_fixture + + +class TestICXConfigModule(TestICXModule): + + module = icx_config + + def setUp(self): + super(TestICXConfigModule, self).setUp() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.network.icx.icx_config.get_config') + self.get_config = self.mock_get_config.start() + + self.mock_get_connection = patch('ansible_collections.community.network.plugins.modules.network.icx.icx_config.get_connection') + self.get_connection = self.mock_get_connection.start() + + self.conn = self.get_connection() + self.conn.edit_config = MagicMock() + + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.network.icx.icx_config.run_commands') + self.run_commands = self.mock_run_commands.start() + + self.cliconf_obj = Cliconf(MagicMock()) + self.running_config = load_fixture('icx_config_config.cfg') + + def tearDown(self): + super(TestICXConfigModule, self).tearDown() + self.mock_get_config.stop() + self.mock_run_commands.stop() + self.mock_get_connection.stop() + + def load_fixtures(self, commands=None): + config_file = 'icx_config_config.cfg' + self.get_config.return_value = load_fixture(config_file) + self.get_connection.edit_config.return_value = None + + def test_icx_config_unchanged(self): + src = load_fixture('icx_config_config.cfg') + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff(src, src)) + set_module_args(dict(src=src)) + self.execute_module(changed=False) + + def test_icx_config_src(self): + src = load_fixture('icx_config_src.cfg') + set_module_args(dict(src=src)) + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff(src, self.running_config)) + commands = ['hostname foo', 'interface ethernet 1/1/4', + 'disable'] + self.execute_module(changed=True, commands=commands) + + def test_icx_config_backup(self): + set_module_args(dict(backup=True)) + result = self.execute_module() + self.assertIn('__backup__', result) + + def test_icx_config_save_always(self): + self.run_commands.return_value = "Hostname foo" + set_module_args(dict(save_when='always')) + self.execute_module(changed=True) + self.assertEqual(self.run_commands.call_count, 2) + self.assertEqual(self.get_config.call_count, 0) + self.assertEqual(self.conn.edit_config.call_count, 0) + args = self.run_commands.call_args[0][1] + self.assertIn('write memory', args) + + def test_icx_config_save_changed_false(self): + set_module_args(dict(save_when='changed')) + self.execute_module(changed=False) + self.assertEqual(self.run_commands.call_count, 1) + self.assertEqual(self.get_config.call_count, 0) + self.assertEqual(self.conn.edit_config.call_count, 0) + + def test_icx_config_lines_wo_parents(self): + lines = ['hostname foo'] + set_module_args(dict(lines=lines)) + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff('\n'.join(lines), self.running_config)) + commands = ['hostname foo'] + self.execute_module(changed=True, commands=commands) + + def test_icx_config_lines_w_parents(self): + lines = ['disable'] + parents = ['interface ethernet 1/1/4'] + set_module_args(dict(lines=lines, parents=parents)) + module = MagicMock() + module.params = {'lines': lines, 'parents': parents, 'src': None} + candidate_config = icx_config.get_candidate_config(module) + + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff(candidate_config, self.running_config)) + + commands = ['interface ethernet 1/1/4', 'disable'] + self.execute_module(changed=True, commands=commands) + + def test_icx_config_before_after_no_change(self): + lines = ['hostname router'] + set_module_args(dict(lines=lines, + before=['test1', 'test2'], + after=['test3', 'test4'])) + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff('\n'.join(lines), self.running_config)) + self.execute_module() + + def test_icx_config_config(self): + config = 'hostname localhost' + lines = ['hostname router'] + set_module_args(dict(lines=lines, config=config)) + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff('\n'.join(lines), config)) + commands = ['hostname router'] + self.execute_module(changed=True, commands=commands) + + def test_icx_config_replace_block(self): + lines = ['port-name test string', 'test string'] + parents = ['interface ethernet 1/1/4'] + set_module_args(dict(lines=lines, replace='block', parents=parents)) + + module = MagicMock() + module.params = {'lines': lines, 'parents': parents, 'src': None} + candidate_config = icx_config.get_candidate_config(module) + + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff(candidate_config, self.running_config, diff_replace='block', path=parents)) + + commands = parents + lines + self.execute_module(changed=True, commands=commands) + + def test_icx_config_match_none(self): + lines = ['hostname router'] + set_module_args(dict(lines=lines, match='none')) + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff('\n'.join(lines), self.running_config, diff_match='none')) + self.execute_module(changed=True, commands=lines) + + def test_icx_config_match_none_block(self): + lines = ['speed-duplex 10-full', 'port-name test-interface-4'] + parents = ['interface ethernet 1/1/4'] + set_module_args(dict(lines=lines, parents=parents, match='none')) + + module = MagicMock() + module.params = {'lines': lines, 'parents': parents, 'src': None} + candidate_config = icx_config.get_candidate_config(module) + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff(candidate_config, self.running_config, diff_match='none', path=parents)) + + commands = parents + lines + self.execute_module(changed=True, commands=commands, sort=False) + + def test_icx_config_match_strict(self): + lines = ['port-name test-interface-4', 'speed-duplex 10-full', + 'disable'] + parents = ['interface ethernet 1/1/4'] + set_module_args(dict(lines=lines, parents=parents, match='strict')) + + module = MagicMock() + module.params = {'lines': lines, 'parents': parents, 'src': None} + candidate_config = icx_config.get_candidate_config(module) + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff(candidate_config, self.running_config, diff_match='strict', path=parents)) + + commands = parents + ['disable'] + self.execute_module(changed=True, commands=commands, sort=False) + + def test_icx_config_match_exact(self): + lines = ['speed-duplex 10-full', 'port-name test-interface-4', + 'disable'] + parents = ['interface ethernet 1/1/4'] + set_module_args(dict(lines=lines, parents=parents, match='exact')) + + module = MagicMock() + module.params = {'lines': lines, 'parents': parents, 'src': None} + candidate_config = icx_config.get_candidate_config(module) + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff(candidate_config, self.running_config, diff_match='exact', path=parents)) + + commands = parents + lines + self.execute_module(changed=True, commands=commands, sort=False) + + def test_icx_config_src_and_lines_fails(self): + args = dict(src='foo', lines='foo') + set_module_args(args) + result = self.execute_module(failed=True) + + def test_icx_config_src_and_parents_fails(self): + args = dict(src='foo', parents='foo') + set_module_args(args) + result = self.execute_module(failed=True) + + def test_icx_config_match_exact_requires_lines(self): + args = dict(match='exact') + set_module_args(args) + result = self.execute_module(failed=True) + + def test_icx_config_match_strict_requires_lines(self): + args = dict(match='strict') + set_module_args(args) + result = self.execute_module(failed=True) + + def test_icx_config_replace_block_requires_lines(self): + args = dict(replace='block') + set_module_args(args) + result = self.execute_module(failed=True) + + def test_icx_config_replace_config_requires_src(self): + args = dict(replace='config') + set_module_args(args) + result = self.execute_module(failed=True) + + def test_icx_config_save_changed_true(self): + src = load_fixture('icx_config_src.cfg') + set_module_args(dict(src=src, save_when='changed')) + commands = ['hostname foo', 'interface ethernet 1/1/4', 'disable'] + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff(src, self.running_config)) + self.execute_module(changed=True, commands=commands) + self.assertEqual(self.run_commands.call_count, 2) + self.assertEqual(self.get_config.call_count, 1) + self.assertEqual(self.conn.edit_config.call_count, 1) + args = self.run_commands.call_args[0][1] + self.assertIn('write memory', args) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_copy.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_copy.py new file mode 100644 index 000000000..55c9c7068 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_copy.py @@ -0,0 +1,203 @@ +# Copyright: (c) 2019, Ansible Project +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import icx_copy +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .icx_module import TestICXModule, load_fixture + + +class TestICXSCPModule(TestICXModule): + + module = icx_copy + + def setUp(self): + super(TestICXSCPModule, self).setUp() + self.mock_exec_scp = patch('ansible_collections.community.network.plugins.modules.icx_copy.exec_scp') + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.icx_copy.run_commands') + self.exec_command = self.mock_exec_scp.start() + self.run_commands = self.mock_run_commands.start() + self.mock_exec_command = patch('ansible_collections.community.network.plugins.modules.icx_copy.exec_command') + self.exec_commands = self.mock_exec_command.start() + + def tearDown(self): + super(TestICXSCPModule, self).tearDown() + self.mock_exec_scp.stop() + self.mock_run_commands.stop() + self.mock_exec_command.stop() + + def load_fixtures(self, commands=None): + self.exec_commands.return_value = (0, load_fixture('icx_copy.txt').strip(), None) + # self.exec_command.return_value = (0, load_fixture('icx_banner_show_banner.txt').strip(), None) + if (commands is not None): + fixtureName = commands[0].replace(" ", "_") + ".txt" + # print("loading fixture: ",load_fixture(fixtureName).strip()) + self.mock_exec_scp.return_value = load_fixture("icx_copy.txt").strip() + self.mock_run_commands.return_value = load_fixture("icx_copy.txt").strip() + else: + self.exec_command.return_value = "" + + def test_icx_scp_upload_running(self): + set_module_args( + dict( + upload='running-config', + protocol='scp', + remote_server='172.16.10.49', + remote_filename='running.conf', + remote_user='alethea', + remote_pass='alethea123')) + commands = ['copy running-config scp 172.16.10.49 running.conf'] + self.execute_module(commands=commands) + + def test_icx_scp_download_running(self): + set_module_args( + dict( + download='running-config', + protocol='scp', + remote_server='172.16.10.49', + remote_filename='running.conf', + remote_user='alethea', + remote_pass='alethea123')) + commands = ['copy scp running-config 172.16.10.49 running.conf'] + self.execute_module(commands=commands, changed=True) + + def test_icx_scp_upload_startup(self): + set_module_args( + dict( + upload='startup-config', + protocol='scp', + remote_server='172.16.10.49', + remote_filename='running.conf', + remote_user='alethea', + remote_pass='alethea123')) + commands = ['copy startup-config scp 172.16.10.49 running.conf'] + self.execute_module(commands=commands, changed=False) + + def test_icx_scp_download_startup(self): + set_module_args( + dict( + download='startup-config', + protocol='scp', + remote_server='172.16.10.49', + remote_filename='running.conf', + remote_user='alethea', + remote_pass='alethea123')) + commands = ['copy scp startup-config 172.16.10.49 running.conf'] + self.execute_module(commands=commands, changed=True) + + def test_icx_scp_upload_primary(self): + set_module_args( + dict( + upload='flash_primary', + protocol='scp', + remote_server='172.16.10.49', + remote_filename='SPS08080b.bin', + remote_user='alethea', + remote_pass='alethea123')) + commands = ['copy flash scp 172.16.10.49 SPS08080b.bin primary'] + self.execute_module(commands=commands, changed=False) + + def test_icx_scp_download_primary(self): + set_module_args( + dict( + download='flash_primary', + protocol='scp', + remote_server='172.16.10.49', + remote_filename='SPS08080b.bin', + remote_user='alethea', + remote_pass='alethea123')) + commands = ['copy scp flash 172.16.10.49 SPS08080b.bin primary'] + self.execute_module(commands=commands, changed=True) + + # HTTPS tests + + def test_icx_https_upload_running(self): + set_module_args( + dict( + upload='running-config', + protocol='https', + remote_server='fileserver.alethea.in', + remote_filename='filestorage/test/upload_running')) + commands = ['copy running-config https fileserver.alethea.in filestorage/test/upload_running'] + self.execute_module(commands=commands) + + def test_icx_https_download_running(self): + set_module_args( + dict( + download='running-config', + protocol='https', + remote_server='fileserver.alethea.in', + remote_filename='filestorage/test/running.conf')) + commands = ['copy https running-config fileserver.alethea.in filestorage/test/running.conf'] + self.execute_module(failed=True) + + def test_icx_https_upload_startup(self): + set_module_args( + dict( + upload='startup-config', + protocol='https', + remote_server='fileserver.alethea.in', + remote_filename='filestorage/test/upload_startup')) + commands = ['copy startup-config https fileserver.alethea.in filestorage/test/upload_startup'] + self.execute_module(commands=commands) + + def test_icx_https_download_startup(self): + set_module_args( + dict( + download='startup-config', + protocol='https', + remote_server='fileserver.alethea.in', + remote_filename='filestorage/test/startup.conf')) + commands = ['copy https startup-config fileserver.alethea.in filestorage/test/startup.conf'] + self.execute_module(commands=commands, changed=True) + + def test_icx_https_upload_primary(self): + set_module_args( + dict( + upload='flash_primary', + protocol='https', + remote_server='fileserver.alethea.in', + remote_filename='filestorage/test/upload_primary')) + commands = ['copy startup-config https fileserver.alethea.in filestorage/test/upload_primary'] + self.execute_module(failed=True) + + def test_icx_https_download_primary(self): + set_module_args(dict(download='flash_primary', protocol='https', remote_server='fileserver.alethea.in', remote_filename='filestorage/test/primary.bin')) + commands = ['copy https flash fileserver.alethea.in filestorage/test/primary.bin primary'] + self.execute_module(commands=commands, changed=True) + + def test_icx_https_upload_secondary(self): + set_module_args( + dict( + upload='flash_secondary', + protocol='https', + remote_server='fileserver.alethea.in', + remote_filename='filestorage/test/upload_secondary')) + commands = ['copy flash https fileserver.alethea.in filestorage/test/upload_secondary secondary'] + self.execute_module(failed=True) + + def test_icx_https_download_secondary(self): + set_module_args( + dict( + download='flash_secondary', + protocol='https', + remote_server='fileserver.alethea.in', + remote_filename='filestorage/test/secondary.bin')) + commands = ['copy https flash fileserver.alethea.in filestorage/test/secondary.bin secondary'] + self.execute_module(commands=commands, changed=True) + + def test_icx_https_upload_download(self): + set_module_args( + dict( + upload='flash_secondary', + download='flash_secondary', + protocol='https', + remote_server='fileserver.alethea.in', + remote_filename='filestorage/test/secondary.bin')) + self.execute_module(failed=True) + + def test_icx_scp_no_user(self): + set_module_args(dict(upload='running-config', protocol='scp', remote_server='172.16.10.49', remote_filename='running.conf')) + self.execute_module(failed=True) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_facts.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_facts.py new file mode 100644 index 000000000..11cfebc8f --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_facts.py @@ -0,0 +1,137 @@ +# Copyright: (c) 2019, Ansible Project +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import icx_facts +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .icx_module import TestICXModule, load_fixture + + +class TestICXFactsModule(TestICXModule): + + module = icx_facts + + def setUp(self): + super(TestICXFactsModule, self).setUp() + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.icx_facts.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestICXFactsModule, self).tearDown() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + def load_from_file(*args, **kwargs): + module = args + commands = kwargs['commands'] + if (commands): + resp = list() + for cmd in commands: + fixtureName = cmd.replace(" ", "_") + newFixtureName = fixtureName.replace("_|_", "_") + output = load_fixture(newFixtureName).strip() + if (output): + resp.append(output) + return resp + self.run_commands.side_effect = load_from_file + + def test_icx_facts_default(self): + set_module_args(dict(gather_subset=["default"])) + result = self.execute_module() + self.assertEqual( + result['ansible_facts']['ansible_net_model'], 'Stackable ICX7150-48-POE' + ) + self.assertEqual( + result['ansible_facts']['ansible_net_serialnum'], 'FEC3220N00C' + ) + self.assertEqual( + result['ansible_facts']['ansible_net_version'], '08.0.60T211' + ) + self.assertEqual( + result['ansible_facts']['ansible_net_hostname'], 'ruchusRouter148' + ) + self.assertEqual( + result['ansible_facts']['ansible_net_image'], 'SPS08060.bin' + ) + self.assertEqual( + result['ansible_facts']['ansible_net_stacked_models'], ['ICX7150-48P-4X1G', 'ICX7150-2X1GC', 'ICX7150-4X10GF'] + ) + + def test_icx_facts_interfaces(self): + set_module_args(dict(gather_subset=["interfaces"])) + result = self.execute_module() + self.assertEqual( + result['ansible_facts']['ansible_net_interfaces']["GigabitEthernet1/1/1"]["macaddress"], "609c.9fe7.d600" + ) + self.assertEqual( + result['ansible_facts']['ansible_net_interfaces']["GigabitEthernet1/1/1"]["ipv4"]["address"], "192.168.1.1" + ) + self.assertEqual( + result['ansible_facts']['ansible_net_interfaces']["GigabitEthernet1/1/1"]["ipv4"]["subnet"], "24" + ) + + def test_icx_facts_hardware(self): + set_module_args(dict(gather_subset=["hardware"])) + result = self.execute_module() + self.assertEqual( + result['ansible_facts']['ansible_net_filesystems'], "flash" + ) + self.assertEqual( + result['ansible_facts']['ansible_net_filesystems_info'], {'flash': {'Stack unit 1': {'spacetotal': '2GiB', 'spacefree': '1287792Kb'}}} + ) + self.assertEqual( + result['ansible_facts']['ansible_net_memfree_mb'], 367152 + ) + self.assertEqual( + result['ansible_facts']['ansible_net_memtotal_mb'], 932320 + ) + + def test_icx_facts_not_hardware(self): + set_module_args(dict(gather_subset=["!hardware"])) + result = self.execute_module() + print(result) + + def test_icx_facts_all(self): + set_module_args(dict(gather_subset=["all"])) + result = self.execute_module() + self.assertEqual( + result['ansible_facts']['ansible_net_filesystems'], "flash" + ) + self.assertEqual( + result['ansible_facts']['ansible_net_filesystems_info'], {'flash': {'Stack unit 1': {'spacetotal': '2GiB', 'spacefree': '1287792Kb'}}} + ) + self.assertEqual( + result['ansible_facts']['ansible_net_memfree_mb'], 367152 + ) + self.assertEqual( + result['ansible_facts']['ansible_net_memtotal_mb'], 932320 + ) + self.assertEqual( + result['ansible_facts']['ansible_net_interfaces']["GigabitEthernet1/1/1"]["macaddress"], "609c.9fe7.d600" + ) + self.assertEqual( + result['ansible_facts']['ansible_net_interfaces']["GigabitEthernet1/1/1"]["ipv4"]["address"], "192.168.1.1" + ) + self.assertEqual( + result['ansible_facts']['ansible_net_interfaces']["GigabitEthernet1/1/1"]["ipv4"]["subnet"], "24" + ) + self.assertEqual( + result['ansible_facts']['ansible_net_model'], 'Stackable ICX7150-48-POE' + ) + self.assertEqual( + result['ansible_facts']['ansible_net_serialnum'], 'FEC3220N00C' + ) + self.assertEqual( + result['ansible_facts']['ansible_net_version'], '08.0.60T211' + ) + self.assertEqual( + result['ansible_facts']['ansible_net_hostname'], 'ruchusRouter148' + ) + self.assertEqual( + result['ansible_facts']['ansible_net_image'], 'SPS08060.bin' + ) + self.assertEqual( + result['ansible_facts']['ansible_net_stacked_models'], ['ICX7150-48P-4X1G', 'ICX7150-2X1GC', 'ICX7150-4X10GF'] + ) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_interface.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_interface.py new file mode 100644 index 000000000..0afe61c8e --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_interface.py @@ -0,0 +1,208 @@ +# Copyright: (c) 2019, Ansible Project +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import icx_interface +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .icx_module import TestICXModule, load_fixture + + +class TestICXInterfaceModule(TestICXModule): + + module = icx_interface + + def setUp(self): + super(TestICXInterfaceModule, self).setUp() + self.mock_exec_command = patch('ansible_collections.community.network.plugins.modules.icx_interface.exec_command') + self.exec_command = self.mock_exec_command.start() + + self.mock_load_config = patch('ansible_collections.community.network.plugins.modules.icx_interface.load_config') + self.load_config = self.mock_load_config.start() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.icx_interface.get_config') + self.get_config = self.mock_get_config.start() + self.set_running_config() + + def tearDown(self): + super(TestICXInterfaceModule, self).tearDown() + self.mock_exec_command.stop() + self.mock_load_config.stop() + self.mock_get_config.stop() + + def load_fixtures(self, commands=None): + compares = None + + def load_file(*args, **kwargs): + module, commands, val = args + for arg in args: + if arg.params['check_running_config'] is True: + self.exec_command.return_value = (0, load_fixture('icx_interface_config.cfg').strip(), None) + return load_fixture('icx_interface_config.cfg').strip() + else: + self.exec_command.return_value = 0, '', None + return '' + + self.get_config.side_effect = load_file + self.load_config.return_value = None + + def test_icx_interface_set_config(self): + power = dict(dict(enabled='True')) + set_module_args(dict(name='ethernet 1/1/1', description='welcome port', speed='1000-full', power=power)) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + expected_commands = [ + 'interface ethernet 1/1/1', + 'speed-duplex 1000-full', + 'port-name welcome port', + 'inline power', + 'enable' + ] + self.assertEqual(result['commands'], expected_commands) + else: + result = self.execute_module(changed=True) + expected_commands = [ + 'interface ethernet 1/1/1', + 'speed-duplex 1000-full', + 'port-name welcome port', + 'inline power' + ] + self.assertEqual(result['commands'], expected_commands) + + def test_icx_interface_remove(self): + set_module_args(dict(name='ethernet 1/1/1', state='absent')) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + self.assertEqual(result['commands'], ['no interface ethernet 1/1/1']) + else: + result = self.execute_module(changed=True) + self.assertEqual(result['commands'], ['no interface ethernet 1/1/1']) + + def test_icx_interface_disable(self): + set_module_args(dict(name='ethernet 1/1/1', enabled=False)) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + self.assertEqual(result['commands'], ['interface ethernet 1/1/1', 'disable']) + else: + result = self.execute_module(changed=True) + self.assertEqual(result['commands'], ['interface ethernet 1/1/1', 'disable']) + + def test_icx_interface_set_power(self): + power = dict(by_class='2') + set_module_args(dict(name='ethernet 1/1/2', power=dict(power))) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + expected_commands = [ + 'interface ethernet 1/1/2', + 'inline power power-by-class 2', + 'enable' + ] + self.assertEqual(result['commands'], expected_commands) + else: + result = self.execute_module(changed=True) + expected_commands = [ + 'interface ethernet 1/1/2', + 'inline power power-by-class 2' + ] + self.assertEqual(result['commands'], expected_commands) + + def test_icx_interface_aggregate(self): + power = dict(dict(enabled='True')) + aggregate = [ + dict(name='ethernet 1/1/9', description='welcome port9', speed='1000-full', power=power), + dict(name='ethernet 1/1/10', description='welcome port10', speed='1000-full', power=power) + ] + set_module_args(dict(aggregate=aggregate)) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + expected_commands = [ + 'interface ethernet 1/1/9', + 'speed-duplex 1000-full', + 'port-name welcome port9', + 'inline power', + 'enable', + 'interface ethernet 1/1/10', + 'speed-duplex 1000-full', + 'port-name welcome port10', + 'inline power', + 'enable' + ] + self.assertEqual(result['commands'], expected_commands) + else: + result = self.execute_module(changed=True) + expected_commands = [ + 'interface ethernet 1/1/9', + 'speed-duplex 1000-full', + 'port-name welcome port9', + 'inline power', + 'enable', + 'interface ethernet 1/1/10', + 'speed-duplex 1000-full', + 'port-name welcome port10', + 'inline power', + 'enable' + ] + self.assertEqual(result['commands'], expected_commands) + + def test_icx_interface_lag_config(self): + set_module_args(dict(name='lag 11', description='lag ports of id 11', speed='auto')) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + expected_commands = [ + 'interface lag 11', + 'speed-duplex auto', + 'port-name lag ports of id 11', + 'enable' + ] + self.assertEqual(result['commands'], expected_commands) + else: + result = self.execute_module(changed=True) + expected_commands = [ + 'interface lag 11', + 'speed-duplex auto', + 'port-name lag ports of id 11' + ] + self.assertEqual(result['commands'], expected_commands) + + def test_icx_interface_loopback_config(self): + set_module_args(dict(name='loopback 10', description='loopback ports', enabled=True)) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + expected_commands = [ + 'interface loopback 10', + 'port-name loopback ports', + 'enable' + ] + self.assertEqual(result['commands'], expected_commands) + else: + result = self.execute_module(changed=True) + expected_commands = [ + 'interface loopback 10', + 'port-name loopback ports', + 'enable' + ] + self.assertEqual(result['commands'], expected_commands) + + def test_icx_interface_state_up_cndt(self): + set_module_args(dict(name='ethernet 1/1/1', state='up', tx_rate='ge(0)')) + if not self.ENV_ICX_USE_DIFF: + self.assertTrue(self.execute_module(failed=True)) + else: + self.assertTrue(self.execute_module(failed=False)) + + def test_icx_interface_lldp_neighbors_cndt(self): + set_module_args(dict(name='ethernet 1/1/48', neighbors=[dict(port='GigabitEthernet1/1/48', host='ICX7150-48 Router')])) + if not self.ENV_ICX_USE_DIFF: + self.assertTrue(self.execute_module(changed=False, failed=True)) + else: + self.assertTrue(self.execute_module(changed=False, failed=False)) + + def test_icx_interface_disable_compare(self): + set_module_args(dict(name='ethernet 1/1/1', enabled=True, check_running_config='True')) + if self.get_running_config(compare=True): + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=False) + self.assertEqual(result['commands'], []) + else: + result = self.execute_module(changed=False) + self.assertEqual(result['commands'], []) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_l3_interface.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_l3_interface.py new file mode 100644 index 000000000..4be4bb29f --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_l3_interface.py @@ -0,0 +1,121 @@ +# Copyright: (c) 2019, Ansible Project +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import icx_l3_interface +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .icx_module import TestICXModule, load_fixture + + +class TestICXFactsModule(TestICXModule): + + module = icx_l3_interface + + def setUp(self): + super(TestICXFactsModule, self).setUp() + self.mock_exec_command = patch('ansible_collections.community.network.plugins.modules.icx_l3_interface.exec_command') + self.exec_command = self.mock_exec_command.start() + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.icx_l3_interface.get_config') + self.get_config = self.mock_get_config.start() + self.mock_load_config = patch('ansible_collections.community.network.plugins.modules.icx_l3_interface.load_config') + self.load_config = self.mock_load_config.start() + self.set_running_config() + + def tearDown(self): + super(TestICXFactsModule, self).tearDown() + self.mock_get_config.stop() + self.mock_load_config.stop() + self.mock_exec_command.stop() + + def load_fixtures(self, commands=None): + compares = None + + def load_from_file(*args, **kwargs): + module = args + for arg in args: + if arg.params['check_running_config'] is True: + return load_fixture('show_running-config_begin_interface').strip() + else: + return '' + + def write_config(*args, **kwargs): + return "" + + self.get_config.side_effect = load_from_file + self.load_config.side_effect = write_config + + def test_icx_l3_interface_set_ipv4(self): + set_module_args(dict(name="ethernet 1/1/1", ipv4="192.168.1.1/24")) + if not self.ENV_ICX_USE_DIFF: + commands = [ + "interface ethernet 1/1/1", + "ip address 192.168.1.1 255.255.255.0", + "exit" + ] + self.execute_module(commands=commands, changed=True) + else: + commands = [ + "interface ethernet 1/1/1", + "ip address 192.168.1.1 255.255.255.0", + "exit" + ] + self.execute_module(commands=commands, changed=True) + + def test_icx_l3_interface_set_ipv6(self): + set_module_args(dict(name="ethernet 1/1/1", ipv6="2001:db8:85a3:0:0:0:0:1/64")) + if not self.ENV_ICX_USE_DIFF: + commands = [ + "interface ethernet 1/1/1", + "ipv6 address 2001:db8:85a3:0:0:0:0:1/64", + "exit" + ] + self.execute_module(commands=commands, changed=True) + else: + commands = [ + "interface ethernet 1/1/1", + "ipv6 address 2001:db8:85a3:0:0:0:0:1/64", + "exit" + ] + self.execute_module(commands=commands, changed=True) + + def test_icx_l3_interface_remove_ipv6(self): + set_module_args(dict(name="ethernet 1/1/1", ipv6="2001:db8:85a3:0:0:0:0:0/64", ipv4="192.168.1.1/24", state="absent")) + if not self.ENV_ICX_USE_DIFF: + commands = [ + "interface ethernet 1/1/1", + "no ip address 192.168.1.1 255.255.255.0", + "no ipv6 address 2001:db8:85a3:0:0:0:0:0/64", + "exit" + ] + self.execute_module(commands=commands, changed=True) + else: + commands = [ + "interface ethernet 1/1/1", + 'no ip address 192.168.1.1 255.255.255.0', + "no ipv6 address 2001:db8:85a3:0:0:0:0:0/64", + "exit" + ] + self.execute_module(commands=commands, changed=True) + + def test_icx_l3_interface_set_aggregate(self): + set_module_args(dict(aggregate=[ + dict(name="ve 1", ipv6="2001:db8:85a3:0:0:0:0:0/64", ipv4="192.168.1.1/24") + ])) + if not self.ENV_ICX_USE_DIFF: + commands = [ + "interface ve 1", + "ipv6 address 2001:db8:85a3:0:0:0:0:0/64", + "ip address 192.168.1.1 255.255.255.0", + "exit" + ] + self.execute_module(commands=commands, changed=True) + else: + commands = [ + "interface ve 1", + "ipv6 address 2001:db8:85a3:0:0:0:0:0/64", + "ip address 192.168.1.1 255.255.255.0", + "exit" + ] + self.execute_module(commands=commands, changed=True) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_linkagg.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_linkagg.py new file mode 100644 index 000000000..e324d921a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_linkagg.py @@ -0,0 +1,123 @@ +# Copyright: (c) 2019, Ansible Project +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import icx_linkagg +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .icx_module import TestICXModule, load_fixture + + +class TestICXLinkaggModule(TestICXModule): + + module = icx_linkagg + + def setUp(self): + super(TestICXLinkaggModule, self).setUp() + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.icx_linkagg.get_config') + self.get_config = self.mock_get_config.start() + self.mock_load_config = patch('ansible_collections.community.network.plugins.modules.icx_linkagg.load_config') + self.load_config = self.mock_load_config.start() + self.mock_exec_command = patch('ansible_collections.community.network.plugins.modules.icx_linkagg.exec_command') + self.exec_command = self.mock_exec_command.start() + self.set_running_config() + + def tearDown(self): + super(TestICXLinkaggModule, self).tearDown() + self.mock_get_config.stop() + self.mock_load_config.stop() + self.mock_exec_command.stop() + + def load_fixtures(self, commands=None): + compares = None + + def load_from_file(*args, **kwargs): + module = args + for arg in args: + if arg.params['check_running_config'] is True: + return load_fixture('lag_running_config.txt').strip() + else: + return '' + + self.get_config.side_effect = load_from_file + self.load_config.return_value = None + + def test_icx_linkage_create_new_LAG(self): + set_module_args(dict(group=10, name="LAG3", mode='static', members=['ethernet 1/1/4 to ethernet 1/1/7'])) + if not self.ENV_ICX_USE_DIFF: + commands = ['lag LAG3 static id 10', 'ports ethernet 1/1/4 to ethernet 1/1/7', 'exit'] + self.execute_module(commands=commands, changed=True) + else: + commands = ['lag LAG3 static id 10', 'ports ethernet 1/1/4 to ethernet 1/1/7', 'exit'] + self.execute_module(commands=commands, changed=True) + + def test_icx_linkage_modify_LAG(self): + set_module_args(dict(group=100, name="LAG1", mode='dynamic', members=['ethernet 1/1/4 to 1/1/7'])) + if not self.ENV_ICX_USE_DIFF: + commands = [ + 'lag LAG1 dynamic id 100', + 'ports ethernet 1/1/4 to 1/1/7', + 'exit' + ] + self.execute_module(commands=commands, changed=True) + else: + commands = [ + 'lag LAG1 dynamic id 100', + 'no ports ethernet 1/1/3', + 'no ports ethernet 1/1/8', + 'ports ethernet 1/1/4', + 'exit' + ] + self.execute_module(commands=commands, changed=True) + + def test_icx_linkage_modify_LAG_compare(self): + set_module_args(dict(group=100, name="LAG1", mode='dynamic', members=['ethernet 1/1/4 to 1/1/7'], check_running_config=True)) + if self.get_running_config(compare=True): + if not self.ENV_ICX_USE_DIFF: + commands = [ + 'lag LAG1 dynamic id 100', + 'no ports ethernet 1/1/3', + 'no ports ethernet 1/1/8', + 'ports ethernet 1/1/4', + 'exit' + ] + self.execute_module(commands=commands, changed=True) + else: + commands = [ + 'lag LAG1 dynamic id 100', + 'no ports ethernet 1/1/3', + 'no ports ethernet 1/1/8', + 'ports ethernet 1/1/4', + 'exit' + ] + self.execute_module(commands=commands, changed=True) + + def test_icx_linkage_purge_LAG(self): + set_module_args(dict(aggregate=[dict(group=100, name="LAG1", mode='dynamic')], purge=True)) + if not self.ENV_ICX_USE_DIFF: + commands = [ + 'lag LAG1 dynamic id 100', + 'exit' + ] + self.execute_module(commands=commands, changed=True) + else: + commands = [ + 'lag LAG1 dynamic id 100', + 'exit', + 'no lag LAG2 dynamic id 200' + ] + self.execute_module(commands=commands, changed=True) + + def test_icx_linkage_remove_LAG(self): + set_module_args(dict(group=100, name="LAG1", mode='dynamic', members=['ethernet 1/1/4 to 1/1/7'], state='absent')) + if not self.ENV_ICX_USE_DIFF: + commands = [ + 'no lag LAG1 dynamic id 100' + ] + self.execute_module(commands=commands, changed=True) + else: + commands = [ + 'no lag LAG1 dynamic id 100' + ] + self.execute_module(commands=commands, changed=True) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_lldp.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_lldp.py new file mode 100644 index 000000000..d5079667e --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_lldp.py @@ -0,0 +1,99 @@ +# Copyright: (c) 2019, Ansible Project +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import icx_lldp +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .icx_module import TestICXModule, load_fixture + + +class TestICXlldpModule(TestICXModule): + + module = icx_lldp + + def setUp(self): + super(TestICXlldpModule, self).setUp() + + self.mock_load_config = patch('ansible_collections.community.network.plugins.modules.icx_lldp.load_config') + self.load_config = self.mock_load_config.start() + + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.icx_lldp.run_commands') + self.run_commands = self.mock_run_commands.start() + + self.set_running_config() + + def tearDown(self): + super(TestICXlldpModule, self).tearDown() + self.mock_load_config.stop() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + def load_from_file(*args, **kwargs): + compares = None + module, commands = args + state = module.params['state'] + if module.params['check_running_config'] is True: + return load_fixture('icx_lldp_%s' % state).strip() + else: + return '' + + self.run_commands.side_effect = load_from_file + + def test_icx_lldp_enable_state_None(self): + interfaces_spec = [dict(name='ethernet 1/1/9', state='present')] + set_module_args(dict(interfaces=interfaces_spec)) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(failed=True) + else: + result = self.execute_module(failed=True) + + def test_icx_lldp_enable_state_absent_compare(self): + interfaces_spec = [dict(name='ethernet 1/1/9', state='present')] + set_module_args(dict(interfaces=interfaces_spec, state='absent', check_running_config=True)) + if self.get_running_config(compare=True): + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + self.assertEqual(result['commands'], ['no lldp run']) + else: + result = self.execute_module(changed=True) + self.assertEqual(result['commands'], ['no lldp run']) + + def test_icx_lldp_enable_state_present(self): + interfaces_spec = [dict(name='ethernet 1/1/9', state='present')] + set_module_args(dict(interfaces=interfaces_spec, state='present')) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + self.assertEqual(result['commands'], ['lldp enable ports ethernet 1/1/9']) + + else: + result = self.execute_module(changed=True) + self.assertEqual(result['commands'], ['lldp enable ports ethernet 1/1/9']) + + def test_icx_lldp_multi_enable_state_present(self): + interfaces_spec = [dict(name=['ethernet 1/1/9', 'ethernet 1/1/1 to 1/1/6'], state='present')] + set_module_args(dict(interfaces=interfaces_spec, state='present')) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + self.assertEqual(result['commands'], ['lldp enable ports ethernet 1/1/9', 'lldp enable ports ethernet 1/1/1 to 1/1/6']) + else: + result = self.execute_module(changed=True) + self.assertEqual(result['commands'], ['lldp enable ports ethernet 1/1/9', 'lldp enable ports ethernet 1/1/1 to 1/1/6']) + + def test_icx_lldp_multi_disable_state_present(self): + interfaces_spec = [dict(name=['ethernet 1/1/9', 'ethernet 1/1/1 to 1/1/6'], state='absent')] + set_module_args(dict(interfaces=interfaces_spec, state='present')) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + self.assertEqual(result['commands'], ['no lldp enable ports ethernet 1/1/9', 'no lldp enable ports ethernet 1/1/1 to 1/1/6']) + else: + result = self.execute_module(changed=True) + self.assertEqual(result['commands'], ['no lldp enable ports ethernet 1/1/9', 'no lldp enable ports ethernet 1/1/1 to 1/1/6']) + + def test_icx_lldp_all_error(self): + interfaces_spec = [dict(name=['ethernet all'], state='absent')] + set_module_args(dict(interfaces=interfaces_spec, state='present')) + if not self.ENV_ICX_USE_DIFF: + self.execute_module(failed=True) + else: + self.execute_module(failed=True) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_logging.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_logging.py new file mode 100644 index 000000000..58b6d99f3 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_logging.py @@ -0,0 +1,149 @@ +# Copyright: (c) 2019, Ansible Project +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import json + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import icx_logging +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .icx_module import TestICXModule, load_fixture + + +class TestICXLoggingModule(TestICXModule): + + module = icx_logging + + def setUp(self): + super(TestICXLoggingModule, self).setUp() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.icx_logging.get_config') + self.get_config = self.mock_get_config.start() + + self.mock_load_config = patch('ansible_collections.community.network.plugins.modules.icx_logging.load_config') + self.load_config = self.mock_load_config.start() + + self.mock_exec_command = patch('ansible_collections.community.network.plugins.modules.icx_logging.exec_command') + self.exec_command = self.mock_exec_command.start() + + self.set_running_config() + + def tearDown(self): + super(TestICXLoggingModule, self).tearDown() + self.mock_get_config.stop() + self.mock_load_config.stop() + self.mock_exec_command.stop() + + def load_fixtures(self, commands=None): + compares = None + + def load_file(*args, **kwargs): + module = args + for arg in args: + if arg.params['check_running_config'] is True: + return load_fixture('icx_logging_config.cfg').strip() + else: + return '' + + self.get_config.side_effect = load_file + self.load_config.return_value = None + + def test_icx_logging_set_host(self): + set_module_args(dict(dest='host', name='172.16.10.15')) + if not self.ENV_ICX_USE_DIFF: + commands = ['logging host 172.16.10.15'] + self.execute_module(changed=True, commands=commands) + else: + commands = ['logging host 172.16.10.15'] + self.execute_module(changed=True, commands=commands) + + def test_icx_logging_set_ipv6_host(self): + set_module_args(dict(dest='host', name='2001:db8::1')) + if not self.ENV_ICX_USE_DIFF: + commands = ['logging host 2001:db8::1'] + else: + commands = ['logging host 2001:db8::1'] + + def test_icx_logging_set_host_udp_port(self): + set_module_args(dict(dest='host', name='172.16.10.15', udp_port=2500)) + if not self.ENV_ICX_USE_DIFF: + commands = ['logging host 172.16.10.15 udp-port 2500'] + self.execute_module(changed=True, commands=commands) + else: + commands = ['logging host 172.16.10.15 udp-port 2500'] + self.execute_module(changed=True, commands=commands) + + def test_icx_logging_remove_console(self): + set_module_args(dict(dest='console', state='absent')) + if not self.ENV_ICX_USE_DIFF: + commands = ['no logging console'] + self.execute_module(changed=True, commands=commands) + else: + commands = ['no logging console'] + self.execute_module(changed=True, commands=commands) + + def test_icx_logging_remove_on(self): + set_module_args(dict(dest='on', state='absent')) + if not self.ENV_ICX_USE_DIFF: + commands = ['no logging on'] + self.exec_command(changed=True, commands=commands) + else: + commands = ['no logging on'] + self.exec_command(changed=True, commands=commands) + + def test_icx_logging_set_aggregate(self): + aggregate = [ + dict(dest='host', name='172.16.10.16', udp_port=2500, facility='local0'), + dict(dest='host', name='2001:db8::1', udp_port=5000) + ] + set_module_args(dict(aggregate=aggregate, state='present')) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + expected_commands = [ + 'logging facility local0', + 'logging host 172.16.10.16 udp-port 2500', + 'logging host ipv6 2001:db8::1 udp-port 5000' + ] + self.assertEqual(result['commands'], expected_commands) + else: + result = self.execute_module(changed=True) + expected_commands = [ + 'logging facility local0', + 'logging host 172.16.10.16 udp-port 2500', + 'logging host ipv6 2001:db8::1 udp-port 5000' + ] + self.assertEqual(result['commands'], expected_commands) + + def test_icx_logging_set_aggregate_remove(self): + aggregate = [ + dict(dest='host', name='172.16.10.55', udp_port=2500, facility='local0'), + dict(dest='host', name='2001:db8::1', udp_port=5500) + ] + set_module_args(dict(aggregate=aggregate, state='absent')) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + expected_commands = [ + 'no logging facility', + 'no logging host 172.16.10.55 udp-port 2500', + 'no logging host ipv6 2001:db8::1 udp-port 5500' + ] + + self.assertEqual(result['commands'], expected_commands) + else: + result = self.execute_module(changed=True) + expected_commands = [ + 'no logging facility', + 'no logging host 172.16.10.55 udp-port 2500', + 'no logging host ipv6 2001:db8::1 udp-port 5500' + ] + + self.assertEqual(result['commands'], expected_commands) + + def test_icx_logging_compare(self): + set_module_args(dict(dest='host', name='172.16.10.21', check_running_config=True)) + if self.get_running_config(compare=True): + if not self.ENV_ICX_USE_DIFF: + self.execute_module(changed=False) + else: + self.execute_module(changed=False) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_ping.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_ping.py new file mode 100644 index 000000000..755f77372 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_ping.py @@ -0,0 +1,86 @@ +# Copyright: (c) 2019, Ansible Project +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import icx_ping +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .icx_module import TestICXModule, load_fixture + + +class TestICXPingModule(TestICXModule): + ''' Class used for Unit Tests agains icx_ping module ''' + module = icx_ping + + def setUp(self): + super(TestICXPingModule, self).setUp() + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.icx_ping.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestICXPingModule, self).tearDown() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + def load_from_file(*args, **kwargs): + module = args + commands = kwargs['commands'] + output = list() + + for command in commands: + filename = str(command).split(' | ')[0].replace(' ', '_') + output.append(load_fixture('icx_ping_%s' % filename)) + return output + + self.run_commands.side_effect = load_from_file + + def test_icx_ping_expected_success(self): + ''' Test for successful pings when destination should be reachable ''' + set_module_args(dict(count=2, dest="8.8.8.8")) + commands = ['ping 8.8.8.8 count 2'] + fields = {'packets_tx': 2} + self.execute_module(commands=commands, fields=fields) + + def test_icx_ping_expected_failure(self): + ''' Test for unsuccessful pings when destination should not be reachable ''' + set_module_args(dict(count=2, dest="10.255.255.250", state="absent")) + self.execute_module() + + def test_icx_ping_unexpected_success(self): + ''' Test for successful pings when destination should not be reachable - FAIL. ''' + set_module_args(dict(count=2, dest="8.8.8.8", state="absent")) + self.execute_module(failed=True) + + def test_icx_ping_unexpected_failure(self): + ''' Test for unsuccessful pings when destination should be reachable - FAIL. ''' + set_module_args(dict(count=2, dest="10.255.255.250", timeout=45)) + fields = {'packets_tx': 1, 'packets_rx': 0, 'packet_loss': '100%', 'rtt': {'max': 0, 'avg': 0, 'min': 0}} + self.execute_module(failed=True, fields=fields) + + def test_icx_ping_expected_success_cmd(self): + ''' Test for successful pings when destination should be reachable ''' + set_module_args(dict(count=5, dest="8.8.8.8", ttl=70)) + commands = ['ping 8.8.8.8 count 5 ttl 70'] + self.execute_module(commands=commands) + + def test_icx_ping_invalid_ttl(self): + ''' Test for invalid range of ttl for reachable ''' + set_module_args(dict(dest="8.8.8.8", ttl=300)) + commands = ['ping 8.8.8.8 ttl 300'] + self.execute_module(failed=True, sort=False) + + def test_icx_ping_invalid_timeout(self): + ''' Test for invalid range of timeout for reachable ''' + set_module_args(dict(dest="8.8.8.8", timeout=4294967296)) + self.execute_module(failed=True, sort=False) + + def test_icx_ping_invalid_count(self): + ''' Test for invalid range of count for reachable ''' + set_module_args(dict(dest="8.8.8.8", count=4294967296)) + self.execute_module(failed=True, sort=False) + + def test_icx_ping_invalid_size(self): + '''Test for invalid range of size for reachable ''' + set_module_args(dict(dest="8.8.8.8", size=10001)) + self.execute_module(failed=True, sort=False) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_static_route.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_static_route.py new file mode 100644 index 000000000..3dda2d956 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_static_route.py @@ -0,0 +1,122 @@ +# Copyright: (c) 2019, Ansible Project +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import icx_static_route +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .icx_module import TestICXModule, load_fixture + + +class TestICXStaticRouteModule(TestICXModule): + + module = icx_static_route + + def setUp(self): + super(TestICXStaticRouteModule, self).setUp() + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.icx_static_route.get_config') + self.get_config = self.mock_get_config.start() + + self.mock_load_config = patch('ansible_collections.community.network.plugins.modules.icx_static_route.load_config') + self.load_config = self.mock_load_config.start() + self.set_running_config() + + def tearDown(self): + super(TestICXStaticRouteModule, self).tearDown() + self.mock_get_config.stop() + self.mock_load_config.stop() + + def load_fixtures(self, commands=None): + compares = None + + def load_file(*args, **kwargs): + module = args + for arg in args: + if arg.params['check_running_config'] is True: + return load_fixture('icx_static_route_config.txt').strip() + else: + return '' + + self.get_config.side_effect = load_file + self.load_config.return_value = None + + def test_icx_static_route_config(self): + set_module_args(dict(prefix='192.126.23.0/24', next_hop='10.10.14.3')) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + expected_commands = [ + 'ip route 192.126.23.0 255.255.255.0 10.10.14.3' + ] + self.assertEqual(result['commands'], expected_commands) + else: + result = self.execute_module(changed=True) + expected_commands = [ + 'ip route 192.126.23.0 255.255.255.0 10.10.14.3' + ] + self.assertEqual(result['commands'], expected_commands) + + def test_icx_static_route_config_compare(self): + set_module_args(dict(prefix='172.16.10.0/24', next_hop='10.0.0.8', check_running_config=True)) + if self.get_running_config(compare=True): + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=False) + expected_commands = [ + ] + self.assertEqual(result['commands'], expected_commands) + else: + result = self.execute_module(changed=False) + expected_commands = [ + ] + self.assertEqual(result['commands'], expected_commands) + + def test_icx_static_route_distance_config(self): + set_module_args(dict(prefix='192.126.0.0', mask='255.255.0.0', next_hop='10.10.14.3', admin_distance='40')) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + expected_commands = [ + 'ip route 192.126.0.0 255.255.0.0 10.10.14.3 distance 40' + ] + self.assertEqual(result['commands'], expected_commands) + else: + result = self.execute_module(changed=True) + expected_commands = [ + 'ip route 192.126.0.0 255.255.0.0 10.10.14.3 distance 40' + ] + self.assertEqual(result['commands'], expected_commands) + + def test_icx_static_route_aggregate(self): + aggregate = [ + dict(prefix='192.126.23.0/24', next_hop='10.10.14.3'), + dict(prefix='192.126.0.0', mask='255.255.0.0', next_hop='10.10.14.3', admin_distance='40') + ] + set_module_args(dict(aggregate=aggregate)) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + expected_commands = [ + 'ip route 192.126.23.0 255.255.255.0 10.10.14.3', + 'ip route 192.126.0.0 255.255.0.0 10.10.14.3 distance 40' + ] + self.assertEqual(result['commands'], expected_commands) + else: + result = self.execute_module(changed=True) + expected_commands = [ + 'ip route 192.126.23.0 255.255.255.0 10.10.14.3', + 'ip route 192.126.0.0 255.255.0.0 10.10.14.3 distance 40' + ] + self.assertEqual(result['commands'], expected_commands) + + def test_icx_static_route_remove(self): + set_module_args(dict(prefix='172.16.10.0/24', next_hop='10.0.0.8', state='absent')) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + expected_commands = [ + 'no ip route 172.16.10.0 255.255.255.0 10.0.0.8', + ] + self.assertEqual(result['commands'], expected_commands) + + else: + result = self.execute_module(changed=True) + expected_commands = [ + 'no ip route 172.16.10.0 255.255.255.0 10.0.0.8', + ] + self.assertEqual(result['commands'], expected_commands) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_system.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_system.py new file mode 100644 index 000000000..a9aa48222 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_system.py @@ -0,0 +1,164 @@ +# Copyright: (c) 2019, Ansible Project +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import json + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import icx_system +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .icx_module import TestICXModule, load_fixture + + +class TestICXSystemModule(TestICXModule): + + module = icx_system + + def setUp(self): + super(TestICXSystemModule, self).setUp() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.icx_system.get_config') + self.get_config = self.mock_get_config.start() + + self.mock_load_config = patch('ansible_collections.community.network.plugins.modules.icx_system.load_config') + self.load_config = self.mock_load_config.start() + + self.mock_exec_command = patch('ansible_collections.community.network.plugins.modules.icx_system.exec_command') + self.exec_command = self.mock_exec_command.start() + self.set_running_config() + + def tearDown(self): + super(TestICXSystemModule, self).tearDown() + + self.mock_get_config.stop() + self.mock_load_config.stop() + self.mock_exec_command.stop() + + def load_fixtures(self, commands=None): + compares = None + + def load_file(*args, **kwargs): + module = args + for arg in args: + if arg.params['check_running_config'] is True: + return load_fixture('icx_system.txt').strip() + else: + return '' + + self.get_config.side_effect = load_file + self.load_config.return_value = None + + def test_icx_system_set_config(self): + set_module_args(dict(hostname='ruckus', name_servers=['172.16.10.2', '11.22.22.4'], domain_search=['ansible.com', 'redhat.com'])) + if not self.ENV_ICX_USE_DIFF: + commands = [ + 'hostname ruckus', + 'ip dns domain-list ansible.com', + 'ip dns domain-list redhat.com', + 'ip dns server-address 11.22.22.4', + 'ip dns server-address 172.16.10.2' + ] + self.execute_module(changed=True, commands=commands) + + else: + commands = [ + 'hostname ruckus', + 'ip dns domain-list ansible.com', + 'ip dns domain-list redhat.com', + 'ip dns server-address 11.22.22.4', + 'ip dns server-address 172.16.10.2', + 'no ip dns domain-list ansib.eg.com', + 'no ip dns domain-list red.com', + 'no ip dns domain-list test1.com', + 'no ip dns server-address 10.22.22.64', + 'no ip dns server-address 172.22.22.64' + ] + self.execute_module(changed=True, commands=commands) + + def test_icx_system_remove_config(self): + set_module_args(dict(name_servers=['10.22.22.64', '11.22.22.4'], domain_search=['ansib.eg.com', 'redhat.com'], state='absent')) + if not self.ENV_ICX_USE_DIFF: + commands = [ + 'no ip dns domain-list ansib.eg.com', + 'no ip dns domain-list redhat.com', + 'no ip dns server-address 10.22.22.64', + 'no ip dns server-address 11.22.22.4' + ] + self.execute_module(changed=True, commands=commands) + + else: + commands = [ + 'no ip dns domain-list ansib.eg.com', + 'no ip dns server-address 10.22.22.64', + ] + self.execute_module(changed=True, commands=commands) + + def test_icx_system_remove_config_compare(self): + set_module_args( + dict( + name_servers=[ + '10.22.22.64', + '11.22.22.4'], + domain_search=[ + 'ansib.eg.com', + 'redhat.com'], + state='absent', + check_running_config=True)) + if self.get_running_config(compare=True): + if not self.ENV_ICX_USE_DIFF: + commands = [ + 'no ip dns domain-list ansib.eg.com', + 'no ip dns server-address 10.22.22.64', + ] + self.execute_module(changed=True, commands=commands) + else: + commands = [ + 'no ip dns domain-list ansib.eg.com', + 'no ip dns server-address 10.22.22.64', + ] + self.execute_module(changed=True, commands=commands) + + def test_icx_aaa_servers_radius_set(self): + radius = [ + dict( + type='radius', + hostname='2001:db8::1', + auth_port_type='auth-port', + auth_port_num='1821', + acct_port_num='1321', + acct_type='accounting-only', + auth_key='radius', + auth_key_type=[ + 'mac-auth']), + dict( + type='radius', + hostname='172.16.10.24', + auth_port_type='auth-port', + auth_port_num='2001', + acct_port_num='5000', + acct_type='authentication-only', + auth_key='radius-server'), + dict( + type='tacacs', + hostname='ansible.com')] + set_module_args(dict(hostname='ruckus', aaa_servers=radius)) + if not self.ENV_ICX_USE_DIFF: + commands = [ + 'hostname ruckus', + 'radius-server host 172.16.10.24 auth-port 2001 acct-port 5000 authentication-only key radius-server', + 'radius-server host ipv6 2001:db8::1 auth-port 1821 acct-port 1321 accounting-only key radius mac-auth', + 'tacacs-server host ansible.com' + ] + self.execute_module(changed=True, commands=commands) + + else: + commands = [ + 'hostname ruckus', + 'no radius-server host 172.16.20.14', + 'no tacacs-server host 182.16.10.20', + 'radius-server host 172.16.10.24 auth-port 2001 acct-port 5000 authentication-only key radius-server', + 'radius-server host ipv6 2001:db8::1 auth-port 1821 acct-port 1321 accounting-only key radius mac-auth', + 'tacacs-server host ansible.com' + ] + self.execute_module(changed=True, commands=commands) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_user.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_user.py new file mode 100644 index 000000000..b40725ea2 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_user.py @@ -0,0 +1,197 @@ +# Copyright: (c) 2019, Ansible Project +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import icx_user +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .icx_module import TestICXModule, load_fixture + + +class TestICXSCPModule(TestICXModule): + + module = icx_user + + def setUp(self): + super(TestICXSCPModule, self).setUp() + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.icx_user.get_config') + self.get_config = self.mock_get_config.start() + self.mock_load_config = patch('ansible_collections.community.network.plugins.modules.icx_user.load_config') + self.load_config = self.mock_load_config.start() + self.mock_exec_command = patch('ansible_collections.community.network.plugins.modules.icx_user.exec_command') + self.exec_command = self.mock_exec_command.start() + self.set_running_config() + + def tearDown(self): + super(TestICXSCPModule, self).tearDown() + self.mock_get_config.stop() + self.mock_load_config.stop() + self.mock_exec_command.stop() + + def load_fixtures(self, commands=None): + compares = None + + def load_file(*args, **kwargs): + module = args + for arg in args: + if arg.params['check_running_config'] is True: + return load_fixture('show_running-config_include_username.txt').strip() + else: + return '' + self.get_config.side_effect = load_file + self.load_config.return_value = None + + def test_icx_user_create_new_with_password(self): + set_module_args(dict(name='ale6', configured_password='alethea123')) + if not self.ENV_ICX_USE_DIFF: + commands = ['username ale6 password alethea123'] + self.execute_module(commands=commands, changed=True) + else: + commands = ['username ale6 password alethea123'] + self.execute_module(commands=commands, changed=True) + + def test_icx_user_create_new_with_password_and_privilege(self): + set_module_args(dict(name='ale6', privilege="5", configured_password='alethea123')) + if not self.ENV_ICX_USE_DIFF: + commands = ['username ale6 privilege 5 password alethea123'] + self.execute_module(commands=commands, changed=True) + else: + commands = ['username ale6 privilege 5 password alethea123'] + self.execute_module(commands=commands, changed=True) + + def test_icx_user_update_privilege(self): + set_module_args(dict(name='ale1', privilege="0", configured_password='alethea123')) + if not self.ENV_ICX_USE_DIFF: + commands = ['username ale1 privilege 0 password alethea123'] + self.execute_module(commands=commands, changed=True) + else: + commands = ['username ale1 privilege 0 password alethea123'] + self.execute_module(commands=commands, changed=True) + + def test_icx_user_update_password(self): + set_module_args(dict(name='ale1', configured_password='alethea123')) + if not self.ENV_ICX_USE_DIFF: + commands = ['username ale1 password alethea123'] # previous privilage will be added + self.execute_module(commands=commands, changed=True) + else: + commands = ['username ale1 privilege 5 password alethea123'] # previous privilage will be added + self.execute_module(commands=commands, changed=True) + + def test_icx_user_update_password_compare(self): + set_module_args(dict(name='ale1', configured_password='alethea123', check_running_config=True)) + if not self.ENV_ICX_USE_DIFF: + commands = ['username ale1 privilege 5 password alethea123'] # previous privilage will be added + self.execute_module(commands=commands, changed=True) + else: + commands = ['username ale1 privilege 5 password alethea123'] # previous privilage will be added + self.execute_module(commands=commands, changed=True) + + def test_icx_user_delete_user(self): + set_module_args(dict(name='ale1', state="absent")) + if not self.ENV_ICX_USE_DIFF: + commands = ['no username ale1'] + self.execute_module(commands=commands, changed=True) + else: + commands = ['no username ale1'] + self.execute_module(commands=commands, changed=True) + + def test_icx_user_agregate(self): + set_module_args(dict(aggregate=[ + { + "name": 'ale6', + "configured_password": 'alethea123' + }, + { + "name": 'ale7', + "configured_password": 'alethea123' + } + ])) + if not self.ENV_ICX_USE_DIFF: + commands = [ + 'username ale6 password alethea123', + 'username ale7 password alethea123' + ] + self.execute_module(commands=commands, changed=True) + else: + commands = [ + 'username ale6 password alethea123', + 'username ale7 password alethea123' + ] + self.execute_module(commands=commands, changed=True) + + def test_icx_user_not_update_old_user_password(self): + set_module_args(dict(aggregate=[ + { + "name": 'ale6', + "configured_password": 'alethea123' + }, + { + "name": 'ale1', + "configured_password": 'alethea123', + }, + ], + update_password='on_create' + )) + if not self.ENV_ICX_USE_DIFF: + commands = [ + 'username ale1 password alethea123', + 'username ale6 password alethea123', + ] + self.execute_module(commands=commands, changed=True) + else: + commands = [ + 'username ale6 password alethea123', + ] + self.execute_module(commands=commands, changed=True) + + def test_icx_user_only_update_changed_settings(self): + set_module_args(dict(aggregate=[ + { + "name": 'ale1' + }, + { + "name": 'ale2', + "privilege": 5, + "configured_password": "ale123" + }, + { + "name": 'ale3', + "privilege": 4, + "configured_password": "ale123" + } + ], + update_password="on_create" + )) + if not self.ENV_ICX_USE_DIFF: + commands = [ + 'username ale2 privilege 5 password ale123', + 'username ale3 privilege 4 password ale123' + ] + self.execute_module(commands=commands, changed=True) + else: + commands = [ + 'username ale3 privilege 4 password ale123' + ] + self.execute_module(commands=commands, changed=True) + + def test_icx_user_purge(self): + set_module_args(dict(aggregate=[ + { + "name": 'ale1' + } + ], + purge=True + )) + if not self.ENV_ICX_USE_DIFF: + commands = [ + + ] + self.execute_module(commands=commands, changed=False) + else: + commands = [ + 'no username ale2', + 'no username ale3', + 'no username ale4' + ] + self.execute_module(commands=commands, changed=True) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_vlan.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_vlan.py new file mode 100644 index 000000000..5b8dea3d5 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_icx_vlan.py @@ -0,0 +1,279 @@ +# Copyright: (c) 2019, Ansible Project +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import icx_vlan +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .icx_module import TestICXModule, load_fixture + + +class TestICXVlanModule(TestICXModule): + + module = icx_vlan + + def setUp(self): + super(TestICXVlanModule, self).setUp() + self.mock_exec_command = patch('ansible_collections.community.network.plugins.modules.icx_vlan.exec_command') + self.exec_command = self.mock_exec_command.start() + + self.mock_load_config = patch('ansible_collections.community.network.plugins.modules.icx_vlan.load_config') + self.load_config = self.mock_load_config.start() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.icx_vlan.get_config') + self.get_config = self.mock_get_config.start() + + self.set_running_config() + + def tearDown(self): + super(TestICXVlanModule, self).tearDown() + self.mock_exec_command.stop() + self.mock_load_config.stop() + self.mock_get_config.stop() + + def load_fixtures(self, commands=None): + compares = None + + def load_file(*args, **kwargs): + module = args + for arg in args: + if arg.params['check_running_config'] is True: + self.exec_command.return_value = (0, load_fixture('icx_vlan_config').strip(), None) + return load_fixture('icx_banner_show_banner.txt').strip() + else: + self.exec_command.return_value = (0, ''.strip(), None) + return '' + + self.get_config.side_effect = load_file + self.load_config.return_value = None + + def test_icx_vlan_set_tagged_port(self): + set_module_args(dict(name='test_vlan', vlan_id=5, tagged=dict(name=['ethernet 1/1/40 to 1/1/43', 'lag 44']))) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + expected_commands = [ + 'vlan 5', + 'vlan 5 name test_vlan', + 'tagged ethernet 1/1/40 to 1/1/43', + 'tagged lag 44' + ] + self.assertEqual(result['commands'], expected_commands) + else: + result = self.execute_module(changed=True) + expected_commands = [ + 'vlan 5', + 'vlan 5 name test_vlan', + 'tagged ethernet 1/1/40 to 1/1/43', + 'tagged lag 44' + ] + self.assertEqual(result['commands'], expected_commands) + + def test_icx_vlan_add_untagged_port(self): + set_module_args(dict(name='test_vlan', vlan_id=3, interfaces=dict(name=['ethernet 1/1/10', 'lag 5']))) + + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + expected_commands = [ + 'vlan 3', + 'vlan 3 name test_vlan', + 'untagged lag 5', + 'untagged ethernet 1/1/10' + ] + self.assertEqual(set(result['commands']), set(expected_commands)) + else: + result = self.execute_module(changed=True) + expected_commands = [ + 'vlan 3', + 'vlan 3 name test_vlan', + 'untagged lag 5', + 'untagged ethernet 1/1/10' + ] + self.assertEqual(set(result['commands']), set(expected_commands)) + + def test_icx_vlan_purge_tagged_port(self): + set_module_args(dict(vlan_id=3, tagged=dict(name=['ethernet 1/1/40 to 1/1/42', 'lag 44'], purge=True))) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + expected_commands = [ + 'vlan 3', + 'tagged ethernet 1/1/40 to 1/1/43', + 'tagged lag 44' + ] + self.assertEqual(result['commands'], expected_commands) + else: + result = self.execute_module(changed=True) + expected_commands = [ + 'vlan 3', + 'no tagged ethernet 1/1/31', + 'no tagged ethernet 1/1/9', + 'no tagged ethernet 1/1/11', + 'no tagged lag 13', + 'no tagged ethernet 1/1/10', + 'tagged ethernet 1/1/40', + 'tagged ethernet 1/1/41', + 'tagged ethernet 1/1/42', + 'tagged lag 44' + ] + self.assertEqual(set(result['commands']), set(expected_commands)) + + def test_icx_vlan_enable_ip_arp_inspection(self): + set_module_args(dict(vlan_id=5, ip_arp_inspection=True)) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + expected_commands = [ + 'vlan 5', + 'ip arp inspection vlan 5' + ] + self.assertEqual(result['commands'], expected_commands) + else: + result = self.execute_module(changed=True) + expected_commands = [ + 'vlan 5', + 'ip arp inspection vlan 5' + ] + self.assertEqual(result['commands'], expected_commands) + + def test_icx_vlan_enable_ip_dhcp_snooping(self): + set_module_args(dict(vlan_id=5, ip_dhcp_snooping=True)) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + expected_commands = [ + 'vlan 5', + 'ip dhcp snooping vlan 5' + ] + self.assertEqual(result['commands'], expected_commands) + else: + result = self.execute_module(changed=True) + expected_commands = [ + 'vlan 5', + 'ip dhcp snooping vlan 5' + ] + self.assertEqual(result['commands'], expected_commands) + + def test_icx_vlan_aggregate(self): + aggregate = [ + dict(vlan_id=9, name='vlan_9', interfaces=dict(name=['ethernet 1/1/40 to 1/1/43', 'ethernet 1/1/44']), ip_arp_inspection=True), + dict(vlan_id=7, name='vlan_7', interfaces=dict(name=['ethernet 1/1/20 to 1/1/23', 'ethernet 1/1/24']), ip_dhcp_snooping=True), + ] + set_module_args(dict(aggregate=aggregate)) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + expected_commands = [ + 'vlan 9', + 'vlan 9 name vlan_9', + 'untagged ethernet 1/1/40 to 1/1/43', + 'untagged ethernet 1/1/44', + 'ip arp inspection vlan 9', + 'vlan 7', + 'vlan 7 name vlan_7', + 'untagged ethernet 1/1/20 to 1/1/23', + 'untagged ethernet 1/1/24', + 'ip dhcp snooping vlan 7', + ] + self.assertEqual(result['commands'], expected_commands) + else: + result = self.execute_module(changed=True) + expected_commands = [ + 'vlan 9', + 'vlan 9 name vlan_9', + 'untagged ethernet 1/1/40 to 1/1/43', + 'untagged ethernet 1/1/44', + 'ip arp inspection vlan 9', + 'vlan 7', + 'vlan 7 name vlan_7', + 'untagged ethernet 1/1/20 to 1/1/23', + 'untagged ethernet 1/1/24', + 'ip dhcp snooping vlan 7', + ] + self.assertEqual(result['commands'], expected_commands) + + def test_icx_vlan_interfaces_cndt(self): + set_module_args(dict(vlan_id=3, associated_interfaces=['ethernet 1/1/20 to 1/1/22', 'ethernet 1/1/27', 'lag 11 to 12'])) + if not self.ENV_ICX_USE_DIFF: + self.execute_module(failed=True) + else: + self.execute_module(changed=False) + + def test_icx_vlan_tagged_cndt(self): + set_module_args(dict(vlan_id=3, associated_tagged=['ethernet 1/1/9 to 1/1/11', 'ethernet 1/1/31', 'lag 13'])) + if not self.ENV_ICX_USE_DIFF: + self.execute_module(failed=True) + else: + self.execute_module(changed=False) + + def test_icx_vlan_purge(self): + set_module_args(dict(vlan_id=3, purge=True)) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=False) + expected_commands = [] + self.assertEqual(result['commands'], expected_commands) + else: + result = self.execute_module(changed=True) + expected_commands = [ + 'no vlan 6', + 'no vlan 10', + 'no vlan 21' + ] + self.assertEqual(result['commands'], expected_commands) + + def test_icx_vlan_stp_802_1w(self): + stp_spec = dict(dict(type='802-1w', priority='20', enabled=True)) + set_module_args(dict(vlan_id=3, interfaces=dict(name=['ethernet 1/1/40']), stp=stp_spec)) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + expected_commands = [ + 'vlan 3', + 'untagged ethernet 1/1/40', + 'spanning-tree 802-1w', + 'spanning-tree 802-1w priority 20' + ] + self.assertEqual(result['commands'], expected_commands) + else: + result = self.execute_module(changed=True) + expected_commands = [ + 'vlan 3', + 'untagged ethernet 1/1/40', + 'spanning-tree 802-1w', + 'spanning-tree 802-1w priority 20' + ] + self.assertEqual(result['commands'], expected_commands) + + def test_icx_vlan_stp_rstp_absent(self): + stp_spec = dict(dict(type='rstp', enabled=False)) + set_module_args(dict(vlan_id=3, interfaces=dict(name=['ethernet 1/1/40']), stp=stp_spec)) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + expected_commands = [ + 'vlan 3', + 'untagged ethernet 1/1/40', + 'no spanning-tree' + ] + self.assertEqual(result['commands'], expected_commands) + else: + result = self.execute_module(changed=True) + expected_commands = [ + 'vlan 3', + 'untagged ethernet 1/1/40', + 'no spanning-tree' + ] + self.assertEqual(result['commands'], expected_commands) + + def test_icx_vlan_stp_802_1w_absent(self): + stp_spec = dict(dict(type='802-1w', enabled=False)) + set_module_args(dict(vlan_id=3, stp=stp_spec)) + if not self.ENV_ICX_USE_DIFF: + result = self.execute_module(changed=True) + expected_commands = [ + 'vlan 3', + 'no spanning-tree 802-1w', + 'no spanning-tree' + ] + self.assertEqual(result['commands'], expected_commands) + else: + result = self.execute_module(changed=True) + expected_commands = [ + 'vlan 3', + 'no spanning-tree 802-1w', + 'no spanning-tree' + ] + self.assertEqual(result['commands'], expected_commands) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_ig_config.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_ig_config.py new file mode 100644 index 000000000..2509116f7 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_ig_config.py @@ -0,0 +1,241 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2018, Ingate Systems AB +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import ig_config +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .ingate_module import TestIngateModule, load_fixture + + +class TestConfigModule(TestIngateModule): + + module = ig_config + + def setUp(self): + super(TestConfigModule, self).setUp() + + self.mock_make_request = patch( + 'ansible_collections.community.network.plugins.modules.ig_config.make_request') + self.make_request = self.mock_make_request.start() + # ATM the Ingate Python SDK is not needed in this unit test. + self.module.HAS_INGATESDK = True + + def tearDown(self): + super(TestConfigModule, self).tearDown() + self.mock_make_request.stop() + + def load_fixtures(self, fixture=None, command=None, changed=False): + self.make_request.side_effect = [(changed, command, + load_fixture(fixture))] + + def test_ig_config_add(self): + """Test adding a row to a table. + """ + command = 'add' + set_module_args(dict( + client=dict( + version='v1', + address='127.0.0.1', + scheme='http', + username='alice', + password='foobar' + ), + add=True, + table='misc.dns_servers', + columns=dict( + server='192.168.1.23' + ))) + fixture = '%s_%s.%s' % (os.path.basename(__file__).split('.')[0], + command, 'json') + result = self.execute_module(changed=True, fixture=fixture, + command=command) + self.assertTrue(command in result) + + def test_ig_config_delete(self): + """Test deleting all rows in a table. + """ + command = 'delete' + set_module_args(dict( + client=dict( + version='v1', + address='127.0.0.1', + scheme='http', + username='alice', + password='foobar' + ), + delete=True, + table='misc.dns_servers', + )) + fixture = '%s_%s.%s' % (os.path.basename(__file__).split('.')[0], + command, 'json') + result = self.execute_module(changed=True, fixture=fixture, + command=command) + self.assertTrue(command in result) + + def test_ig_config_get(self): + """Test returning all rows in a table. + """ + command = 'get' + set_module_args(dict( + client=dict( + version='v1', + address='127.0.0.1', + scheme='http', + username='alice', + password='foobar' + ), + get=True, + table='misc.dns_servers', + )) + fixture = '%s_%s.%s' % (os.path.basename(__file__).split('.')[0], + command, 'json') + result = self.execute_module(changed=True, fixture=fixture, + command=command) + self.assertTrue(command in result) + + def test_ig_config_modify(self): + """Test modifying a row. + """ + command = 'modify' + set_module_args(dict( + client=dict( + version='v1', + address='127.0.0.1', + scheme='http', + username='alice', + password='foobar' + ), + modify=True, + table='misc.unitname', + columns=dict( + unitname='"Testapi - 1541699806"' + ))) + fixture = '%s_%s.%s' % (os.path.basename(__file__).split('.')[0], + command, 'json') + result = self.execute_module(changed=True, fixture=fixture, + command=command) + self.assertTrue(command in result) + + def test_ig_config_revert(self): + """Test reverting the preliminary configuration. + """ + command = 'revert' + set_module_args(dict( + client=dict( + version='v1', + address='127.0.0.1', + scheme='http', + username='alice', + password='foobar' + ), + revert=True + )) + fixture = '%s_%s.%s' % (os.path.basename(__file__).split('.')[0], + command, 'json') + result = self.execute_module(changed=True, fixture=fixture, + command=command) + self.assertTrue(command in result) + + def test_ig_config_factory(self): + """Test loading factory defaults. + """ + command = 'factory' + set_module_args(dict( + client=dict( + version='v1', + address='127.0.0.1', + scheme='http', + username='alice', + password='foobar' + ), + factory=True + )) + fixture = '%s_%s.%s' % (os.path.basename(__file__).split('.')[0], + command, 'json') + result = self.execute_module(changed=True, fixture=fixture, + command=command) + self.assertTrue(command in result) + + def test_ig_config_store(self): + """Test storing the preliminary configuration. + """ + command = 'store' + set_module_args(dict( + client=dict( + version='v1', + address='127.0.0.1', + scheme='http', + username='alice', + password='foobar' + ), + store=True + )) + fixture = '%s_%s.%s' % (os.path.basename(__file__).split('.')[0], + command, 'json') + result = self.execute_module(changed=True, fixture=fixture, + command=command) + self.assertTrue(command in result) + + def test_ig_config_download(self): + """Test doing backup of configuration database. + """ + command = 'store' + set_module_args(dict( + client=dict( + version='v1', + address='127.0.0.1', + scheme='http', + username='alice', + password='foobar' + ), + download=True + )) + fixture = '%s_%s.%s' % (os.path.basename(__file__).split('.')[0], + command, 'json') + result = self.execute_module(changed=True, fixture=fixture, + command=command) + self.assertTrue(command in result) + + def test_ig_config_return_rowid(self): + """Test retrieving a row id. + """ + command = 'return_rowid' + set_module_args(dict( + client=dict( + version='v1', + address='127.0.0.1', + scheme='http', + username='alice', + password='foobar' + ), + return_rowid=True, + table='network.local_nets', + columns=dict( + interface='eth0' + ))) + fixture = '%s_%s.%s' % (os.path.basename(__file__).split('.')[0], + command, 'json') + result = self.execute_module(changed=True, fixture=fixture, + command=command) + self.assertTrue(command in result) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_ig_unit_information.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_ig_unit_information.py new file mode 100644 index 000000000..896f7586a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_ig_unit_information.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- + +# Copyright: (c) 2018, Ingate Systems AB +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import ig_unit_information +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .ingate_module import TestIngateModule, load_fixture + + +class TestUnitInformationModule(TestIngateModule): + + module = ig_unit_information + + def setUp(self): + super(TestUnitInformationModule, self).setUp() + + self.mock_make_request = patch( + 'ansible_collections.community.network.plugins.modules.ig_unit_information.make_request') + self.make_request = self.mock_make_request.start() + + self.mock_is_ingatesdk_installed = patch( + 'ansible_collections.community.network.plugins.modules.ig_unit_information.is_ingatesdk_installed') + self.is_ingatesdk_installed = self.mock_is_ingatesdk_installed.start() + + def tearDown(self): + super(TestUnitInformationModule, self).tearDown() + self.mock_make_request.stop() + self.mock_is_ingatesdk_installed.stop() + + def load_fixtures(self, fixture=None, command=None, changed=False): + self.make_request.side_effect = [load_fixture(fixture)] + self.is_ingatesdk_installed.return_value = True + + def test_ig_unit_information(self): + set_module_args( + dict( + client=dict( + version='v1', + address='127.0.0.1', + scheme='http', + username='alice', + password='foobar' + ) + ) + ) + + fixture = '%s.%s' % (os.path.basename(__file__).split('.')[0], 'json') + result = self.execute_module(fixture=fixture) + self.assertTrue('unit-information' in result) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_ironware_command.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_ironware_command.py new file mode 100644 index 000000000..668ee678a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_ironware_command.py @@ -0,0 +1,100 @@ +# (c) 2016 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from ansible_collections.community.network.plugins.modules import ironware_command +from .ironware_module import TestIronwareModule, load_fixture + + +class TestIronwareCommandModule(TestIronwareModule): + + module = ironware_command + + def setUp(self): + super(TestIronwareCommandModule, self).setUp() + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.ironware_command.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestIronwareCommandModule, self).tearDown() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + + def load_from_file(*args, **kwargs): + module, commands = args + output = list() + + for command in commands: + filename = str(command).replace(' ', '_') + output.append(load_fixture(filename)) + return output + + self.run_commands.side_effect = load_from_file + + def test_ironware_command_simple(self): + set_module_args(dict(commands=['show version'])) + result = self.execute_module() + self.assertEqual(len(result['stdout']), 1) + self.assertTrue(result['stdout'][0].startswith('System Mode: MLX')) + + def test_ironware_command_multiple(self): + set_module_args(dict(commands=['show version', 'show version'])) + result = self.execute_module() + self.assertEqual(len(result['stdout']), 2) + self.assertTrue(result['stdout'][0].startswith('System Mode: MLX')) + + def test_ironware_command_wait_for(self): + wait_for = 'result[0] contains "IronWare"' + set_module_args(dict(commands=['show version'], wait_for=wait_for)) + self.execute_module() + + def test_ironware_command_wait_for_fails(self): + wait_for = 'result[0] contains "test string"' + set_module_args(dict(commands=['show version'], wait_for=wait_for)) + self.execute_module(failed=True) + self.assertEqual(self.run_commands.call_count, 10) + + def test_ironware_command_retries(self): + wait_for = 'result[0] contains "test string"' + set_module_args(dict(commands=['show version'], wait_for=wait_for, retries=2)) + self.execute_module(failed=True) + self.assertEqual(self.run_commands.call_count, 2) + + def test_ironware_command_match_any(self): + wait_for = ['result[0] contains "IronWare"', + 'result[0] contains "test string"'] + set_module_args(dict(commands=['show version'], wait_for=wait_for, match='any')) + self.execute_module() + + def test_ironware_command_match_all(self): + wait_for = ['result[0] contains "IronWare"', + 'result[0] contains "uptime is"'] + set_module_args(dict(commands=['show version'], wait_for=wait_for, match='all')) + self.execute_module() + + def test_ironware_command_match_all_failure(self): + wait_for = ['result[0] contains "IronWare"', + 'result[0] contains "test string"'] + commands = ['show version', 'show version'] + set_module_args(dict(commands=commands, wait_for=wait_for, match='all')) + self.execute_module(failed=True) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_ironware_config.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_ironware_config.py new file mode 100644 index 000000000..10b1a10c3 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_ironware_config.py @@ -0,0 +1,165 @@ +# +# (c) 2016 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from ansible_collections.community.network.plugins.modules import ironware_config +from .ironware_module import TestIronwareModule, load_fixture + + +class TestIronwareConfigModule(TestIronwareModule): + + module = ironware_config + + def setUp(self): + super(TestIronwareConfigModule, self).setUp() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.ironware_config.get_config') + self.get_config = self.mock_get_config.start() + + self.mock_load_config = patch('ansible_collections.community.network.plugins.modules.ironware_config.load_config') + self.load_config = self.mock_load_config.start() + + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.ironware_config.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestIronwareConfigModule, self).tearDown() + self.mock_get_config.stop() + self.mock_load_config.stop() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + config_file = 'ironware_config_config.cfg' + self.get_config.return_value = load_fixture(config_file) + self.load_config.return_value = None + + def execute_module(self, failed=False, changed=False, updates=None, sort=True, defaults=False): + + self.load_fixtures(updates) + + if failed: + result = self.failed() + self.assertTrue(result['failed'], result) + else: + result = self.changed(changed) + self.assertEqual(result['changed'], changed, result) + + if updates is not None: + if sort: + self.assertEqual(sorted(updates), sorted(result['updates']), result['updates']) + else: + self.assertEqual(updates, result['updates'], result['updates']) + + return result + + def test_ironware_config_unchanged(self): + src = load_fixture('ironware_config_config.cfg') + set_module_args(dict(src=src)) + self.execute_module() + + def test_ironware_config_src(self): + src = load_fixture('ironware_config_src.cfg') + set_module_args(dict(src=src)) + updates = ['hostname foo', 'interface ethernet 1/1', + 'no ip address'] + self.execute_module(changed=True, updates=updates) + + def test_ironware_config_backup(self): + set_module_args(dict(backup=True)) + result = self.execute_module() + self.assertIn('__backup__', result) + + def test_ironware_config_save_always(self): + self.run_commands.return_value = "hostname foobar" + set_module_args(dict(save_when='always')) + self.execute_module(changed=True) + self.assertEqual(self.run_commands.call_count, 1) + self.assertEqual(self.get_config.call_count, 1) + self.assertEqual(self.load_config.call_count, 0) + + def test_ironware_config_lines_wo_parents(self): + set_module_args(dict(lines=['hostname foobar'])) + updates = ['hostname foobar'] + self.execute_module(changed=True, updates=updates) + + def test_ironware_config_lines_w_parents(self): + set_module_args(dict(lines=['disable'], parents=['interface ethernet 1/1'])) + updates = ['interface ethernet 1/1', 'disable'] + self.execute_module(changed=True, updates=updates) + + def test_ironware_config_before(self): + set_module_args(dict(lines=['hostname foo'], before=['test1', 'test2'])) + updates = ['test1', 'test2', 'hostname foo'] + self.execute_module(changed=True, updates=updates, sort=False) + + def test_ironware_config_after(self): + set_module_args(dict(lines=['hostname foo'], after=['test1', 'test2'])) + updates = ['hostname foo', 'test1', 'test2'] + self.execute_module(changed=True, updates=updates, sort=False) + + def test_ironware_config_before_after_no_change(self): + set_module_args(dict(lines=['hostname router'], + before=['test1', 'test2'], + after=['test3', 'test4'])) + self.execute_module() + + def test_ironware_config_config(self): + config = 'hostname localhost' + set_module_args(dict(lines=['hostname router'], config=config)) + updates = ['hostname router'] + self.execute_module(changed=True, updates=updates) + + def test_ironware_config_replace_block(self): + lines = ['port-name test string', 'test string'] + parents = ['interface ethernet 1/1'] + set_module_args(dict(lines=lines, replace='block', parents=parents)) + updates = parents + lines + self.execute_module(changed=True, updates=updates) + + def test_ironware_config_match_none(self): + lines = ['hostname router'] + set_module_args(dict(lines=lines, match='none')) + self.execute_module(changed=True, updates=lines) + + def test_ironware_config_match_none_parents(self): + lines = ['ip address 1.2.3.4 255.255.255.0', 'port-name test string'] + parents = ['interface ethernet 1/1'] + set_module_args(dict(lines=lines, parents=parents, match='none')) + updates = parents + lines + self.execute_module(changed=True, updates=updates, sort=False) + + def test_ironware_config_match_strict(self): + lines = ['ip address 1.2.3.4 255.255.255.0', 'port-name test string', + 'disable'] + parents = ['interface ethernet 1/1'] + set_module_args(dict(lines=lines, parents=parents, match='strict')) + updates = parents + ['disable'] + self.execute_module(changed=True, updates=updates, sort=False) + + def test_ironware_config_match_exact(self): + lines = ['ip address 1.2.3.4 255.255.255.0', 'port-name test string', + 'disable'] + parents = ['interface ethernet 1/1'] + set_module_args(dict(lines=lines, parents=parents, match='exact')) + updates = parents + lines + self.execute_module(changed=True, updates=updates, sort=False) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_ironware_facts.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_ironware_facts.py new file mode 100644 index 000000000..cd50602a3 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_ironware_facts.py @@ -0,0 +1,102 @@ +# (c) 2016 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import json + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from ansible_collections.community.network.plugins.modules import ironware_facts +from .ironware_module import TestIronwareModule, load_fixture + + +class TestIronwareFacts(TestIronwareModule): + + module = ironware_facts + + def setUp(self): + super(TestIronwareFacts, self).setUp() + self.mock_run_commands = patch( + 'ansible_collections.community.network.plugins.modules.ironware_facts.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestIronwareFacts, self).tearDown() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + + def load_from_file(*args, **kwargs): + module, commands = args + output = list() + + for item in commands: + try: + obj = json.loads(item) + command = obj['command'] + except ValueError: + command = item + filename = str(command).split(' | ')[0].replace(' ', '_').replace('/', '7') + output.append(load_fixture(filename)) + return output + + self.run_commands.side_effect = load_from_file + + def test_ironware_facts_gather_subset_default(self): + set_module_args(dict()) + result = self.execute_module() + ansible_facts = result['ansible_facts'] + self.assertIn('hardware', ansible_facts['ansible_net_gather_subset']) + self.assertIn('default', ansible_facts['ansible_net_gather_subset']) + self.assertIn('interfaces', ansible_facts['ansible_net_gather_subset']) + self.assertEqual(['/flash/'], ansible_facts['ansible_net_filesystems']) + self.assertIn('1/1', ansible_facts['ansible_net_interfaces'].keys()) + self.assertIn('10.69.1.6', ansible_facts['ansible_net_all_ipv4_addresses']) + self.assertIn('2001:db8::1', ansible_facts['ansible_net_all_ipv6_addresses']) + self.assertIn('ansible_net_neighbors', ansible_facts) + self.assertIn('1/2', ansible_facts['ansible_net_neighbors'].keys()) + self.assertEqual(4096, ansible_facts['ansible_net_memtotal_mb']) + self.assertEqual(3630, ansible_facts['ansible_net_memfree_mb']) + self.assertEqual('5.8.0fT163', ansible_facts['ansible_net_version']) + self.assertEqual('MLXe 4-slot Chassis', ansible_facts['ansible_net_model']) + self.assertEqual('BGD2503J01F', ansible_facts['ansible_net_serialnum']) + + def test_ironware_facts_gather_subset_config(self): + set_module_args({'gather_subset': 'config'}) + result = self.execute_module() + ansible_facts = result['ansible_facts'] + self.assertIn('default', ansible_facts['ansible_net_gather_subset']) + self.assertIn('config', ansible_facts['ansible_net_gather_subset']) + self.assertIn('ansible_net_config', ansible_facts) + + def test_ironware_facts_gather_subset_mpls(self): + set_module_args({'gather_subset': 'mpls'}) + result = self.execute_module() + ansible_facts = result['ansible_facts'] + self.assertIn('default', ansible_facts['ansible_net_gather_subset']) + self.assertIn('mpls', ansible_facts['ansible_net_gather_subset']) + self.assertIn('ansible_net_mpls_lsps', ansible_facts) + self.assertIn('ansible_net_mpls_vll', ansible_facts) + self.assertIn('ansible_net_mpls_vll_local', ansible_facts) + self.assertIn('ansible_net_mpls_vpls', ansible_facts) + self.assertIn('LSP1', ansible_facts['ansible_net_mpls_lsps'].keys()) + self.assertIn('TEST-VLL', ansible_facts['ansible_net_mpls_vll'].keys()) + self.assertIn('TEST-LOCAL', ansible_facts['ansible_net_mpls_vll_local'].keys()) + self.assertIn('TEST-VPLS', ansible_facts['ansible_net_mpls_vpls'].keys()) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_nclu.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_nclu.py new file mode 100644 index 000000000..f708e6d72 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_nclu.py @@ -0,0 +1,252 @@ +# -*- coding: utf-8 -*- + +# (c) 2016, Cumulus Networks <ce-ceng@cumulusnetworks.com> +# +# This file is part of Ansible +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +import os.path +import unittest + +from ansible_collections.community.network.plugins.modules import nclu + + +class FakeModule(object): + """Fake NCLU module to check the logic of the ansible module. + + We have two sets of tests: fake and real. Real tests only run if + NCLU is installed on the testing machine (it should be a Cumulus VX + VM or something like that). + + Fake tests are used to test the logic of the ansible module proper - that + the right things are done when certain feedback is received. + + Real tests are used to test regressions against versions of NCLU. This + FakeModule mimics the output that is used for screenscraping. If the real + output differs, the real tests will catch that. + + To prepare a VX: + sudo apt-get update + sudo apt-get install python-setuptools git gcc python-dev libssl-dev + sudo easy_install pip + sudo pip install ansible nose coverage + # git the module and cd to the directory + nosetests --with-coverage --cover-package=nclu --cover-erase --cover-branches + + If a real test fails, it means that there is a risk of a version split, and + that changing the module will break for old versions of NCLU if not careful. + """ + + def __init__(self, **kwargs): + self.reset() + + def exit_json(self, **kwargs): + self.exit_code = kwargs + + def fail_json(self, **kwargs): + self.fail_code = kwargs + + def run_command(self, command): + """Run an NCLU command""" + + self.command_history.append(command) + if command == "/usr/bin/net pending": + return (0, self.pending, "") + elif command == "/usr/bin/net abort": + self.pending = "" + return (0, "", "") + elif command.startswith("/usr/bin/net commit"): + if self.pending: + self.last_commit = self.pending + self.pending = "" + return (0, "", "") + else: + return (0, "commit ignored...there were no pending changes", "") + elif command == "/usr/bin/net show commit last": + return (0, self.last_commit, "") + else: + self.pending += command + return self.mocks.get(command, (0, "", "")) + + def mock_output(self, command, _rc, output, _err): + """Prepare a command to mock certain output""" + + self.mocks[command] = (_rc, output, _err) + + def reset(self): + self.params = {} + self.exit_code = {} + self.fail_code = {} + self.command_history = [] + self.mocks = {} + self.pending = "" + self.last_commit = "" + self.check_mode = False + + +def skipUnlessNcluInstalled(original_function): + if os.path.isfile('/usr/bin/net'): + return original_function + else: + return unittest.skip('only run if nclu is installed') + + +class TestNclu(unittest.TestCase): + + def test_command_helper(self): + module = FakeModule() + module.mock_output("/usr/bin/net add int swp1", 0, "", "") + + result = nclu.command_helper(module, 'add int swp1', 'error out') + self.assertEqual(module.command_history[-1], "/usr/bin/net add int swp1") + self.assertEqual(result, "") + + def test_command_helper_error_code(self): + module = FakeModule() + module.mock_output("/usr/bin/net fake fail command", 1, "", "") + + result = nclu.command_helper(module, 'fake fail command', 'error out') + self.assertEqual(module.fail_code, {'msg': "error out"}) + + def test_command_helper_error_msg(self): + module = FakeModule() + module.mock_output("/usr/bin/net fake fail command", 0, + "ERROR: Command not found", "") + + result = nclu.command_helper(module, 'fake fail command', 'error out') + self.assertEqual(module.fail_code, {'msg': "error out"}) + + def test_command_helper_no_error_msg(self): + module = FakeModule() + module.mock_output("/usr/bin/net fake fail command", 0, + "ERROR: Command not found", "") + + result = nclu.command_helper(module, 'fake fail command') + self.assertEqual(module.fail_code, {'msg': "ERROR: Command not found"}) + + def test_empty_run(self): + module = FakeModule() + changed, output, diff = nclu.run_nclu(module, None, None, False, False, False, "") + self.assertEqual(module.command_history, ['/usr/bin/net pending', + '/usr/bin/net pending']) + self.assertEqual(module.fail_code, {}) + self.assertEqual(changed, False) + + def test_command_list(self): + module = FakeModule() + changed, output, diff = nclu.run_nclu(module, ['add int swp1', 'add int swp2'], + None, False, False, False, "") + + self.assertEqual(module.command_history, ['/usr/bin/net pending', + '/usr/bin/net add int swp1', + '/usr/bin/net add int swp2', + '/usr/bin/net pending']) + self.assertNotEqual(len(module.pending), 0) + self.assertEqual(module.fail_code, {}) + self.assertEqual(changed, True) + + def test_command_list_commit(self): + module = FakeModule() + changed, output, diff = nclu.run_nclu(module, ['add int swp1', 'add int swp2'], + None, True, False, False, "committed") + + self.assertEqual(module.command_history, ['/usr/bin/net pending', + '/usr/bin/net add int swp1', + '/usr/bin/net add int swp2', + '/usr/bin/net pending', + "/usr/bin/net commit description 'committed'", + '/usr/bin/net show commit last']) + self.assertEqual(len(module.pending), 0) + self.assertEqual(module.fail_code, {}) + self.assertEqual(changed, True) + + def test_command_atomic(self): + module = FakeModule() + changed, output, diff = nclu.run_nclu(module, ['add int swp1', 'add int swp2'], + None, False, True, False, "atomically") + + self.assertEqual(module.command_history, ['/usr/bin/net abort', + '/usr/bin/net pending', + '/usr/bin/net add int swp1', + '/usr/bin/net add int swp2', + '/usr/bin/net pending', + "/usr/bin/net commit description 'atomically'", + '/usr/bin/net show commit last']) + self.assertEqual(len(module.pending), 0) + self.assertEqual(module.fail_code, {}) + self.assertEqual(changed, True) + + def test_command_abort_first(self): + module = FakeModule() + module.pending = "dirty" + nclu.run_nclu(module, None, None, False, False, True, "") + + self.assertEqual(len(module.pending), 0) + + def test_command_template_commit(self): + module = FakeModule() + changed, output, diff = nclu.run_nclu(module, None, + " add int swp1\n add int swp2", + True, False, False, "committed") + + self.assertEqual(module.command_history, ['/usr/bin/net pending', + '/usr/bin/net add int swp1', + '/usr/bin/net add int swp2', + '/usr/bin/net pending', + "/usr/bin/net commit description 'committed'", + '/usr/bin/net show commit last']) + self.assertEqual(len(module.pending), 0) + self.assertEqual(module.fail_code, {}) + self.assertEqual(changed, True) + + def test_commit_ignored(self): + module = FakeModule() + changed, output, diff = nclu.run_nclu(module, None, None, True, False, False, "ignore me") + + self.assertEqual(module.command_history, ['/usr/bin/net pending', + '/usr/bin/net pending']) + self.assertEqual(len(module.pending), 0) + self.assertEqual(module.fail_code, {}) + self.assertEqual(changed, False) + + def test_check_mode(self): + module = FakeModule() + module.check_mode = True + changed, output, diff = nclu.run_nclu(module, ['add int swp1', 'add int swp2'], + None, True, False, False, '') + + self.assertEqual(module.command_history, ["/usr/bin/net pending", + "/usr/bin/net add int swp1", + "/usr/bin/net add int swp2", + "/usr/bin/net pending", + "/usr/bin/net abort"]) + self.assertEqual(len(module.pending), 0) + self.assertEqual(module.fail_code, {}) + self.assertEqual(changed, True) + + def test_diff(self): + module = FakeModule() + changed, output, diff = nclu.run_nclu(module, ['add int swp1', 'add int swp2'], + None, False, False, False, '') + + print(module.command_history) + self.assertEqual(diff, {'prepared': '/usr/bin/net add int swp1/usr/bin/net add int swp2'}) + self.assertEqual(module.command_history, ["/usr/bin/net pending", + "/usr/bin/net add int swp1", + "/usr/bin/net add int swp2", + "/usr/bin/net pending"]) + self.assertNotEqual(len(module.pending), 0) + self.assertEqual(module.fail_code, {}) + self.assertEqual(changed, True) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_netact_cm_command.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_netact_cm_command.py new file mode 100644 index 000000000..a211af37d --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_netact_cm_command.py @@ -0,0 +1,172 @@ +""" +netact_cm_command unit tests +""" + +# -*- coding: utf-8 -*- + +# (c) 2017, Nokia +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# pylint: disable=invalid-name,protected-access,function-redefined,unused-argument +# pylint: disable=unused-import,redundant-unittest-assert + +from __future__ import (absolute_import, division, print_function) + +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat import unittest +from ansible.module_utils import basic +from ansible_collections.community.network.plugins.modules import netact_cm_command +from ansible_collections.community.network.tests.unit.compat.mock import patch + +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args, AnsibleExitJson, AnsibleFailJson + + +class AnsibleExitJson(Exception): + """Exception class to be raised by module.exit_json and caught by the test case""" + pass + + +class AnsibleFailJson(Exception): + """Exception class to be raised by module.fail_json and caught by the test case""" + pass + + +def exit_json(*args, **kwargs): + """function to patch over exit_json; package return data into an exception""" + if 'changed' not in kwargs: + kwargs['changed'] = False + raise AnsibleExitJson(kwargs) + + +def fail_json(*args, **kwargs): + """function to patch over fail_json; package return data into an exception""" + kwargs['failed'] = True + raise AnsibleFailJson(kwargs) + + +def get_bin_path(self, arg, required=False): + """Mock AnsibleModule.get_bin_path""" + if arg.endswith('netact_cm_command'): + return '/usr/bin/my_command' + else: + if required: + fail_json(msg='%r not found !' % arg) + + +class TestClass(unittest.TestCase): + """ + Test cases + """ + + def setUp(self): + self.mock_module_helper = patch.multiple(basic.AnsibleModule, + exit_json=exit_json, + fail_json=fail_json, + get_bin_path=get_bin_path) + self.mock_module_helper.start() + self.addCleanup(self.mock_module_helper.stop) + + def test_module_fail_when_required_args_missing(self): + """ + Testing that command is failing if args are missing + :return: + """ + with self.assertRaises(AnsibleFailJson): + set_module_args({}) + netact_cm_command.main() + self.assertTrue(False) + + def test_ensure_command_called(self): + """ + Testing that command is executed with correct args + :return: + """ + set_module_args({ + 'operation': "Upload", + 'opsName': 'Uploading_testi', + 'DN': "PLMN-PLMN/MRBTS-746", + }) + + with patch.object(basic.AnsibleModule, 'run_command') as mock_run_command: + stdout = 'configuration updated' + stderr = '' + return_code = 0 + mock_run_command.return_value = return_code, stdout, stderr # successful execution + + with self.assertRaises(AnsibleExitJson) as result: + netact_cm_command.main() + print(result.exception.args) + self.assertTrue(result.exception.args[0]['changed']) # ensure result is changed + + mock_run_command.assert_called_once_with( + ['/opt/oss/bin/racclimx.sh', '-op', 'Upload', '-opsName', 'Uploading_testi', + '-DN', 'PLMN-PLMN/MRBTS-746'], + check_rc=True) + + def test_ensure_backupPlanName_outputs_correctly(self): + """ + Testing that command is executed with correct args + :return: + """ + set_module_args({ + 'operation': "Provision", + 'opsName': 'Provision_test', + 'WS': "PLMN-PLMN/MRBTS-746", + 'createBackupPlan': "Yes", + 'backupPlanName': "backupPlanName" + }) + + with patch.object(basic.AnsibleModule, 'run_command') as mock_run_command: + stdout = 'configuration updated' + stderr = '' + return_code = 0 + mock_run_command.return_value = return_code, stdout, stderr # successful execution + + with self.assertRaises(AnsibleExitJson) as result: + netact_cm_command.main() + print(result.exception.args) + self.assertTrue(result.exception.args[0]['changed']) # ensure result is changed + + mock_run_command.assert_called_once_with( + ['/opt/oss/bin/racclimx.sh', '-op', 'Provision', '-opsName', 'Provision_test', + '-WS', 'PLMN-PLMN/MRBTS-746', '-createBackupPlan', 'true', '-backupPlanName', 'backupPlanName'], + check_rc=True) + + def test_withwrongargs(self): + """ + Testing that wrong attribute causing error + :return: + """ + set_module_args({ + 'operation': "Upload", + 'opsName': 'Uploading_testi', + 'MR': "PLMN-PLMN/MRBTS-746", + 'abc': 'abc' + }) + + with self.assertRaises(AnsibleFailJson): + with patch.object(basic.AnsibleModule, 'run_command') as mock_run_command: + stdout = 'configuration updated' + stderr = '' + return_code = 0 + mock_run_command.return_value = return_code, stdout, stderr # successful execution + + with self.assertRaises(AnsibleExitJson) as result: + netact_cm_command.main() + self.assertTrue(result.exception.args[0]['changed']) # ensure result is changed + + self.assertFalse(True) # ensure result is changed diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_cs_action.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_cs_action.py new file mode 100644 index 000000000..498dd91cb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_cs_action.py @@ -0,0 +1,639 @@ + +# Copyright (c) 2017 Citrix Systems +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch, Mock, MagicMock, call +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .netscaler_module import TestModule, nitro_base_patcher + +import sys + +if sys.version_info[:2] != (2, 6): + import requests + + +class TestNetscalerCSActionModule(TestModule): + + @classmethod + def setUpClass(cls): + class MockException(Exception): + pass + + cls.MockException = MockException + + m = MagicMock() + cls.cs_action_mock = MagicMock() + cls.cs_action_mock.__class__ = MagicMock(add=Mock()) + nssrc_modules_mock = { + 'nssrc.com.citrix.netscaler.nitro.resource.config.cs': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.cs.csaction': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.cs.csaction.csaction': cls.cs_action_mock, + } + + cls.nitro_specific_patcher = patch.dict(sys.modules, nssrc_modules_mock) + cls.nitro_base_patcher = nitro_base_patcher + + @classmethod + def tearDownClass(cls): + cls.nitro_base_patcher.stop() + cls.nitro_specific_patcher.stop() + + def setUp(self): + super(TestNetscalerCSActionModule, self).setUp() + + self.nitro_base_patcher.start() + self.nitro_specific_patcher.start() + + # Setup minimal required arguments to pass AnsibleModule argument parsing + + def tearDown(self): + super(TestNetscalerCSActionModule, self).tearDown() + + self.nitro_base_patcher.stop() + self.nitro_specific_patcher.stop() + + def test_graceful_nitro_api_import_error(self): + # Stop nitro api patching to cause ImportError + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + self.nitro_base_patcher.stop() + self.nitro_specific_patcher.stop() + from ansible_collections.community.network.plugins.modules import netscaler_cs_action + self.module = netscaler_cs_action + result = self.failed() + self.assertEqual(result['msg'], 'Could not load nitro python sdk') + + def test_graceful_nitro_error_on_login(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_action + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + client_mock = Mock() + client_mock.login = Mock(side_effect=MockException) + m = Mock(return_value=client_mock) + with patch('ansible_collections.community.network.plugins.modules.netscaler_cs_action.get_nitro_client', m): + with patch('ansible_collections.community.network.plugins.modules.netscaler_cs_action.nitro_exception', MockException): + self.module = netscaler_cs_action + result = self.failed() + self.assertTrue(result['msg'].startswith('nitro exception'), msg='nitro exception during login not handled properly') + + def test_graceful_no_connection_error(self): + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_action + + class MockException(Exception): + pass + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.ConnectionError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_action', + get_nitro_client=m, + nitro_exception=MockException, + ): + self.module = netscaler_cs_action + result = self.failed() + self.assertTrue(result['msg'].startswith('Connection error'), msg='Connection error was not handled gracefully') + + def test_graceful_login_error(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_action + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + + class MockException(Exception): + pass + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.SSLError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_action', + get_nitro_client=m, + nitro_exception=MockException, + ): + self.module = netscaler_cs_action + result = self.failed() + self.assertTrue(result['msg'].startswith('SSL Error'), msg='SSL Error was not handled gracefully') + + def test_save_config_called_on_state_present(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_action + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + cs_action_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_action', + get_nitro_client=m, + action_exists=Mock(side_effect=[False, True]), + ensure_feature_is_enabled=Mock(return_value=True), + diff_list=Mock(return_value={}), + ConfigProxy=Mock(return_value=cs_action_proxy_mock), + ): + self.module = netscaler_cs_action + self.exited() + self.assertIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_called_on_state_absent(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_action + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + cs_action_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_action', + get_nitro_client=m, + action_exists=Mock(side_effect=[True, False]), + ensure_feature_is_enabled=Mock(return_value=True), + ConfigProxy=Mock(return_value=cs_action_proxy_mock), + ): + self.module = netscaler_cs_action + self.exited() + self.assertIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_not_called_on_state_present(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_action + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + cs_action_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_action', + get_nitro_client=m, + action_exists=Mock(side_effect=[False, True]), + diff_list=Mock(return_value={}), + ensure_feature_is_enabled=Mock(return_value=True), + ConfigProxy=Mock(return_value=cs_action_proxy_mock), + ): + self.module = netscaler_cs_action + self.exited() + self.assertNotIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_not_called_on_state_absent(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_action + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + cs_action_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_action', + get_nitro_client=m, + action_exists=Mock(side_effect=[True, False]), + ensure_feature_is_enabled=Mock(return_value=True), + ConfigProxy=Mock(return_value=cs_action_proxy_mock), + ): + self.module = netscaler_cs_action + self.exited() + self.assertNotIn(call.save_config(), client_mock.mock_calls) + + def test_new_cs_action_execution_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_action + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + cs_action_proxy_mock = Mock() + cs_action_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=cs_action_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_action', + get_nitro_client=m, + action_exists=Mock(side_effect=[False, True]), + action_identical=Mock(side_effect=[True]), + ensure_feature_is_enabled=Mock(return_value=True), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_cs_action + self.exited() + cs_action_proxy_mock.assert_has_calls([call.add()]) + + def test_modified_cs_action_execution_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_action + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + cs_action_proxy_mock = Mock() + cs_action_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=cs_action_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_action', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + action_exists=Mock(side_effect=[True, True]), + action_identical=Mock(side_effect=[False, True]), + ensure_feature_is_enabled=Mock(return_value=True), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_cs_action + self.exited() + cs_action_proxy_mock.assert_has_calls([call.update()]) + + def test_absent_cs_action_execution_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_action + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + cs_action_proxy_mock = Mock() + cs_action_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=cs_action_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_action', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + action_exists=Mock(side_effect=[True, False]), + action_identical=Mock(side_effect=[False, True]), + ensure_feature_is_enabled=Mock(return_value=True), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_cs_action + self.exited() + cs_action_proxy_mock.assert_has_calls([call.delete()]) + + def test_present_cs_action_identical_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_action + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + cs_action_proxy_mock = Mock() + cs_action_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=cs_action_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_action', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + action_exists=Mock(side_effect=[True, True]), + action_identical=Mock(side_effect=[True, True]), + ensure_feature_is_enabled=Mock(return_value=True), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_cs_action + self.exited() + cs_action_proxy_mock.assert_not_called() + + def test_absent_cs_action_noop_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_action + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + cs_action_proxy_mock = Mock() + cs_action_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=cs_action_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_action', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + action_exists=Mock(side_effect=[False, False]), + action_identical=Mock(side_effect=[False, False]), + ensure_feature_is_enabled=Mock(return_value=True), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_cs_action + self.exited() + cs_action_proxy_mock.assert_not_called() + + def test_present_cs_action_failed_update(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_action + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + cs_action_proxy_mock = Mock() + cs_action_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=cs_action_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_action', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + action_exists=Mock(side_effect=[True, True]), + action_identical=Mock(side_effect=[False, False]), + ensure_feature_is_enabled=Mock(return_value=True), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_cs_action + result = self.failed() + self.assertEqual(result['msg'], 'Content switching action differs from configured') + self.assertTrue(result['failed']) + + def test_present_cs_action_failed_create(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_action + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + cs_action_proxy_mock = Mock() + cs_action_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=cs_action_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_action', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + action_exists=Mock(side_effect=[False, False]), + action_identical=Mock(side_effect=[False, False]), + ensure_feature_is_enabled=Mock(return_value=True), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_cs_action + result = self.failed() + self.assertEqual(result['msg'], 'Content switching action does not exist') + self.assertTrue(result['failed']) + + def test_present_cs_action_update_immutable_attribute(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_action + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + cs_action_proxy_mock = Mock() + cs_action_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=cs_action_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_action', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=['domain']), + action_exists=Mock(side_effect=[True, True]), + action_identical=Mock(side_effect=[False, False]), + ensure_feature_is_enabled=Mock(return_value=True), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_cs_action + result = self.failed() + self.assertEqual(result['msg'], 'Cannot update immutable attributes [\'domain\']') + self.assertTrue(result['failed']) + + def test_absent_cs_action_failed_delete(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_action + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + cs_action_proxy_mock = Mock() + cs_action_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=cs_action_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_action', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + action_exists=Mock(side_effect=[True, True]), + action_identical=Mock(side_effect=[False, False]), + ensure_feature_is_enabled=Mock(return_value=True), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_cs_action + result = self.failed() + self.assertEqual(result['msg'], 'Content switching action still exists') + self.assertTrue(result['failed']) + + def test_graceful_nitro_exception_state_present(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_action + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + m = Mock(side_effect=MockException) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_action', + action_exists=m, + ensure_feature_is_enabled=Mock(return_value=True), + nitro_exception=MockException + ): + self.module = netscaler_cs_action + result = self.failed() + self.assertTrue( + result['msg'].startswith('nitro exception'), + msg='Nitro exception not caught on operation absent' + ) + + def test_graceful_nitro_exception_state_absent(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_action + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + m = Mock(side_effect=MockException) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_action', + action_exists=m, + ensure_feature_is_enabled=Mock(return_value=True), + nitro_exception=MockException + ): + self.module = netscaler_cs_action + result = self.failed() + self.assertTrue( + result['msg'].startswith('nitro exception'), + msg='Nitro exception not caught on operation absent' + ) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_cs_policy.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_cs_policy.py new file mode 100644 index 000000000..5498e7c49 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_cs_policy.py @@ -0,0 +1,332 @@ + +# Copyright (c) 2017 Citrix Systems +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch, Mock, MagicMock, call + +import sys + +if sys.version_info[:2] != (2, 6): + import requests + + +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .netscaler_module import TestModule, nitro_base_patcher + + +class TestNetscalerCSPolicyModule(TestModule): + + @classmethod + def setUpClass(cls): + class MockException(Exception): + pass + cls.MockException = MockException + m = MagicMock() + nssrc_modules_mock = { + 'nssrc.com.citrix.netscaler.nitro.resource.config.cs': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.cs.cspolicy': m, + } + + cls.nitro_specific_patcher = patch.dict(sys.modules, nssrc_modules_mock) + cls.nitro_base_patcher = nitro_base_patcher + + @classmethod + def tearDownClass(cls): + cls.nitro_base_patcher.stop() + cls.nitro_specific_patcher.stop() + + def set_module_state(self, state): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state=state, + )) + + def setUp(self): + super(TestNetscalerCSPolicyModule, self).setUp() + + self.nitro_base_patcher.start() + self.nitro_specific_patcher.start() + + def tearDown(self): + super(TestNetscalerCSPolicyModule, self).tearDown() + + self.nitro_base_patcher.stop() + self.nitro_specific_patcher.stop() + + def test_graceful_nitro_api_import_error(self): + # Stop nitro api patching to cause ImportError + self.set_module_state('present') + self.nitro_base_patcher.stop() + self.nitro_specific_patcher.stop() + from ansible_collections.community.network.plugins.modules import netscaler_cs_policy + self.module = netscaler_cs_policy + result = self.failed() + self.assertEqual(result['msg'], 'Could not load nitro python sdk') + + def test_graceful_nitro_error_on_login(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_cs_policy + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + client_mock = Mock() + client_mock.login = Mock(side_effect=MockException) + m = Mock(return_value=client_mock) + with patch('ansible_collections.community.network.plugins.modules.netscaler_cs_policy.get_nitro_client', m): + with patch('ansible_collections.community.network.plugins.modules.netscaler_cs_policy.nitro_exception', MockException): + self.module = netscaler_cs_policy + result = self.failed() + self.assertTrue(result['msg'].startswith('nitro exception'), msg='nitro exception during login not handled properly') + + def test_graceful_no_connection_error(self): + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_cs_policy + + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.ConnectionError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_policy', + get_nitro_client=m, + nitro_exception=self.MockException, + ): + self.module = netscaler_cs_policy + result = self.failed() + self.assertTrue(result['msg'].startswith('Connection error'), msg='Connection error was not handled gracefully') + + def test_graceful_login_error(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_cs_policy + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + + class MockException(Exception): + pass + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.SSLError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_policy', + get_nitro_client=m, + nitro_exception=MockException, + ): + self.module = netscaler_cs_policy + result = self.failed() + self.assertTrue(result['msg'].startswith('SSL Error'), msg='SSL Error was not handled gracefully') + + def test_create_non_existing_cs_policy(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_cs_policy + cs_policy_mock = MagicMock() + attrs = { + 'diff_object.return_value': {}, + } + cs_policy_mock.configure_mock(**attrs) + + m = MagicMock(return_value=cs_policy_mock) + policy_exists_mock = Mock(side_effect=[False, True]) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_policy', + ConfigProxy=m, + policy_exists=policy_exists_mock, + nitro_exception=self.MockException, + ensure_feature_is_enabled=Mock(), + ): + self.module = netscaler_cs_policy + result = self.exited() + cs_policy_mock.assert_has_calls([call.add()]) + self.assertTrue(result['changed'], msg='Change not recorded') + + def test_update_cs_policy_when_cs_policy_differs(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_cs_policy + cs_policy_mock = MagicMock() + attrs = { + 'diff_object.return_value': {}, + } + cs_policy_mock.configure_mock(**attrs) + + m = MagicMock(return_value=cs_policy_mock) + policy_exists_mock = Mock(side_effect=[True, True]) + policy_identical_mock = Mock(side_effect=[False, True]) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_policy', + ConfigProxy=m, + policy_exists=policy_exists_mock, + policy_identical=policy_identical_mock, + ensure_feature_is_enabled=Mock(), + nitro_exception=self.MockException, + ): + self.module = netscaler_cs_policy + result = self.exited() + cs_policy_mock.assert_has_calls([call.update()]) + self.assertTrue(result['changed'], msg='Change not recorded') + + def test_no_change_to_module_when_all_identical(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_cs_policy + cs_policy_mock = MagicMock() + attrs = { + 'diff_object.return_value': {}, + } + cs_policy_mock.configure_mock(**attrs) + + m = MagicMock(return_value=cs_policy_mock) + policy_exists_mock = Mock(side_effect=[True, True]) + policy_identical_mock = Mock(side_effect=[True, True]) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_policy', + ConfigProxy=m, + policy_exists=policy_exists_mock, + policy_identical=policy_identical_mock, + ensure_feature_is_enabled=Mock(), + nitro_exception=self.MockException, + ): + self.module = netscaler_cs_policy + result = self.exited() + self.assertFalse(result['changed'], msg='Erroneous changed status update') + + def test_absent_operation(self): + self.set_module_state('absent') + from ansible_collections.community.network.plugins.modules import netscaler_cs_policy + cs_policy_mock = MagicMock() + attrs = { + 'diff_object.return_value': {}, + } + cs_policy_mock.configure_mock(**attrs) + + m = MagicMock(return_value=cs_policy_mock) + policy_exists_mock = Mock(side_effect=[True, False]) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_policy', + ConfigProxy=m, + policy_exists=policy_exists_mock, + nitro_exception=self.MockException, + ensure_feature_is_enabled=Mock(), + + ): + self.module = netscaler_cs_policy + result = self.exited() + cs_policy_mock.assert_has_calls([call.delete()]) + self.assertTrue(result['changed'], msg='Changed status not set correctly') + + def test_absent_operation_no_change(self): + self.set_module_state('absent') + from ansible_collections.community.network.plugins.modules import netscaler_cs_policy + cs_policy_mock = MagicMock() + attrs = { + 'diff_object.return_value': {}, + } + cs_policy_mock.configure_mock(**attrs) + + m = MagicMock(return_value=cs_policy_mock) + policy_exists_mock = Mock(side_effect=[False, False]) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_policy', + ConfigProxy=m, + policy_exists=policy_exists_mock, + nitro_exception=self.MockException, + ensure_feature_is_enabled=Mock(), + + ): + self.module = netscaler_cs_policy + result = self.exited() + cs_policy_mock.assert_not_called() + self.assertFalse(result['changed'], msg='Changed status not set correctly') + + def test_graceful_nitro_exception_operation_present(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_cs_policy + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + m = Mock(side_effect=MockException) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_policy', + policy_exists=m, + ensure_feature_is_enabled=Mock(), + nitro_exception=MockException + ): + self.module = netscaler_cs_policy + result = self.failed() + self.assertTrue( + result['msg'].startswith('nitro exception'), + msg='Nitro exception not caught on operation present' + ) + + def test_graceful_nitro_exception_operation_absent(self): + self.set_module_state('absent') + from ansible_collections.community.network.plugins.modules import netscaler_cs_policy + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + m = Mock(side_effect=MockException) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_policy', + policy_exists=m, + nitro_exception=MockException, + ensure_feature_is_enabled=Mock(), + ): + self.module = netscaler_cs_policy + result = self.failed() + self.assertTrue( + result['msg'].startswith('nitro exception'), + msg='Nitro exception not caught on operation absent' + ) + + def test_ensure_feature_is_enabled_called(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_cs_policy + + client_mock = Mock() + ensure_feature_is_enabled_mock = Mock() + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_policy', + get_nitro_client=Mock(return_value=client_mock), + policy_exists=Mock(side_effect=[True, True]), + nitro_exception=self.MockException, + ensure_feature_is_enabled=ensure_feature_is_enabled_mock, + ): + self.module = netscaler_cs_policy + result = self.exited() + ensure_feature_is_enabled_mock.assert_has_calls([call(client_mock, 'CS')]) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_cs_vserver.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_cs_vserver.py new file mode 100644 index 000000000..62cf1193e --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_cs_vserver.py @@ -0,0 +1,768 @@ + +# Copyright (c) 2017 Citrix Systems +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch, Mock, MagicMock, call +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .netscaler_module import TestModule, nitro_base_patcher + +import sys + +if sys.version_info[:2] != (2, 6): + import requests + + +class TestNetscalerCSVserverModule(TestModule): + + @classmethod + def setUpClass(cls): + class MockException(Exception): + pass + + cls.MockException = MockException + + m = MagicMock() + cls.cs_vserver_mock = MagicMock() + cls.cs_vserver_mock.__class__ = MagicMock(add=Mock()) + nssrc_modules_mock = { + 'nssrc.com.citrix.netscaler.nitro.resource.config.cs': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.cs.csvserver': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.cs.csvserver.csvserver': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.cs.csvserver_cspolicy_binding': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.cs.csvserver_cspolicy_binding.csvserver_cspolicy_binding': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.cs.csvserver_lbvserver_binding': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.cs.csvserver_lbvserver_binding.csvserver_lbvserver_binding': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.ssl': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.ssl.sslvserver_sslcertkey_binding': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.ssl.sslvserver_sslcertkey_binding.sslvserver_sslcertkey_binding': m, + } + + cls.nitro_specific_patcher = patch.dict(sys.modules, nssrc_modules_mock) + cls.nitro_base_patcher = nitro_base_patcher + + @classmethod + def tearDownClass(cls): + cls.nitro_base_patcher.stop() + cls.nitro_specific_patcher.stop() + + def setUp(self): + super(TestNetscalerCSVserverModule, self).setUp() + + self.nitro_base_patcher.start() + self.nitro_specific_patcher.start() + + # Setup minimal required arguments to pass AnsibleModule argument parsing + + def tearDown(self): + super(TestNetscalerCSVserverModule, self).tearDown() + + self.nitro_base_patcher.stop() + self.nitro_specific_patcher.stop() + + def test_graceful_nitro_api_import_error(self): + # Stop nitro api patching to cause ImportError + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + self.nitro_base_patcher.stop() + self.nitro_specific_patcher.stop() + from ansible_collections.community.network.plugins.modules import netscaler_cs_vserver + self.module = netscaler_cs_vserver + result = self.failed() + self.assertEqual(result['msg'], 'Could not load nitro python sdk') + + def test_graceful_nitro_error_on_login(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_vserver + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + client_mock = Mock() + client_mock.login = Mock(side_effect=MockException) + m = Mock(return_value=client_mock) + with patch('ansible_collections.community.network.plugins.modules.netscaler_cs_vserver.get_nitro_client', m): + with patch('ansible_collections.community.network.plugins.modules.netscaler_cs_vserver.nitro_exception', MockException): + self.module = netscaler_cs_vserver + result = self.failed() + self.assertTrue(result['msg'].startswith('nitro exception'), msg='nitro exception during login not handled properly') + + def test_graceful_no_connection_error(self): + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_vserver + + class MockException(Exception): + pass + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.ConnectionError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_vserver', + get_nitro_client=m, + nitro_exception=MockException, + ): + self.module = netscaler_cs_vserver + result = self.failed() + self.assertTrue(result['msg'].startswith('Connection error'), msg='Connection error was not handled gracefully') + + def test_graceful_login_error(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_vserver + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + + class MockException(Exception): + pass + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.SSLError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_vserver', + get_nitro_client=m, + nitro_exception=MockException, + ): + self.module = netscaler_cs_vserver + result = self.failed() + self.assertTrue(result['msg'].startswith('SSL Error'), msg='SSL Error was not handled gracefully') + + def test_save_config_called_on_state_present(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + cs_vserver_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_vserver', + get_nitro_client=m, + cs_vserver_exists=Mock(side_effect=[False, True]), + cs_vserver_identical=Mock(side_effect=[True]), + ensure_feature_is_enabled=Mock(return_value=True), + diff_list=Mock(return_value={}), + nitro_exception=self.MockException, + do_state_change=Mock(return_value=Mock(errorcode=0)), + ConfigProxy=Mock(return_value=cs_vserver_proxy_mock), + ): + self.module = netscaler_cs_vserver + self.exited() + self.assertIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_called_on_state_absent(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + cs_vserver_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_vserver', + get_nitro_client=m, + cs_vserver_exists=Mock(side_effect=[True, False]), + ensure_feature_is_enabled=Mock(return_value=True), + ConfigProxy=Mock(return_value=cs_vserver_proxy_mock), + ): + self.module = netscaler_cs_vserver + self.exited() + self.assertIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_not_called_on_state_present(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + cs_vserver_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_vserver', + get_nitro_client=m, + cs_vserver_exists=Mock(side_effect=[False, True]), + cs_vserver_identical=Mock(side_effect=[True]), + diff_list=Mock(return_value={}), + ensure_feature_is_enabled=Mock(return_value=True), + do_state_change=Mock(return_value=Mock(errorcode=0)), + nitro_exception=self.MockException, + ConfigProxy=Mock(return_value=cs_vserver_proxy_mock), + ): + self.module = netscaler_cs_vserver + self.exited() + self.assertNotIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_not_called_on_state_absent(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + cs_vserver_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_vserver', + get_nitro_client=m, + cs_vserver_exists=Mock(side_effect=[True, False]), + ensure_feature_is_enabled=Mock(return_value=True), + ConfigProxy=Mock(return_value=cs_vserver_proxy_mock), + ): + self.module = netscaler_cs_vserver + self.exited() + self.assertNotIn(call.save_config(), client_mock.mock_calls) + + def test_new_cs_vserver_execution_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + cs_vserver_proxy_mock = Mock() + cs_vserver_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=cs_vserver_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_vserver', + get_nitro_client=m, + cs_vserver_exists=Mock(side_effect=[False, True]), + cs_vserver_identical=Mock(side_effect=[True]), + ensure_feature_is_enabled=Mock(return_value=True), + ConfigProxy=config_proxy_mock, + nitro_exception=self.MockException, + do_state_change=Mock(return_value=Mock(errorcode=0)), + ): + self.module = netscaler_cs_vserver + self.exited() + cs_vserver_proxy_mock.assert_has_calls([call.add()]) + + def test_modified_cs_vserver_execution_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + cs_vserver_proxy_mock = Mock() + cs_vserver_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=cs_vserver_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_vserver', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + cs_vserver_exists=Mock(side_effect=[True, True]), + cs_vserver_identical=Mock(side_effect=[False, True]), + ensure_feature_is_enabled=Mock(return_value=True), + nitro_exception=self.MockException, + do_state_change=Mock(return_value=Mock(errorcode=0)), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_cs_vserver + self.exited() + cs_vserver_proxy_mock.assert_has_calls([call.update()]) + + def test_absent_cs_vserver_execution_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + cs_vserver_proxy_mock = Mock() + cs_vserver_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=cs_vserver_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_vserver', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + cs_vserver_exists=Mock(side_effect=[True, False]), + cs_vserver_identical=Mock(side_effect=[False, True]), + ensure_feature_is_enabled=Mock(return_value=True), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_cs_vserver + self.exited() + cs_vserver_proxy_mock.assert_has_calls([call.delete()]) + + def test_present_cs_vserver_identical_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + cs_vserver_proxy_mock = Mock() + cs_vserver_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=cs_vserver_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_vserver', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + cs_vserver_exists=Mock(side_effect=[True, True]), + cs_vserver_identical=Mock(side_effect=[True, True]), + ensure_feature_is_enabled=Mock(return_value=True), + do_state_change=Mock(return_value=Mock(errorcode=0)), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_cs_vserver + self.exited() + cs_vserver_proxy_mock.assert_not_called() + + def test_absent_cs_vserver_noop_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + cs_vserver_proxy_mock = Mock() + cs_vserver_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=cs_vserver_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_vserver', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + cs_vserver_exists=Mock(side_effect=[False, False]), + cs_vserver_identical=Mock(side_effect=[False, False]), + ensure_feature_is_enabled=Mock(return_value=True), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_cs_vserver + self.exited() + cs_vserver_proxy_mock.assert_not_called() + + def test_present_cs_vserver_failed_update(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + cs_vserver_proxy_mock = Mock() + cs_vserver_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=cs_vserver_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_vserver', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + cs_vserver_exists=Mock(side_effect=[True, True]), + cs_vserver_identical=Mock(side_effect=[False, False]), + ensure_feature_is_enabled=Mock(return_value=True), + do_state_change=Mock(return_value=Mock(errorcode=0)), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_cs_vserver + result = self.failed() + self.assertEqual(result['msg'], 'CS vserver differs from configured') + self.assertTrue(result['failed']) + + def test_present_cs_vserver_failed_create(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + cs_vserver_proxy_mock = Mock() + cs_vserver_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=cs_vserver_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_vserver', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + cs_vserver_exists=Mock(side_effect=[False, False]), + cs_vserver_identical=Mock(side_effect=[False, False]), + ensure_feature_is_enabled=Mock(return_value=True), + do_state_change=Mock(return_value=Mock(errorcode=0)), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_cs_vserver + result = self.failed() + self.assertEqual(result['msg'], 'CS vserver does not exist') + self.assertTrue(result['failed']) + + def test_present_cs_vserver_update_immutable_attribute(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + cs_vserver_proxy_mock = Mock() + cs_vserver_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=cs_vserver_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_vserver', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=['domain']), + cs_vserver_exists=Mock(side_effect=[True, True]), + cs_vserver_identical=Mock(side_effect=[False, False]), + ensure_feature_is_enabled=Mock(return_value=True), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_cs_vserver + result = self.failed() + self.assertEqual(result['msg'], 'Cannot update immutable attributes [\'domain\']') + self.assertTrue(result['failed']) + + def test_absent_cs_vserver_failed_delete(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + cs_vserver_proxy_mock = Mock() + cs_vserver_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=cs_vserver_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_vserver', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + cs_vserver_exists=Mock(side_effect=[True, True]), + cs_vserver_identical=Mock(side_effect=[False, False]), + ensure_feature_is_enabled=Mock(return_value=True), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_cs_vserver + result = self.failed() + self.assertEqual(result['msg'], 'CS vserver still exists') + self.assertTrue(result['failed']) + + def test_graceful_nitro_exception_state_present(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_vserver + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + m = Mock(side_effect=MockException) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_vserver', + cs_vserver_exists=m, + ensure_feature_is_enabled=Mock(return_value=True), + nitro_exception=MockException + ): + self.module = netscaler_cs_vserver + result = self.failed() + self.assertTrue( + result['msg'].startswith('nitro exception'), + msg='Nitro exception not caught on operation absent' + ) + + def test_graceful_nitro_exception_state_absent(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_vserver + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + m = Mock(side_effect=MockException) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_vserver', + cs_vserver_exists=m, + ensure_feature_is_enabled=Mock(return_value=True), + nitro_exception=MockException + ): + self.module = netscaler_cs_vserver + result = self.failed() + self.assertTrue( + result['msg'].startswith('nitro exception'), + msg='Nitro exception not caught on operation absent' + ) + + def test_disabled_state_change_called(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + + from ansible_collections.community.network.plugins.modules import netscaler_cs_vserver + + cs_vserver_proxy_mock = Mock() + + do_state_change_mock = Mock(return_value=Mock(errorcode=0)) + client_mock = Mock() + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_vserver', + get_nitro_client=Mock(return_value=client_mock), + ConfigProxy=Mock(return_value=cs_vserver_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + cs_vserver_exists=Mock(side_effect=[True, True]), + cs_vserver_identical=Mock(side_effect=[True, True]), + nitro_exception=self.MockException, + do_state_change=do_state_change_mock, + ): + self.module = netscaler_cs_vserver + self.exited() + self.assertTrue(len(do_state_change_mock.mock_calls) > 0, msg='Did not call state change') + + def test_cs_vserver_ssl_called(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + servicetype='SSL', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + cs_vserver_proxy_mock = Mock() + cs_vserver_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=cs_vserver_proxy_mock) + ssl_certkey_bindings_sync_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_vserver', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + cs_vserver_exists=Mock(side_effect=[True, True]), + cs_vserver_identical=Mock(side_effect=[False, True]), + ensure_feature_is_enabled=Mock(return_value=True), + ssl_certkey_bindings_identical=Mock(side_effect=[False, True]), + ssl_certkey_bindings_sync=ssl_certkey_bindings_sync_mock, + do_state_change=Mock(return_value=Mock(errorcode=0)), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_cs_vserver + result = self.exited() + self.assertTrue(result['changed']) + self.assertTrue(ssl_certkey_bindings_sync_mock.called) + + def test_cs_vserver_ssl_not_called(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_cs_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + cs_vserver_proxy_mock = Mock() + cs_vserver_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=cs_vserver_proxy_mock) + ssl_certkey_bindings_sync_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_cs_vserver', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + cs_vserver_exists=Mock(side_effect=[True, True]), + cs_vserver_identical=Mock(side_effect=[False, True]), + ensure_feature_is_enabled=Mock(return_value=True), + ssl_certkey_bindings_identical=Mock(side_effect=[False, True]), + ssl_certkey_bindings_sync=ssl_certkey_bindings_sync_mock, + do_state_change=Mock(return_value=Mock(errorcode=0)), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_cs_vserver + result = self.exited() + self.assertTrue(result['changed']) + self.assertFalse(ssl_certkey_bindings_sync_mock.called) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_gslb_service.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_gslb_service.py new file mode 100644 index 000000000..6edb9f704 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_gslb_service.py @@ -0,0 +1,738 @@ + +# Copyright (c) 2017 Citrix Systems +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch, Mock, MagicMock, call +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .netscaler_module import TestModule, nitro_base_patcher + +import sys + +if sys.version_info[:2] != (2, 6): + import requests + + +class TestNetscalerGSLBSiteModule(TestModule): + + @classmethod + def setUpClass(cls): + class MockException(Exception): + pass + + cls.MockException = MockException + + m = MagicMock() + nssrc_modules_mock = { + 'nssrc.com.citrix.netscaler.nitro.resource.config.gslb': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.gslb.gslbservice': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.gslb.gslbservice.gslbservice': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.gslb.gslbservice_lbmonitor_binding': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.gslb.gslbservice_lbmonitor_binding.gslbservice_lbmonitor_binding': m, + + # The following are needed because of monkey_patch_nitro_api() + 'nssrc.com.citrix.netscaler.nitro.resource.base': m, + 'nssrc.com.citrix.netscaler.nitro.resource.base.Json': m, + 'nssrc.com.citrix.netscaler.nitro.resource.base.Json.Json': m, + 'nssrc.com.citrix.netscaler.nitro.util': m, + 'nssrc.com.citrix.netscaler.nitro.util.nitro_util': m, + 'nssrc.com.citrix.netscaler.nitro.util.nitro_util.nitro_util': m, + } + + cls.nitro_specific_patcher = patch.dict(sys.modules, nssrc_modules_mock) + cls.nitro_base_patcher = nitro_base_patcher + + @classmethod + def tearDownClass(cls): + cls.nitro_base_patcher.stop() + cls.nitro_specific_patcher.stop() + + def setUp(self): + super(TestNetscalerGSLBSiteModule, self).setUp() + + self.nitro_base_patcher.start() + self.nitro_specific_patcher.start() + + # Setup minimal required arguments to pass AnsibleModule argument parsing + + def tearDown(self): + super(TestNetscalerGSLBSiteModule, self).tearDown() + + self.nitro_base_patcher.stop() + self.nitro_specific_patcher.stop() + + def test_graceful_nitro_api_import_error(self): + # Stop nitro api patching to cause ImportError + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + self.nitro_base_patcher.stop() + self.nitro_specific_patcher.stop() + from ansible_collections.community.network.plugins.modules import netscaler_gslb_service + self.module = netscaler_gslb_service + result = self.failed() + self.assertEqual(result['msg'], 'Could not load nitro python sdk') + + def test_graceful_nitro_error_on_login(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_service + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + client_mock = Mock() + client_mock.login = Mock(side_effect=MockException) + m = Mock(return_value=client_mock) + with patch('ansible_collections.community.network.plugins.modules.netscaler_gslb_service.get_nitro_client', m): + with patch('ansible_collections.community.network.plugins.modules.netscaler_gslb_service.nitro_exception', MockException): + self.module = netscaler_gslb_service + result = self.failed() + self.assertTrue(result['msg'].startswith('nitro exception'), msg='nitro exception during login not handled properly') + + def test_graceful_no_connection_error(self): + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_service + + class MockException(Exception): + pass + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.ConnectionError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_service', + get_nitro_client=m, + nitro_exception=MockException, + ): + self.module = netscaler_gslb_service + result = self.failed() + self.assertTrue(result['msg'].startswith('Connection error'), msg='Connection error was not handled gracefully') + + def test_graceful_login_error(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_service + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + + class MockException(Exception): + pass + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.SSLError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_service', + get_nitro_client=m, + monkey_patch_nitro_api=Mock(), + nitro_exception=MockException, + ): + self.module = netscaler_gslb_service + result = self.failed() + self.assertTrue(result['msg'].startswith('SSL Error'), msg='SSL Error was not handled gracefully') + + def test_ensure_feature_is_enabled_called(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_service + + gslb_service_proxy_mock = Mock() + ensure_feature_is_enabled_mock = Mock() + client_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_service', + get_nitro_client=Mock(return_value=client_mock), + gslb_service_exists=Mock(side_effect=[False, True]), + gslb_service_identical=Mock(side_effect=[True]), + nitro_exception=self.MockException, + ensure_feature_is_enabled=ensure_feature_is_enabled_mock, + monkey_patch_nitro_api=Mock(), + ConfigProxy=Mock(return_value=gslb_service_proxy_mock), + ): + self.module = netscaler_gslb_service + self.exited() + ensure_feature_is_enabled_mock.assert_called_with(client_mock, 'GSLB') + + def test_save_config_called_on_state_present(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_service + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + gslb_service_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_service', + get_nitro_client=m, + gslb_service_exists=Mock(side_effect=[False, True]), + gslb_service_identical=Mock(side_effect=[True]), + nitro_exception=self.MockException, + ensure_feature_is_enabled=Mock(), + monkey_patch_nitro_api=Mock(), + ConfigProxy=Mock(return_value=gslb_service_proxy_mock), + ): + self.module = netscaler_gslb_service + self.exited() + self.assertIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_called_on_state_absent(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_service + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + gslb_service_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_service', + get_nitro_client=m, + gslb_service_exists=Mock(side_effect=[True, False]), + nitro_exception=self.MockException, + ensure_feature_is_enabled=Mock(), + monkey_patch_nitro_api=Mock(), + ConfigProxy=Mock(return_value=gslb_service_proxy_mock), + ): + self.module = netscaler_gslb_service + self.exited() + self.assertIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_not_called_on_state_present(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_service + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + gslb_service_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_service', + get_nitro_client=m, + gslb_service_exists=Mock(side_effect=[False, True]), + gslb_service_identical=Mock(side_effect=[True]), + nitro_exception=self.MockException, + ensure_feature_is_enabled=Mock(), + monkey_patch_nitro_api=Mock(), + ConfigProxy=Mock(return_value=gslb_service_proxy_mock), + ): + self.module = netscaler_gslb_service + self.exited() + self.assertNotIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_not_called_on_state_absent(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_service + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + gslb_service_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_service', + get_nitro_client=m, + gslb_service_exists=Mock(side_effect=[True, False]), + nitro_exception=self.MockException, + ensure_feature_is_enabled=Mock(), + monkey_patch_nitro_api=Mock(), + ConfigProxy=Mock(return_value=gslb_service_proxy_mock), + ): + self.module = netscaler_gslb_service + self.exited() + self.assertNotIn(call.save_config(), client_mock.mock_calls) + + def test_new_gslb_site_execution_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_service + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_service_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_service_proxy_mock = Mock() + gslb_service_proxy_mock.configure_mock(**glsb_service_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_service_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_service', + get_nitro_client=m, + gslb_service_exists=Mock(side_effect=[False, True]), + gslb_service_identical=Mock(side_effect=[True]), + nitro_exception=self.MockException, + ensure_feature_is_enabled=Mock(), + monkey_patch_nitro_api=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_service + self.exited() + gslb_service_proxy_mock.assert_has_calls([call.add()]) + + def test_modified_gslb_site_execution_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_service + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_service_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_service_proxy_mock = Mock() + gslb_service_proxy_mock.configure_mock(**glsb_service_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_service_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_service', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + gslb_service_exists=Mock(side_effect=[True, True]), + gslb_service_identical=Mock(side_effect=[False, False, True]), + monitor_bindings_identical=Mock(side_effect=[True, True, True]), + ensure_feature_is_enabled=Mock(), + monkey_patch_nitro_api=Mock(), + nitro_exception=self.MockException, + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_service + self.exited() + gslb_service_proxy_mock.assert_has_calls([call.update()]) + + def test_absent_gslb_site_execution_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_service + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_service_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_service_proxy_mock = Mock() + gslb_service_proxy_mock.configure_mock(**glsb_service_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_service_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_service', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + gslb_service_exists=Mock(side_effect=[True, False]), + gslb_service_identical=Mock(side_effect=[False, True]), + ensure_feature_is_enabled=Mock(), + monkey_patch_nitro_api=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_service + self.exited() + gslb_service_proxy_mock.assert_has_calls([call.delete()]) + + def test_present_gslb_service_identical_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_service + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_service_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_service_proxy_mock = Mock() + gslb_service_proxy_mock.configure_mock(**glsb_service_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_service_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_service', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + gslb_service_exists=Mock(side_effect=[True, True]), + gslb_service_identical=Mock(side_effect=[True, True]), + nitro_exception=self.MockException, + ensure_feature_is_enabled=Mock(), + monkey_patch_nitro_api=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_service + self.exited() + gslb_service_proxy_mock.assert_not_called() + + def test_absent_gslb_site_noop_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_service + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_service_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_service_proxy_mock = Mock() + gslb_service_proxy_mock.configure_mock(**glsb_service_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_service_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_service', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + gslb_service_exists=Mock(side_effect=[False, False]), + gslb_service_identical=Mock(side_effect=[False, False]), + nitro_exception=self.MockException, + ensure_feature_is_enabled=Mock(), + monkey_patch_nitro_api=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_service + self.exited() + gslb_service_proxy_mock.assert_not_called() + + def test_present_gslb_site_failed_update(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_service + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_service_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_service_proxy_mock = Mock() + gslb_service_proxy_mock.configure_mock(**glsb_service_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_service_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_service', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + gslb_service_exists=Mock(side_effect=[True, True]), + gslb_service_identical=Mock(side_effect=[False, False, False]), + monitor_bindings_identical=Mock(side_effect=[True, True, True]), + ensure_feature_is_enabled=Mock(), + monkey_patch_nitro_api=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_service + result = self.failed() + self.assertEqual(result['msg'], 'GSLB service differs from configured') + self.assertTrue(result['failed']) + + def test_present_gslb_site_failed_monitor_bindings_update(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_service + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_service_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_service_proxy_mock = Mock() + gslb_service_proxy_mock.configure_mock(**glsb_service_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_service_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_service', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + gslb_service_exists=Mock(side_effect=[True, True]), + gslb_service_identical=Mock(side_effect=[False, False, True]), + monitor_bindings_identical=Mock(side_effect=[False, False, False]), + ensure_feature_is_enabled=Mock(), + monkey_patch_nitro_api=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_service + result = self.failed() + self.assertEqual(result['msg'], 'Monitor bindings differ from configured') + self.assertTrue(result['failed']) + + def test_present_gslb_site_failed_create(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_service + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_service_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_service_proxy_mock = Mock() + gslb_service_proxy_mock.configure_mock(**glsb_service_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_service_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_service', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + gslb_service_exists=Mock(side_effect=[False, False]), + gslb_service_identical=Mock(side_effect=[False, False]), + ensure_feature_is_enabled=Mock(), + monkey_patch_nitro_api=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_service + result = self.failed() + self.assertEqual(result['msg'], 'GSLB service does not exist') + self.assertTrue(result['failed']) + + def test_present_gslb_site_update_immutable_attribute(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_service + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_service_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_service_proxy_mock = Mock() + gslb_service_proxy_mock.configure_mock(**glsb_service_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_service_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_service', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=['domain']), + gslb_service_exists=Mock(side_effect=[True, True]), + gslb_service_identical=Mock(side_effect=[False, False]), + ensure_feature_is_enabled=Mock(), + monkey_patch_nitro_api=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_service + result = self.failed() + self.assertEqual(result['msg'], 'Cannot update immutable attributes [\'domain\']') + self.assertTrue(result['failed']) + + def test_absent_gslb_site_failed_delete(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_service + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_service_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_service_proxy_mock = Mock() + gslb_service_proxy_mock.configure_mock(**glsb_service_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_service_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_service', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + gslb_service_exists=Mock(side_effect=[True, True]), + gslb_service_identical=Mock(side_effect=[False, False]), + ensure_feature_is_enabled=Mock(), + monkey_patch_nitro_api=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_service + result = self.failed() + self.assertEqual(result['msg'], 'GSLB service still exists') + self.assertTrue(result['failed']) + + def test_graceful_nitro_exception_state_present(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_service + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + m = Mock(side_effect=MockException) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_service', + gslb_service_exists=m, + ensure_feature_is_enabled=Mock(), + monkey_patch_nitro_api=Mock(), + nitro_exception=MockException + ): + self.module = netscaler_gslb_service + result = self.failed() + self.assertTrue( + result['msg'].startswith('nitro exception'), + msg='Nitro exception not caught on operation absent' + ) + + def test_graceful_nitro_exception_state_absent(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_service + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + m = Mock(side_effect=MockException) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_service', + gslb_service_exists=m, + ensure_feature_is_enabled=Mock(), + monkey_patch_nitro_api=Mock(), + nitro_exception=MockException + ): + self.module = netscaler_gslb_service + result = self.failed() + self.assertTrue( + result['msg'].startswith('nitro exception'), + msg='Nitro exception not caught on operation absent' + ) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_gslb_site.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_gslb_site.py new file mode 100644 index 000000000..90b7b4aa5 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_gslb_site.py @@ -0,0 +1,671 @@ + +# Copyright (c) 2017 Citrix Systems +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch, Mock, MagicMock, call +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .netscaler_module import TestModule, nitro_base_patcher + +import sys + +if sys.version_info[:2] != (2, 6): + import requests + + +class TestNetscalerGSLBSiteModule(TestModule): + + @classmethod + def setUpClass(cls): + class MockException(Exception): + pass + + cls.MockException = MockException + + m = MagicMock() + nssrc_modules_mock = { + 'nssrc.com.citrix.netscaler.nitro.resource.config.gslb': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.gslb.gslbsite': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.gslb.gslbsite.gslbsite': m, + } + + cls.nitro_specific_patcher = patch.dict(sys.modules, nssrc_modules_mock) + cls.nitro_base_patcher = nitro_base_patcher + + @classmethod + def tearDownClass(cls): + cls.nitro_base_patcher.stop() + cls.nitro_specific_patcher.stop() + + def setUp(self): + super(TestNetscalerGSLBSiteModule, self).setUp() + + self.nitro_base_patcher.start() + self.nitro_specific_patcher.start() + + # Setup minimal required arguments to pass AnsibleModule argument parsing + + def tearDown(self): + super(TestNetscalerGSLBSiteModule, self).tearDown() + + self.nitro_base_patcher.stop() + self.nitro_specific_patcher.stop() + + def test_graceful_nitro_api_import_error(self): + # Stop nitro api patching to cause ImportError + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + self.nitro_base_patcher.stop() + self.nitro_specific_patcher.stop() + from ansible_collections.community.network.plugins.modules import netscaler_gslb_site + self.module = netscaler_gslb_site + result = self.failed() + self.assertEqual(result['msg'], 'Could not load nitro python sdk') + + def test_graceful_nitro_error_on_login(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_site + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + client_mock = Mock() + client_mock.login = Mock(side_effect=MockException) + m = Mock(return_value=client_mock) + with patch('ansible_collections.community.network.plugins.modules.netscaler_gslb_site.get_nitro_client', m): + with patch('ansible_collections.community.network.plugins.modules.netscaler_gslb_site.nitro_exception', MockException): + self.module = netscaler_gslb_site + result = self.failed() + self.assertTrue(result['msg'].startswith('nitro exception'), msg='nitro exception during login not handled properly') + + def test_graceful_no_connection_error(self): + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_site + + class MockException(Exception): + pass + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.ConnectionError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_site', + get_nitro_client=m, + nitro_exception=MockException, + ): + self.module = netscaler_gslb_site + result = self.failed() + self.assertTrue(result['msg'].startswith('Connection error'), msg='Connection error was not handled gracefully') + + def test_graceful_login_error(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_site + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + + class MockException(Exception): + pass + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.SSLError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_site', + get_nitro_client=m, + nitro_exception=MockException, + ): + self.module = netscaler_gslb_site + result = self.failed() + self.assertTrue(result['msg'].startswith('SSL Error'), msg='SSL Error was not handled gracefully') + + def test_ensure_feature_is_enabled_called(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_site + + gslb_site_proxy_mock = Mock() + ensure_feature_is_enabled_mock = Mock() + client_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_site', + get_nitro_client=Mock(return_value=client_mock), + gslb_site_exists=Mock(side_effect=[False, True]), + gslb_site_identical=Mock(side_effect=[True]), + nitro_exception=self.MockException, + ensure_feature_is_enabled=ensure_feature_is_enabled_mock, + ConfigProxy=Mock(return_value=gslb_site_proxy_mock), + ): + self.module = netscaler_gslb_site + self.exited() + ensure_feature_is_enabled_mock.assert_called_with(client_mock, 'GSLB') + + def test_save_config_called_on_state_present(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_site + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + gslb_site_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_site', + get_nitro_client=m, + gslb_site_exists=Mock(side_effect=[False, True]), + gslb_site_identical=Mock(side_effect=[True]), + nitro_exception=self.MockException, + ensure_feature_is_enabled=Mock(), + ConfigProxy=Mock(return_value=gslb_site_proxy_mock), + ): + self.module = netscaler_gslb_site + self.exited() + self.assertIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_called_on_state_absent(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_site + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + gslb_site_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_site', + get_nitro_client=m, + gslb_site_exists=Mock(side_effect=[True, False]), + nitro_exception=self.MockException, + ensure_feature_is_enabled=Mock(), + ConfigProxy=Mock(return_value=gslb_site_proxy_mock), + ): + self.module = netscaler_gslb_site + self.exited() + self.assertIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_not_called_on_state_present(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_site + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + gslb_site_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_site', + get_nitro_client=m, + gslb_site_exists=Mock(side_effect=[False, True]), + gslb_site_identical=Mock(side_effect=[True]), + nitro_exception=self.MockException, + ensure_feature_is_enabled=Mock(), + ConfigProxy=Mock(return_value=gslb_site_proxy_mock), + ): + self.module = netscaler_gslb_site + self.exited() + self.assertNotIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_not_called_on_state_absent(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_site + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + gslb_site_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_site', + get_nitro_client=m, + gslb_site_exists=Mock(side_effect=[True, False]), + nitro_exception=self.MockException, + ensure_feature_is_enabled=Mock(), + ConfigProxy=Mock(return_value=gslb_site_proxy_mock), + ): + self.module = netscaler_gslb_site + self.exited() + self.assertNotIn(call.save_config(), client_mock.mock_calls) + + def test_new_gslb_site_execution_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_site + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_site_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_site_proxy_mock = Mock() + gslb_site_proxy_mock.configure_mock(**glsb_site_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_site_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_site', + get_nitro_client=m, + gslb_site_exists=Mock(side_effect=[False, True]), + gslb_site_identical=Mock(side_effect=[True]), + nitro_exception=self.MockException, + ensure_feature_is_enabled=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_site + self.exited() + gslb_site_proxy_mock.assert_has_calls([call.add()]) + + def test_modified_gslb_site_execution_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_site + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_site_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_site_proxy_mock = Mock() + gslb_site_proxy_mock.configure_mock(**glsb_site_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_site_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_site', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + gslb_site_exists=Mock(side_effect=[True, True]), + gslb_site_identical=Mock(side_effect=[False, True]), + ensure_feature_is_enabled=Mock(), + nitro_exception=self.MockException, + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_site + self.exited() + gslb_site_proxy_mock.assert_has_calls([call.update()]) + + def test_absent_gslb_site_execution_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_site + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_site_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_site_proxy_mock = Mock() + gslb_site_proxy_mock.configure_mock(**glsb_site_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_site_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_site', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + gslb_site_exists=Mock(side_effect=[True, False]), + gslb_site_identical=Mock(side_effect=[False, True]), + ensure_feature_is_enabled=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_site + self.exited() + gslb_site_proxy_mock.assert_has_calls([call.delete()]) + + def test_present_gslb_site_identical_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_site + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_site_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_site_proxy_mock = Mock() + gslb_site_proxy_mock.configure_mock(**glsb_site_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_site_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_site', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + gslb_site_exists=Mock(side_effect=[True, True]), + gslb_site_identical=Mock(side_effect=[True, True]), + nitro_exception=self.MockException, + ensure_feature_is_enabled=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_site + self.exited() + gslb_site_proxy_mock.assert_not_called() + + def test_absent_gslb_site_noop_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_site + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_site_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_site_proxy_mock = Mock() + gslb_site_proxy_mock.configure_mock(**glsb_site_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_site_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_site', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + gslb_site_exists=Mock(side_effect=[False, False]), + gslb_site_identical=Mock(side_effect=[False, False]), + nitro_exception=self.MockException, + ensure_feature_is_enabled=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_site + self.exited() + gslb_site_proxy_mock.assert_not_called() + + def test_present_gslb_site_failed_update(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_site + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_site_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_site_proxy_mock = Mock() + gslb_site_proxy_mock.configure_mock(**glsb_site_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_site_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_site', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + gslb_site_exists=Mock(side_effect=[True, True]), + gslb_site_identical=Mock(side_effect=[False, False]), + ensure_feature_is_enabled=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_site + result = self.failed() + self.assertEqual(result['msg'], 'GSLB site differs from configured') + self.assertTrue(result['failed']) + + def test_present_gslb_site_failed_create(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_site + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_site_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_site_proxy_mock = Mock() + gslb_site_proxy_mock.configure_mock(**glsb_site_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_site_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_site', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + gslb_site_exists=Mock(side_effect=[False, False]), + gslb_site_identical=Mock(side_effect=[False, False]), + ensure_feature_is_enabled=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_site + result = self.failed() + self.assertEqual(result['msg'], 'GSLB site does not exist') + self.assertTrue(result['failed']) + + def test_present_gslb_site_update_immutable_attribute(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_site + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_site_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_site_proxy_mock = Mock() + gslb_site_proxy_mock.configure_mock(**glsb_site_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_site_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_site', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=['domain']), + gslb_site_exists=Mock(side_effect=[True, True]), + gslb_site_identical=Mock(side_effect=[False, False]), + ensure_feature_is_enabled=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_site + result = self.failed() + self.assertEqual(result['msg'], 'Cannot update immutable attributes [\'domain\']') + self.assertTrue(result['failed']) + + def test_absent_gslb_site_failed_delete(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_site + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_site_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_site_proxy_mock = Mock() + gslb_site_proxy_mock.configure_mock(**glsb_site_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_site_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_site', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + gslb_site_exists=Mock(side_effect=[True, True]), + gslb_site_identical=Mock(side_effect=[False, False]), + ensure_feature_is_enabled=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_site + result = self.failed() + self.assertEqual(result['msg'], 'GSLB site still exists') + self.assertTrue(result['failed']) + + def test_graceful_nitro_exception_state_present(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_site + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + m = Mock(side_effect=MockException) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_site', + gslb_site_exists=m, + ensure_feature_is_enabled=Mock(), + nitro_exception=MockException + ): + self.module = netscaler_gslb_site + result = self.failed() + self.assertTrue( + result['msg'].startswith('nitro exception'), + msg='Nitro exception not caught on operation absent' + ) + + def test_graceful_nitro_exception_state_absent(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_site + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + m = Mock(side_effect=MockException) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_site', + gslb_site_exists=m, + ensure_feature_is_enabled=Mock(), + nitro_exception=MockException + ): + self.module = netscaler_gslb_site + result = self.failed() + self.assertTrue( + result['msg'].startswith('nitro exception'), + msg='Nitro exception not caught on operation absent' + ) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_gslb_vserver.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_gslb_vserver.py new file mode 100644 index 000000000..4193668b3 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_gslb_vserver.py @@ -0,0 +1,761 @@ + +# Copyright (c) 2017 Citrix Systems +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch, Mock, MagicMock, call +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .netscaler_module import TestModule, nitro_base_patcher + +import sys + +if sys.version_info[:2] != (2, 6): + import requests + + +class TestNetscalerGSLBVserverModule(TestModule): + + @classmethod + def setUpClass(cls): + class MockException(Exception): + pass + + cls.MockException = MockException + + m = MagicMock() + nssrc_modules_mock = { + 'nssrc.com.citrix.netscaler.nitro.resource.config.gslb': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.gslb.gslbvserver': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.gslb.gslbvserver.gslbvserver': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.gslb.gslbvserver_gslbservice_binding': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.gslb.gslbvserver_gslbservice_binding.gslbvserver_gslbservice_binding': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.gslb.gslbvserver_domain_binding': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.gslb.gslbvserver_domain_binding.gslbvserver_domain_binding': m, + } + + cls.nitro_specific_patcher = patch.dict(sys.modules, nssrc_modules_mock) + cls.nitro_base_patcher = nitro_base_patcher + + @classmethod + def tearDownClass(cls): + cls.nitro_base_patcher.stop() + cls.nitro_specific_patcher.stop() + + def setUp(self): + super(TestNetscalerGSLBVserverModule, self).setUp() + + self.nitro_base_patcher.start() + self.nitro_specific_patcher.start() + + # Setup minimal required arguments to pass AnsibleModule argument parsing + + def tearDown(self): + super(TestNetscalerGSLBVserverModule, self).tearDown() + + self.nitro_base_patcher.stop() + self.nitro_specific_patcher.stop() + + def test_graceful_nitro_api_import_error(self): + # Stop nitro api patching to cause ImportError + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + self.nitro_base_patcher.stop() + self.nitro_specific_patcher.stop() + from ansible_collections.community.network.plugins.modules import netscaler_gslb_vserver + self.module = netscaler_gslb_vserver + result = self.failed() + self.assertEqual(result['msg'], 'Could not load nitro python sdk') + + def test_graceful_nitro_error_on_login(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_vserver + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + client_mock = Mock() + client_mock.login = Mock(side_effect=MockException) + m = Mock(return_value=client_mock) + with patch('ansible_collections.community.network.plugins.modules.netscaler_gslb_vserver.get_nitro_client', m): + with patch('ansible_collections.community.network.plugins.modules.netscaler_gslb_vserver.nitro_exception', MockException): + self.module = netscaler_gslb_vserver + result = self.failed() + self.assertTrue(result['msg'].startswith('nitro exception'), msg='nitro exception during login not handled properly') + + def test_graceful_no_connection_error(self): + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_vserver + + class MockException(Exception): + pass + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.ConnectionError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_vserver', + get_nitro_client=m, + nitro_exception=MockException, + ): + self.module = netscaler_gslb_vserver + result = self.failed() + self.assertTrue(result['msg'].startswith('Connection error'), msg='Connection error was not handled gracefully') + + def test_graceful_login_error(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_vserver + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + + class MockException(Exception): + pass + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.SSLError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_vserver', + get_nitro_client=m, + nitro_exception=MockException, + ): + self.module = netscaler_gslb_vserver + result = self.failed() + self.assertTrue(result['msg'].startswith('SSL Error'), msg='SSL Error was not handled gracefully') + + def test_ensure_feature_is_enabled_called(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_vserver + + gslb_service_proxy_mock = Mock() + ensure_feature_is_enabled_mock = Mock() + client_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_vserver', + get_nitro_client=Mock(return_value=client_mock), + gslb_vserver_exists=Mock(side_effect=[False, True]), + gslb_vserver_identical=Mock(side_effect=[True]), + nitro_exception=self.MockException, + ensure_feature_is_enabled=ensure_feature_is_enabled_mock, + do_state_change=Mock(return_value=Mock(errorcode=0)), + ConfigProxy=Mock(return_value=gslb_service_proxy_mock), + ): + self.module = netscaler_gslb_vserver + self.exited() + ensure_feature_is_enabled_mock.assert_called_with(client_mock, 'GSLB') + + def test_save_config_called_on_state_present(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + gslb_service_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_vserver', + get_nitro_client=m, + gslb_vserver_exists=Mock(side_effect=[False, True]), + gslb_vserver_identical=Mock(side_effect=[True]), + do_state_change=Mock(return_value=Mock(errorcode=0)), + nitro_exception=self.MockException, + ensure_feature_is_enabled=Mock(), + ConfigProxy=Mock(return_value=gslb_service_proxy_mock), + ): + self.module = netscaler_gslb_vserver + self.exited() + self.assertIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_called_on_state_absent(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + gslb_service_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_vserver', + get_nitro_client=m, + gslb_vserver_exists=Mock(side_effect=[True, False]), + nitro_exception=self.MockException, + ensure_feature_is_enabled=Mock(), + ConfigProxy=Mock(return_value=gslb_service_proxy_mock), + ): + self.module = netscaler_gslb_vserver + self.exited() + self.assertIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_not_called_on_state_present(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + gslb_service_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_vserver', + get_nitro_client=m, + gslb_vserver_exists=Mock(side_effect=[False, True]), + gslb_vserver_identical=Mock(side_effect=[True]), + nitro_exception=self.MockException, + do_state_change=Mock(return_value=Mock(errorcode=0)), + ensure_feature_is_enabled=Mock(), + ConfigProxy=Mock(return_value=gslb_service_proxy_mock), + ): + self.module = netscaler_gslb_vserver + self.exited() + self.assertNotIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_not_called_on_state_absent(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + gslb_service_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_vserver', + get_nitro_client=m, + gslb_vserver_exists=Mock(side_effect=[True, False]), + nitro_exception=self.MockException, + ensure_feature_is_enabled=Mock(), + ConfigProxy=Mock(return_value=gslb_service_proxy_mock), + ): + self.module = netscaler_gslb_vserver + self.exited() + self.assertNotIn(call.save_config(), client_mock.mock_calls) + + def test_new_gslb_vserver_execution_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_service_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_service_proxy_mock = Mock() + gslb_service_proxy_mock.configure_mock(**glsb_service_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_service_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_vserver', + get_nitro_client=m, + gslb_vserver_exists=Mock(side_effect=[False, True]), + gslb_vserver_identical=Mock(side_effect=[True]), + nitro_exception=self.MockException, + do_state_change=Mock(return_value=Mock(errorcode=0)), + ensure_feature_is_enabled=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_vserver + self.exited() + gslb_service_proxy_mock.assert_has_calls([call.add()]) + + def test_modified_gslb_vserver_execution_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_service_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_service_proxy_mock = Mock() + gslb_service_proxy_mock.configure_mock(**glsb_service_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_service_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_vserver', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + gslb_vserver_exists=Mock(side_effect=[True, True]), + gslb_vserver_identical=Mock(side_effect=[False, False, True]), + ensure_feature_is_enabled=Mock(), + domain_bindings_identical=Mock(side_effect=[True, True, True]), + service_bindings_identical=Mock(side_effect=[True, True, True]), + do_state_change=Mock(return_value=Mock(errorcode=0)), + nitro_exception=self.MockException, + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_vserver + self.exited() + gslb_service_proxy_mock.assert_has_calls([call.update()]) + + def test_absent_gslb_vserver_execution_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_service_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_service_proxy_mock = Mock() + gslb_service_proxy_mock.configure_mock(**glsb_service_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_service_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_vserver', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + gslb_vserver_exists=Mock(side_effect=[True, False]), + gslb_vserver_identical=Mock(side_effect=[False, True]), + ensure_feature_is_enabled=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_vserver + self.exited() + gslb_service_proxy_mock.assert_has_calls([call.delete()]) + + def test_present_gslb_vserver_identical_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_service_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_service_proxy_mock = Mock() + gslb_service_proxy_mock.configure_mock(**glsb_service_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_service_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_vserver', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + gslb_vserver_exists=Mock(side_effect=[True, True]), + gslb_vserver_identical=Mock(side_effect=[True, True]), + do_state_change=Mock(return_value=Mock(errorcode=0)), + nitro_exception=self.MockException, + ensure_feature_is_enabled=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_vserver + self.exited() + gslb_service_proxy_mock.assert_not_called() + + def test_present_gslb_vserver_domain_bindings_error_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_service_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_service_proxy_mock = Mock() + gslb_service_proxy_mock.configure_mock(**glsb_service_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_service_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_vserver', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + gslb_vserver_exists=Mock(side_effect=[True, True]), + gslb_vserver_identical=Mock(side_effect=[True, True, True]), + domain_bindings_identical=Mock(side_effect=[False, False, False]), + do_state_change=Mock(return_value=Mock(errorcode=0)), + nitro_exception=self.MockException, + ensure_feature_is_enabled=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_vserver + result = self.failed() + self.assertEqual(result['msg'], 'Domain bindings differ from configured') + self.assertTrue(result['failed']) + + def test_present_gslb_vserver_service_bindings_error_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_service_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_service_proxy_mock = Mock() + gslb_service_proxy_mock.configure_mock(**glsb_service_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_service_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_vserver', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + gslb_vserver_exists=Mock(side_effect=[True, True]), + gslb_vserver_identical=Mock(side_effect=[True, True, True]), + service_bindings_identical=Mock(side_effect=[False, False, False]), + do_state_change=Mock(return_value=Mock(errorcode=0)), + nitro_exception=self.MockException, + ensure_feature_is_enabled=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_vserver + result = self.failed() + self.assertEqual(result['msg'], 'Service bindings differ from configured') + self.assertTrue(result['failed']) + + def test_absent_gslb_vserver_noop_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_service_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_service_proxy_mock = Mock() + gslb_service_proxy_mock.configure_mock(**glsb_service_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_service_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_vserver', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + gslb_vserver_exists=Mock(side_effect=[False, False]), + gslb_vserver_identical=Mock(side_effect=[False, False]), + nitro_exception=self.MockException, + ensure_feature_is_enabled=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_vserver + self.exited() + gslb_service_proxy_mock.assert_not_called() + + def test_present_gslb_vserver_failed_update(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_service_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_service_proxy_mock = Mock() + gslb_service_proxy_mock.configure_mock(**glsb_service_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_service_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_vserver', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + gslb_vserver_exists=Mock(side_effect=[True, True]), + gslb_vserver_identical=Mock(side_effect=[False, False, False]), + do_state_change=Mock(return_value=Mock(errorcode=0)), + ensure_feature_is_enabled=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_vserver + result = self.failed() + self.assertEqual(result['msg'], 'GSLB Vserver differs from configured') + self.assertTrue(result['failed']) + + def test_present_gslb_vserver_failed_create(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_service_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_service_proxy_mock = Mock() + gslb_service_proxy_mock.configure_mock(**glsb_service_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_service_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_vserver', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + do_state_change=Mock(return_value=Mock(errorcode=0)), + gslb_vserver_exists=Mock(side_effect=[False, False]), + gslb_vserver_identical=Mock(side_effect=[False, False]), + ensure_feature_is_enabled=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_vserver + result = self.failed() + self.assertEqual(result['msg'], 'GSLB Vserver does not exist') + self.assertTrue(result['failed']) + + def test_present_gslb_vserver_update_immutable_attribute(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_service_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_service_proxy_mock = Mock() + gslb_service_proxy_mock.configure_mock(**glsb_service_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_service_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_vserver', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=['domain']), + gslb_vserver_exists=Mock(side_effect=[True, True]), + gslb_vserver_identical=Mock(side_effect=[False, False]), + ensure_feature_is_enabled=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_vserver + result = self.failed() + self.assertEqual(result['msg'], 'Cannot update immutable attributes [\'domain\']') + self.assertTrue(result['failed']) + + def test_absent_gslb_vserver_failed_delete(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + glsb_service_proxy_attrs = { + 'diff_object.return_value': {}, + } + gslb_service_proxy_mock = Mock() + gslb_service_proxy_mock.configure_mock(**glsb_service_proxy_attrs) + config_proxy_mock = Mock(return_value=gslb_service_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_vserver', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + gslb_vserver_exists=Mock(side_effect=[True, True]), + gslb_vserver_identical=Mock(side_effect=[False, False]), + ensure_feature_is_enabled=Mock(), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_gslb_vserver + result = self.failed() + self.assertEqual(result['msg'], 'GSLB Vserver still exists') + self.assertTrue(result['failed']) + + def test_graceful_nitro_exception_state_present(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_vserver + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + m = Mock(side_effect=MockException) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_vserver', + gslb_vserver_exists=m, + ensure_feature_is_enabled=Mock(), + nitro_exception=MockException + ): + self.module = netscaler_gslb_vserver + result = self.failed() + self.assertTrue( + result['msg'].startswith('nitro exception'), + msg='Nitro exception not caught on operation absent' + ) + + def test_graceful_nitro_exception_state_absent(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_gslb_vserver + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + m = Mock(side_effect=MockException) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_gslb_vserver', + gslb_vserver_exists=m, + ensure_feature_is_enabled=Mock(), + nitro_exception=MockException + ): + self.module = netscaler_gslb_vserver + result = self.failed() + self.assertTrue( + result['msg'].startswith('nitro exception'), + msg='Nitro exception not caught on operation absent' + ) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_lb_monitor.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_lb_monitor.py new file mode 100644 index 000000000..75e4d9024 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_lb_monitor.py @@ -0,0 +1,521 @@ + +# Copyright (c) 2017 Citrix Systems +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch, Mock, MagicMock, call +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .netscaler_module import TestModule, nitro_base_patcher + +import sys + +if sys.version_info[:2] != (2, 6): + import requests + + +class TestNetscalerLBVServerModule(TestModule): + + @classmethod + def setUpClass(cls): + class MockException(Exception): + pass + + cls.MockException = MockException + + m = MagicMock() + nssrc_modules_mock = { + 'nssrc.com.citrix.netscaler.nitro.resource.config.lb': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.lb.lbmonitor': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.lb.lbmonitor.lbvmonitor': m, + } + + cls.nitro_specific_patcher = patch.dict(sys.modules, nssrc_modules_mock) + cls.nitro_base_patcher = nitro_base_patcher + + @classmethod + def tearDownClass(cls): + cls.nitro_base_patcher.stop() + cls.nitro_specific_patcher.stop() + + def setUp(self): + super(TestNetscalerLBVServerModule, self).setUp() + + self.nitro_base_patcher.start() + self.nitro_specific_patcher.start() + + # Setup minimal required arguments to pass AnsibleModule argument parsing + + def tearDown(self): + super(TestNetscalerLBVServerModule, self).tearDown() + + self.nitro_base_patcher.stop() + self.nitro_specific_patcher.stop() + + def test_graceful_nitro_api_import_error(self): + # Stop nitro api patching to cause ImportError + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + self.nitro_base_patcher.stop() + self.nitro_specific_patcher.stop() + from ansible_collections.community.network.plugins.modules import netscaler_lb_monitor + self.module = netscaler_lb_monitor + result = self.failed() + self.assertEqual(result['msg'], 'Could not load nitro python sdk') + + def test_graceful_nitro_error_on_login(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_monitor + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + client_mock = Mock() + client_mock.login = Mock(side_effect=MockException) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_monitor', + get_nitro_client=m, + nitro_exception=MockException, + ): + self.module = netscaler_lb_monitor + result = self.failed() + self.assertTrue(result['msg'].startswith('nitro exception'), msg='nitro exception during login not handled properly') + + def test_graceful_no_connection_error(self): + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_monitor + + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.ConnectionError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_monitor', + get_nitro_client=m, + nitro_exception=self.MockException, + ): + self.module = netscaler_lb_monitor + result = self.failed() + self.assertTrue(result['msg'].startswith('Connection error'), msg='Connection error was not handled gracefully') + + def test_graceful_login_error(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_monitor + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.SSLError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_monitor', + get_nitro_client=m, + nitro_exception=self.MockException, + ): + self.module = netscaler_lb_monitor + result = self.failed() + self.assertTrue(result['msg'].startswith('SSL Error'), msg='SSL Error was not handled gracefully') + + def test_save_config_called_on_state_present(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_monitor + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + lb_monitor_proxy_mock = Mock(diff_object=Mock(return_value={})) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_monitor', + get_nitro_client=m, + lbmonitor_exists=Mock(side_effect=[False, True]), + ConfigProxy=Mock(return_value=lb_monitor_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + ): + self.module = netscaler_lb_monitor + self.exited() + self.assertIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_called_on_state_absent(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_monitor + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + lb_monitor_proxy_mock = Mock(diff_object=Mock(return_value={})) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_monitor', + get_nitro_client=m, + lbmonitor_exists=Mock(side_effect=[True, False]), + ConfigProxy=Mock(return_value=lb_monitor_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + ): + self.module = netscaler_lb_monitor + self.exited() + self.assertIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_not_called_on_state_present(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_monitor + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + lb_monitor_proxy_mock = Mock(diff_object=Mock(return_value={})) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_monitor', + get_nitro_client=m, + lbmonitor_exists=Mock(side_effect=[False, True]), + ConfigProxy=Mock(return_value=lb_monitor_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + ): + self.module = netscaler_lb_monitor + self.exited() + self.assertNotIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_not_called_on_state_absent(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_monitor + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + lb_monitor_proxy_mock = Mock(diff_object=Mock(return_value={})) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_monitor', + get_nitro_client=m, + lbmonitor_exists=Mock(side_effect=[True, False]), + ConfigProxy=Mock(return_value=lb_monitor_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + ): + self.module = netscaler_lb_monitor + self.exited() + self.assertNotIn(call.save_config(), client_mock.mock_calls) + + def test_ensure_feature_is_enabled_called(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_monitor + + client_mock = Mock() + + lb_monitor_proxy_mock = Mock(diff_object=Mock(return_value={})) + feature_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_monitor', + get_nitro_client=Mock(return_value=client_mock), + lbmonitor_exists=Mock(side_effect=[True, True]), + lbmonitor_identical=Mock(side_effect=[True, True]), + + ConfigProxy=Mock(return_value=lb_monitor_proxy_mock), + ensure_feature_is_enabled=feature_mock, + ): + self.module = netscaler_lb_monitor + self.exited() + feature_mock.assert_called_with(client_mock, 'LB') + + def test_ensure_feature_is_enabled_nitro_exception_caught(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_monitor + + client_mock = Mock() + + lb_monitor_proxy_mock = Mock(diff_object=Mock(return_value={})) + errorcode = 10 + message = 'mock error' + + class MockException(Exception): + def __init__(self): + self.errorcode = errorcode + self.message = message + + feature_mock = Mock(side_effect=MockException) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_monitor', + get_nitro_client=Mock(return_value=client_mock), + lbmonitor_exists=Mock(side_effect=[True, True]), + lbmonitor_identical=Mock(side_effect=[True, True]), + + ConfigProxy=Mock(return_value=lb_monitor_proxy_mock), + ensure_feature_is_enabled=feature_mock, + nitro_exception=MockException, + ): + self.module = netscaler_lb_monitor + result = self.failed() + expected_msg = 'nitro exception errorcode=%s, message=%s' % (errorcode, message) + self.assertEqual(result['msg'], expected_msg, 'Failed to handle nitro exception') + + def test_create_new_lb_monitor_workflow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_monitor + + lb_monitor_proxy_mock = Mock(diff_object=Mock(return_value={})) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_monitor', + get_nitro_client=Mock(return_value=Mock()), + lbmonitor_exists=Mock(side_effect=[False, True]), + lbmonitor_identical=Mock(side_effect=[True]), + + ConfigProxy=Mock(return_value=lb_monitor_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + ): + self.module = netscaler_lb_monitor + result = self.exited() + lb_monitor_proxy_mock.assert_has_calls([call.add()]) + self.assertTrue(result['changed']) + + def test_update_lb_monitor_workflow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_monitor + + lb_monitor_proxy_mock = Mock(diff_object=Mock(return_value={})) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_monitor', + get_nitro_client=Mock(return_value=Mock()), + lbmonitor_exists=Mock(side_effect=[True, True]), + lbmonitor_identical=Mock(side_effect=[False, True]), + + ConfigProxy=Mock(return_value=lb_monitor_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + get_immutables_intersection=Mock(return_value=[]), + diff_list=Mock(return_value={}), + ): + self.module = netscaler_lb_monitor + result = self.exited() + lb_monitor_proxy_mock.assert_has_calls([call.update()]) + self.assertTrue(result['changed']) + + def test_lb_monitor_exists_sanity_check(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_monitor + + lb_monitor_proxy_mock = Mock(diff_object=Mock(return_value={})) + + client_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_monitor', + get_nitro_client=Mock(return_value=client_mock), + lbmonitor_exists=Mock(side_effect=[False, False]), + lbmonitor_identical=Mock(side_effect=[False, True]), + ConfigProxy=Mock(return_value=lb_monitor_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + nitro_exception=self.MockException, + ): + self.module = netscaler_lb_monitor + result = self.failed() + self.assertEqual(result['msg'], 'lb monitor does not exist') + + def test_lb_monitor_identical_sanity_check(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_monitor + + lb_monitor_proxy_mock = Mock(diff_object=Mock(return_value={})) + + client_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_monitor', + get_nitro_client=Mock(return_value=client_mock), + lbmonitor_exists=Mock(side_effect=[True, True]), + lbmonitor_identical=Mock(side_effect=[False, False]), + ConfigProxy=Mock(return_value=lb_monitor_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + get_immutables_intersection=(Mock(return_value=[])), + nitro_exception=self.MockException, + diff_list=Mock(return_value={}), + ): + self.module = netscaler_lb_monitor + result = self.failed() + self.assertEqual(result['msg'], 'lb monitor is not configured correctly') + + def test_absent_state_workflow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_monitor + + lb_monitor_proxy_mock = Mock(diff_object=Mock(return_value={})) + + client_mock = Mock() + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_monitor', + get_nitro_client=Mock(return_value=client_mock), + ConfigProxy=Mock(return_value=lb_monitor_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + lbmonitor_exists=Mock(side_effect=[True, False]), + ): + self.module = netscaler_lb_monitor + result = self.exited() + lb_monitor_proxy_mock.assert_has_calls([call.delete()]) + self.assertTrue(result['changed']) + + def test_absent_state_sanity_check(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_monitor + + lb_monitor_proxy_mock = Mock(diff_object=Mock(return_value={})) + + client_mock = Mock() + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_monitor', + get_nitro_client=Mock(return_value=client_mock), + ConfigProxy=Mock(return_value=lb_monitor_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + lbmonitor_exists=Mock(side_effect=[True, True]), + nitro_exception=self.MockException, + ): + self.module = netscaler_lb_monitor + result = self.failed() + lb_monitor_proxy_mock.assert_has_calls([call.delete()]) + self.assertEqual(result['msg'], 'lb monitor still exists') + + def test_get_immutables_failure(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + + from ansible_collections.community.network.plugins.modules import netscaler_lb_monitor + + lb_monitor_proxy_mock = Mock(diff_object=Mock(return_value={})) + + client_mock = Mock() + m = Mock(return_value=['some']) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_monitor', + get_nitro_client=Mock(return_value=client_mock), + ConfigProxy=Mock(return_value=lb_monitor_proxy_mock), + ensure_feature_is_enabled=Mock(), + lbmonitor_exists=Mock(side_effect=[True, True]), + lbmonitor_identical=Mock(side_effect=[False, True]), + get_immutables_intersection=m, + diff_list=Mock(return_value={}), + nitro_exception=self.MockException, + ): + self.module = netscaler_lb_monitor + result = self.failed() + self.assertTrue( + result['msg'].startswith('Cannot update immutable attributes'), + msg='Did not handle immutables error correctly', + ) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_lb_vserver.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_lb_vserver.py new file mode 100644 index 000000000..05ceeb9e6 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_lb_vserver.py @@ -0,0 +1,843 @@ + +# Copyright (c) 2017 Citrix Systems +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch, Mock, MagicMock, call +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .netscaler_module import TestModule, nitro_base_patcher + +import sys + +if sys.version_info[:2] != (2, 6): + import requests + + +class TestNetscalerLBVServerModule(TestModule): + + @classmethod + def setUpClass(cls): + class MockException(Exception): + pass + + cls.MockException = MockException + + m = MagicMock() + cls.server_mock = MagicMock() + cls.server_mock.__class__ = MagicMock(add=Mock()) + nssrc_modules_mock = { + 'nssrc.com.citrix.netscaler.nitro.resource.config.lb': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.lb.lbvserver': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.lb.lbvserver.lbvserver': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.lb.lbvserver_service_binding': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.lb.lbvserver_service_binding.lbvserver_service_binding': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.lb.lbvserver_servicegroup_binding': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.lb.lbvserver_servicegroup_binding.lbvserver_servicegroup_binding': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.ssl': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.ssl.sslvserver_sslcertkey_binding': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.ssl.sslvserver_sslcertkey_binding.sslvserver_sslcertkey_binding': m, + } + + cls.nitro_specific_patcher = patch.dict(sys.modules, nssrc_modules_mock) + cls.nitro_base_patcher = nitro_base_patcher + + @classmethod + def tearDownClass(cls): + cls.nitro_base_patcher.stop() + cls.nitro_specific_patcher.stop() + + def setUp(self): + super(TestNetscalerLBVServerModule, self).setUp() + self.nitro_base_patcher.start() + self.nitro_specific_patcher.start() + + # Setup minimal required arguments to pass AnsibleModule argument parsing + + def tearDown(self): + super(TestNetscalerLBVServerModule, self).tearDown() + + self.nitro_base_patcher.stop() + self.nitro_specific_patcher.stop() + + def test_graceful_nitro_api_import_error(self): + # Stop nitro api patching to cause ImportError + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + self.nitro_base_patcher.stop() + self.nitro_specific_patcher.stop() + from ansible_collections.community.network.plugins.modules import netscaler_lb_vserver + self.module = netscaler_lb_vserver + result = self.failed() + self.assertEqual(result['msg'], 'Could not load nitro python sdk') + + def test_graceful_nitro_error_on_login(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_vserver + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + client_mock = Mock() + client_mock.login = Mock(side_effect=MockException) + m = Mock(return_value=client_mock) + with patch('ansible_collections.community.network.plugins.modules.netscaler_lb_vserver.get_nitro_client', m): + with patch('ansible_collections.community.network.plugins.modules.netscaler_lb_vserver.nitro_exception', MockException): + self.module = netscaler_lb_vserver + result = self.failed() + self.assertTrue(result['msg'].startswith('nitro exception'), msg='nitro exception during login not handled properly') + + def test_graceful_no_connection_error(self): + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_vserver + + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.ConnectionError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_vserver', + get_nitro_client=m, + nitro_exception=self.MockException, + ): + self.module = netscaler_lb_vserver + result = self.failed() + self.assertTrue(result['msg'].startswith('Connection error'), msg='Connection error was not handled gracefully') + + def test_graceful_login_error(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_vserver + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.SSLError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_vserver', + get_nitro_client=m, + nitro_exception=self.MockException, + do_state_change=Mock(return_value=Mock(errorcode=0)), + ): + self.module = netscaler_lb_vserver + result = self.failed() + self.assertTrue(result['msg'].startswith('SSL Error'), msg='SSL Error was not handled gracefully') + + def test_save_config_called_on_state_present(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + lb_vserver_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_vserver', + get_nitro_client=m, + lb_vserver_exists=Mock(side_effect=[False, True]), + ConfigProxy=Mock(return_value=lb_vserver_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + do_state_change=Mock(return_value=Mock(errorcode=0)), + ): + self.module = netscaler_lb_vserver + self.exited() + self.assertIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_called_on_state_absent(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + lb_vserver_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_vserver', + get_nitro_client=m, + lb_vserver_exists=Mock(side_effect=[True, False]), + ConfigProxy=Mock(return_value=lb_vserver_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + do_state_change=Mock(return_value=Mock(errorcode=0)), + ): + self.module = netscaler_lb_vserver + self.exited() + self.assertIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_not_called_on_state_present(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + lb_vserver_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_vserver', + get_nitro_client=m, + lb_vserver_exists=Mock(side_effect=[False, True]), + ConfigProxy=Mock(return_value=lb_vserver_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + do_state_change=Mock(return_value=Mock(errorcode=0)), + ): + self.module = netscaler_lb_vserver + self.exited() + self.assertNotIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_not_called_on_state_absent(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_vserver + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + lb_vserver_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_vserver', + get_nitro_client=m, + lb_vserver_exists=Mock(side_effect=[True, False]), + ConfigProxy=Mock(return_value=lb_vserver_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + do_state_change=Mock(return_value=Mock(errorcode=0)), + ): + self.module = netscaler_lb_vserver + self.exited() + self.assertNotIn(call.save_config(), client_mock.mock_calls) + + def test_ensure_feature_is_enabled_called(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_vserver + + client_mock = Mock() + + lb_vserver_proxy_mock = Mock() + feature_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_vserver', + get_nitro_client=Mock(return_value=client_mock), + lb_vserver_exists=Mock(side_effect=[True, True]), + lb_vserver_identical=Mock(side_effect=[True, True]), + servicegroup_bindings_identical=Mock(side_effect=[True, True]), + service_bindings_identical=Mock(side_effect=[True, True]), + + ConfigProxy=Mock(return_value=lb_vserver_proxy_mock), + ensure_feature_is_enabled=feature_mock, + do_state_change=Mock(return_value=Mock(errorcode=0)), + ): + self.module = netscaler_lb_vserver + self.exited() + feature_mock.assert_called_with(client_mock, 'LB') + + def test_ensure_feature_is_enabled_nitro_exception_caught(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_vserver + + client_mock = Mock() + + lb_vserver_proxy_mock = Mock() + errorcode = 10 + message = 'mock error' + + class MockException(Exception): + def __init__(self): + self.errorcode = errorcode + self.message = message + + feature_mock = Mock(side_effect=MockException) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_vserver', + get_nitro_client=Mock(return_value=client_mock), + lb_vserver_exists=Mock(side_effect=[True, True]), + lb_vserver_identical=Mock(side_effect=[True, True]), + servicegroup_bindings_identical=Mock(side_effect=[True, True]), + service_bindings_identical=Mock(side_effect=[True, True]), + + ConfigProxy=Mock(return_value=lb_vserver_proxy_mock), + ensure_feature_is_enabled=feature_mock, + nitro_exception=MockException, + ): + self.module = netscaler_lb_vserver + result = self.failed() + expected_msg = 'nitro exception errorcode=%s, message=%s' % (errorcode, message) + self.assertEqual(result['msg'], expected_msg, 'Failed to handle nitro exception') + + def test_create_new_lb_vserver_workflow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_vserver + + lb_vserver_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_vserver', + get_nitro_client=Mock(return_value=Mock()), + lb_vserver_exists=Mock(side_effect=[False, True]), + lb_vserver_identical=Mock(side_effect=[True]), + servicegroup_bindings_identical=Mock(side_effect=[True, True]), + service_bindings_identical=Mock(side_effect=[True, True]), + do_state_change=Mock(return_value=Mock(errorcode=0)), + + ConfigProxy=Mock(return_value=lb_vserver_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + ): + self.module = netscaler_lb_vserver + result = self.exited() + lb_vserver_proxy_mock.assert_has_calls([call.add()]) + self.assertTrue(result['changed']) + + def test_update_lb_vserver_workflow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_vserver + + lb_vserver_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_vserver', + get_nitro_client=Mock(return_value=Mock()), + lb_vserver_exists=Mock(side_effect=[True, True]), + lb_vserver_identical=Mock(side_effect=[False, True]), + servicegroup_bindings_identical=Mock(side_effect=[True, True]), + service_bindings_identical=Mock(side_effect=[True, True]), + + ConfigProxy=Mock(return_value=lb_vserver_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + do_state_change=Mock(return_value=Mock(errorcode=0)), + get_immutables_intersection=Mock(return_value=[]), + ): + self.module = netscaler_lb_vserver + result = self.exited() + lb_vserver_proxy_mock.assert_has_calls([call.update()]) + self.assertTrue(result['changed']) + + def test_service_bindings_handling(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_vserver + + lb_vserver_proxy_mock = Mock() + configured_dict = { + 'first': Mock(), + 'second': Mock(has_equal_attributes=Mock(return_value=False)), + } + + actual_dict = { + 'second': Mock(), + 'third': Mock(), + } + + client_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_vserver', + get_nitro_client=Mock(return_value=client_mock), + lb_vserver_exists=Mock(side_effect=[True, True]), + lb_vserver_identical=Mock(side_effect=[False, True]), + servicegroup_bindings_identical=Mock(side_effect=[True, True]), + service_bindings_identical=Mock(side_effect=[False, True]), + get_configured_service_bindings=Mock(return_value=configured_dict), + get_actual_service_bindings=Mock(return_value=actual_dict), + + ConfigProxy=Mock(return_value=lb_vserver_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + do_state_change=Mock(return_value=Mock(errorcode=0)), + get_immutables_intersection=(Mock(return_value=[])), + ): + self.module = netscaler_lb_vserver + result = self.exited() + configured_dict['first'].assert_has_calls([call.add()]) + + configured_dict['second'].assert_has_calls([call.has_equal_attributes(actual_dict['second']), call.add()]) + + actual_dict['second'].assert_has_calls([call.delete(client_mock, actual_dict['second'])]) + + actual_dict['third'].assert_has_calls([call.delete(client_mock, actual_dict['third'])]) + + self.assertTrue(result['changed']) + + def test_servicegroup_bindings_handling(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_vserver + + lb_vserver_proxy_mock = Mock() + configured_dict = { + 'first': Mock(), + 'second': Mock(has_equal_attributes=Mock(return_value=False)), + } + + actual_dict = { + 'second': Mock(), + 'third': Mock(), + } + + client_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_vserver', + get_nitro_client=Mock(return_value=client_mock), + lb_vserver_exists=Mock(side_effect=[True, True]), + lb_vserver_identical=Mock(side_effect=[False, True]), + servicegroup_bindings_identical=Mock(side_effect=[False, True]), + service_bindings_identical=Mock(side_effect=[True, True]), + get_configured_servicegroup_bindings=Mock(return_value=configured_dict), + get_actual_servicegroup_bindings=Mock(return_value=actual_dict), + + ConfigProxy=Mock(return_value=lb_vserver_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + do_state_change=Mock(return_value=Mock(errorcode=0)), + get_immutables_intersection=(Mock(return_value=[])), + ): + self.module = netscaler_lb_vserver + result = self.exited() + configured_dict['first'].assert_has_calls([call.add()]) + + configured_dict['second'].assert_has_calls([call.has_equal_attributes(actual_dict['second']), call.add()]) + + actual_dict['second'].assert_has_calls([call.delete(client_mock, actual_dict['second'])]) + + actual_dict['third'].assert_has_calls([call.delete(client_mock, actual_dict['third'])]) + + self.assertTrue(result['changed']) + + def test_ssl_bindings_handling(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + save_config=False, + servicetype='SSL', + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_vserver + + lb_vserver_proxy_mock = Mock() + ssl_sync_mock = Mock() + + client_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_vserver', + get_nitro_client=Mock(return_value=client_mock), + lb_vserver_exists=Mock(side_effect=[True, True]), + lb_vserver_identical=Mock(side_effect=[False, True]), + servicegroup_bindings_identical=Mock(side_effect=[True, True]), + service_bindings_identical=Mock(side_effect=[True, True]), + ssl_certkey_bindings_identical=Mock(side_effect=[False, True]), + ssl_certkey_bindings_sync=ssl_sync_mock, + ConfigProxy=Mock(return_value=lb_vserver_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + do_state_change=Mock(return_value=Mock(errorcode=0)), + get_immutables_intersection=(Mock(return_value=[])), + nitro_exception=self.MockException, + ): + self.module = netscaler_lb_vserver + result = self.exited() + self.assertTrue(len(ssl_sync_mock.mock_calls) > 0, msg='ssl cert_key bindings not called') + self.assertTrue(result['changed']) + + def test_ssl_bindings_not_called_for_non_ssl_service(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + save_config=False, + servicetype='HTTP', + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_vserver + + lb_vserver_proxy_mock = Mock() + ssl_sync_mock = Mock() + + client_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_vserver', + get_nitro_client=Mock(return_value=client_mock), + lb_vserver_exists=Mock(side_effect=[True, True]), + lb_vserver_identical=Mock(side_effect=[False, True]), + servicegroup_bindings_identical=Mock(side_effect=[True, True]), + service_bindings_identical=Mock(side_effect=[True, True]), + ssl_certkey_bindings_identical=Mock(side_effect=[False, True]), + ssl_certkey_bindings_sync=ssl_sync_mock, + ConfigProxy=Mock(return_value=lb_vserver_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + do_state_change=Mock(return_value=Mock(errorcode=0)), + get_immutables_intersection=(Mock(return_value=[])), + ): + self.module = netscaler_lb_vserver + result = self.exited() + ssl_sync_mock.assert_not_called() + self.assertTrue(result['changed']) + + def test_server_exists_sanity_check(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_vserver + + lb_vserver_proxy_mock = Mock() + ssl_sync_mock = Mock() + + client_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_vserver', + get_nitro_client=Mock(return_value=client_mock), + lb_vserver_exists=Mock(side_effect=[False, False]), + lb_vserver_identical=Mock(side_effect=[False, True]), + servicegroup_bindings_identical=Mock(side_effect=[True, True]), + service_bindings_identical=Mock(side_effect=[True, True]), + ssl_certkey_bindings_identical=Mock(side_effect=[False, True]), + ssl_certkey_bindings_sync=ssl_sync_mock, + ConfigProxy=Mock(return_value=lb_vserver_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + do_state_change=Mock(return_value=Mock(errorcode=0)), + nitro_exception=self.MockException, + ): + self.module = netscaler_lb_vserver + result = self.failed() + self.assertEqual(result['msg'], 'Did not create lb vserver') + + def test_server_identical_sanity_check(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_vserver + + lb_vserver_proxy_mock = Mock() + ssl_sync_mock = Mock() + + client_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_vserver', + get_nitro_client=Mock(return_value=client_mock), + lb_vserver_exists=Mock(side_effect=[True, True]), + lb_vserver_identical=Mock(side_effect=[False, False]), + servicegroup_bindings_identical=Mock(side_effect=[True, True]), + service_bindings_identical=Mock(side_effect=[True, True]), + ssl_certkey_bindings_identical=Mock(side_effect=[False, True]), + ssl_certkey_bindings_sync=ssl_sync_mock, + ConfigProxy=Mock(return_value=lb_vserver_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + do_state_change=Mock(return_value=Mock(errorcode=0)), + get_immutables_intersection=(Mock(return_value=[])), + nitro_exception=self.MockException, + ): + self.module = netscaler_lb_vserver + result = self.failed() + self.assertEqual(result['msg'], 'lb vserver is not configured correctly') + + def test_service_bindings_sanity_check(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_vserver + + lb_vserver_proxy_mock = Mock() + + client_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_vserver', + get_nitro_client=Mock(return_value=client_mock), + lb_vserver_exists=Mock(side_effect=[True, True]), + lb_vserver_identical=Mock(side_effect=[False, True]), + servicegroup_bindings_identical=Mock(side_effect=[True, True]), + service_bindings_identical=Mock(side_effect=[False, False]), + ssl_certkey_bindings_identical=Mock(side_effect=[False, False]), + ConfigProxy=Mock(return_value=lb_vserver_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + do_state_change=Mock(return_value=Mock(errorcode=0)), + get_immutables_intersection=(Mock(return_value=[])), + nitro_exception=self.MockException, + ): + self.module = netscaler_lb_vserver + result = self.failed() + self.assertEqual(result['msg'], 'service bindings are not identical') + + def test_servicegroup_bindings_sanity_check(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_vserver + + lb_vserver_proxy_mock = Mock() + + client_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_vserver', + get_nitro_client=Mock(return_value=client_mock), + lb_vserver_exists=Mock(side_effect=[True, True]), + lb_vserver_identical=Mock(side_effect=[False, True]), + servicegroup_bindings_identical=Mock(side_effect=[False, False]), + service_bindings_identical=Mock(side_effect=[True, True]), + ssl_certkey_bindings_identical=Mock(side_effect=[False, False]), + ConfigProxy=Mock(return_value=lb_vserver_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + do_state_change=Mock(return_value=Mock(errorcode=0)), + get_immutables_intersection=(Mock(return_value=[])), + nitro_exception=self.MockException, + ): + self.module = netscaler_lb_vserver + result = self.failed() + self.assertEqual(result['msg'], 'servicegroup bindings are not identical') + + def test_server_servicegroup_bindings_sanity_check(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_vserver + + lb_vserver_proxy_mock = Mock() + + client_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_vserver', + get_nitro_client=Mock(return_value=client_mock), + lb_vserver_exists=Mock(side_effect=[True, True]), + lb_vserver_identical=Mock(side_effect=[False, True]), + servicegroup_bindings_identical=Mock(side_effect=[False, False]), + service_bindings_identical=Mock(side_effect=[True, True]), + ssl_certkey_bindings_identical=Mock(side_effect=[False, False]), + ConfigProxy=Mock(return_value=lb_vserver_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + do_state_change=Mock(return_value=Mock(errorcode=0)), + get_immutables_intersection=(Mock(return_value=[])), + nitro_exception=self.MockException, + ): + self.module = netscaler_lb_vserver + result = self.failed() + self.assertEqual(result['msg'], 'servicegroup bindings are not identical') + + def test_absent_state_workflow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_vserver + + lb_vserver_proxy_mock = Mock() + + client_mock = Mock() + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_vserver', + get_nitro_client=Mock(return_value=client_mock), + ConfigProxy=Mock(return_value=lb_vserver_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + lb_vserver_exists=Mock(side_effect=[True, False]), + ): + self.module = netscaler_lb_vserver + result = self.exited() + lb_vserver_proxy_mock.assert_has_calls([call.delete()]) + self.assertTrue(result['changed']) + + def test_absent_state_sanity_check(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_lb_vserver + + lb_vserver_proxy_mock = Mock() + + client_mock = Mock() + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_vserver', + get_nitro_client=Mock(return_value=client_mock), + ConfigProxy=Mock(return_value=lb_vserver_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + lb_vserver_exists=Mock(side_effect=[True, True]), + nitro_exception=self.MockException, + ): + self.module = netscaler_lb_vserver + result = self.failed() + lb_vserver_proxy_mock.assert_has_calls([call.delete()]) + self.assertEqual(result['msg'], 'lb vserver still exists') + + def test_disabled_state_change_called(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + + from ansible_collections.community.network.plugins.modules import netscaler_lb_vserver + + lb_vserver_proxy_mock = Mock() + + do_state_change_mock = Mock(return_value=Mock(errorcode=0)) + client_mock = Mock() + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_vserver', + get_nitro_client=Mock(return_value=client_mock), + ConfigProxy=Mock(return_value=lb_vserver_proxy_mock), + ensure_feature_is_enabled=Mock(return_value=True), + lb_vserver_exists=Mock(side_effect=[True, True]), + nitro_exception=self.MockException, + do_state_change=do_state_change_mock, + ): + self.module = netscaler_lb_vserver + self.exited() + self.assertTrue(len(do_state_change_mock.mock_calls) > 0, msg='Did not call state change') + + def test_get_immutables_failure(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + + from ansible_collections.community.network.plugins.modules import netscaler_lb_vserver + + lb_vserver_proxy_mock = Mock() + + client_mock = Mock() + m = Mock(return_value=['some']) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_lb_vserver', + get_nitro_client=Mock(return_value=client_mock), + ConfigProxy=Mock(return_value=lb_vserver_proxy_mock), + ensure_feature_is_enabled=Mock(), + lb_vserver_exists=Mock(side_effect=[True, True]), + lb_vserver_identical=Mock(side_effect=[False]), + do_state_change=Mock(return_value=Mock(errorcode=0)), + get_immutables_intersection=m, + nitro_exception=self.MockException, + ): + self.module = netscaler_lb_vserver + result = self.failed() + self.assertTrue( + result['msg'].startswith('Cannot update immutable attributes'), + msg='Did not handle immutables error correctly', + ) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_nitro_request.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_nitro_request.py new file mode 100644 index 000000000..473e58741 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_nitro_request.py @@ -0,0 +1,347 @@ + +# Copyright (c) 2017 Citrix Systems +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch, Mock, call +from .netscaler_module import TestModule +import copy +import tempfile +import json +import codecs + +from ansible_collections.community.network.plugins.modules import netscaler_nitro_request + +module_arguments = dict( + nsip=None, + nitro_user=None, + nitro_pass=None, + nitro_protocol=None, + validate_certs=None, + nitro_auth_token=None, + resource=None, + name=None, + attributes=None, + args=None, + filter=None, + operation=None, + expected_nitro_errorcode=None, + action=None, + instance_ip=None, + instance_name=None, + instance_id=None, +) + + +class TestNetscalerNitroRequestModule(TestModule): + + @classmethod + def setUpClass(cls): + class MockException(Exception): + pass + + cls.MockException = MockException + + # This has code in a parent class + def setUp(self): + pass + + def test_fail_on_conflicting_authentication_methods(self): + args = copy.deepcopy(module_arguments) + args.update(dict( + nitro_user='nsroot', + nitro_pass='nsroot', + nitro_auth_token='##DDASKLFDJ', + )) + mock_module_instance = Mock(params=args) + expected_calls = [ + call.fail_json( + changed=False, + failed=True, + msg='Cannot define both authentication token and username/password' + ) + ] + module_mock = Mock(return_value=mock_module_instance) + with patch('ansible_collections.community.network.plugins.modules.netscaler_nitro_request.AnsibleModule', module_mock): + netscaler_nitro_request.NitroAPICaller() + mock_module_instance.assert_has_calls(expected_calls) + + def test_nitro_user_pass_credentials(self): + args = copy.deepcopy(module_arguments) + args.update(dict( + nitro_user='nsroot', + nitro_pass='nsroot', + )) + mock_module_instance = Mock(params=args) + expected_headers = { + 'Content-Type': 'application/json', + 'X-NITRO-USER': 'nsroot', + 'X-NITRO-PASS': 'nsroot', + } + module_mock = Mock(return_value=mock_module_instance) + with patch('ansible_collections.community.network.plugins.modules.netscaler_nitro_request.AnsibleModule', module_mock): + instance = netscaler_nitro_request.NitroAPICaller() + self.assertDictEqual(instance._headers, expected_headers) + + def test_mas_login_headers(self): + args = copy.deepcopy(module_arguments) + args.update(dict( + nitro_user='nsroot', + nitro_pass='nsroot', + operation='mas_login', + )) + mock_module_instance = Mock(params=args) + expected_headers = { + 'Content-Type': 'application/json', + } + module_mock = Mock(return_value=mock_module_instance) + with patch('ansible_collections.community.network.plugins.modules.netscaler_nitro_request.AnsibleModule', module_mock): + instance = netscaler_nitro_request.NitroAPICaller() + self.assertDictEqual(instance._headers, expected_headers) + + def test_mas_proxy_call_headers_instance_ip(self): + args = copy.deepcopy(module_arguments) + args.update(dict( + nitro_auth_token='##ABDB', + operation='add', + instance_ip='192.168.1.1', + )) + mock_module_instance = Mock(params=args) + expected_headers = { + 'Content-Type': 'application/json', + '_MPS_API_PROXY_MANAGED_INSTANCE_IP': args['instance_ip'], + 'Cookie': 'NITRO_AUTH_TOKEN=%s' % args['nitro_auth_token'], + } + module_mock = Mock(return_value=mock_module_instance) + with patch('ansible_collections.community.network.plugins.modules.netscaler_nitro_request.AnsibleModule', module_mock): + instance = netscaler_nitro_request.NitroAPICaller() + self.assertDictEqual(instance._headers, expected_headers) + + def test_mas_proxy_call_headers_instance_id(self): + args = copy.deepcopy(module_arguments) + args.update(dict( + nitro_auth_token='##ABDB', + operation='add', + instance_id='myid', + )) + mock_module_instance = Mock(params=args) + expected_headers = { + 'Content-Type': 'application/json', + '_MPS_API_PROXY_MANAGED_INSTANCE_ID': args['instance_id'], + 'Cookie': 'NITRO_AUTH_TOKEN=%s' % args['nitro_auth_token'], + } + module_mock = Mock(return_value=mock_module_instance) + with patch('ansible_collections.community.network.plugins.modules.netscaler_nitro_request.AnsibleModule', module_mock): + instance = netscaler_nitro_request.NitroAPICaller() + self.assertDictEqual(instance._headers, expected_headers) + + def test_mas_proxy_call_headers_instance_name(self): + args = copy.deepcopy(module_arguments) + args.update(dict( + nitro_auth_token='##ABDB', + operation='add', + instance_name='myname', + )) + mock_module_instance = Mock(params=args) + expected_headers = { + 'Content-Type': 'application/json', + '_MPS_API_PROXY_MANAGED_INSTANCE_NAME': args['instance_name'], + 'Cookie': 'NITRO_AUTH_TOKEN=%s' % args['nitro_auth_token'], + } + module_mock = Mock(return_value=mock_module_instance) + with patch('ansible_collections.community.network.plugins.modules.netscaler_nitro_request.AnsibleModule', module_mock): + instance = netscaler_nitro_request.NitroAPICaller() + self.assertDictEqual(instance._headers, expected_headers) + + def test_edit_response_data_no_body_success_status(self): + with patch('ansible_collections.community.network.plugins.modules.netscaler_nitro_request.AnsibleModule'): + instance = netscaler_nitro_request.NitroAPICaller() + r = None + info = { + 'status': 200, + } + result = {} + success_status = 200 + + expected_result = { + 'nitro_errorcode': 0, + 'nitro_message': 'Success', + 'nitro_severity': 'NONE', + 'http_response_body': '', + 'http_response_data': info, + } + instance.edit_response_data(r, info, result, success_status) + self.assertDictEqual(result, expected_result) + + def test_edit_response_data_no_body_fail_status(self): + with patch('ansible_collections.community.network.plugins.modules.netscaler_nitro_request.AnsibleModule'): + instance = netscaler_nitro_request.NitroAPICaller() + r = None + info = { + 'status': 201, + } + result = {} + success_status = 200 + + expected_result = { + 'nitro_errorcode': -1, + 'nitro_message': 'HTTP status %s' % info['status'], + 'nitro_severity': 'ERROR', + 'http_response_body': '', + 'http_response_data': info, + } + instance.edit_response_data(r, info, result, success_status) + self.assertDictEqual(result, expected_result) + + def test_edit_response_data_actual_body_data(self): + args = copy.deepcopy(module_arguments) + args.update(dict( + nitro_user='nsroot', + nitro_pass='nsroot', + nitro_auth_token='##DDASKLFDJ', + )) + module_mock = Mock(params=args, from_json=json.loads) + with patch('ansible_collections.community.network.plugins.modules.netscaler_nitro_request.AnsibleModule', + Mock(return_value=module_mock)): + with tempfile.TemporaryFile() as r: + actual_body = { + 'errorcode': 258, + 'message': 'Some error', + 'severity': 'ERROR', + } + r.write(codecs.encode(json.dumps(actual_body), 'utf-8')) + r.seek(0) + + instance = netscaler_nitro_request.NitroAPICaller() + info = { + 'status': 200, + } + result = {} + success_status = 200 + + expected_result = { + 'http_response_body': json.dumps(actual_body), + 'http_response_data': info, + } + nitro_data = {} + for key, value in actual_body.items(): + nitro_data['nitro_%s' % key] = value + expected_result.update(nitro_data) + + instance.edit_response_data(r, info, result, success_status) + self.assertDictEqual(result, expected_result) + + def test_edit_response_data_actual_body_data_irrelevant(self): + args = copy.deepcopy(module_arguments) + args.update(dict( + nitro_user='nsroot', + nitro_pass='nsroot', + nitro_auth_token='##DDASKLFDJ', + )) + module_mock = Mock(params=args, from_json=json.loads) + with patch('ansible_collections.community.network.plugins.modules.netscaler_nitro_request.AnsibleModule', + Mock(return_value=module_mock)): + with tempfile.TemporaryFile() as r: + actual_body = {} + r.write(codecs.encode(json.dumps(actual_body), 'utf-8')) + r.seek(0) + + instance = netscaler_nitro_request.NitroAPICaller() + info = { + 'status': 200, + } + result = {} + success_status = 200 + + expected_result = { + 'http_response_body': json.dumps(actual_body), + 'http_response_data': info, + 'nitro_errorcode': 0, + 'nitro_message': 'Success', + 'nitro_severity': 'NONE', + } + + instance.edit_response_data(r, info, result, success_status) + self.assertDictEqual(result, expected_result) + + def test_edit_response_data_body_in_info(self): + args = copy.deepcopy(module_arguments) + args.update(dict( + nitro_user='nsroot', + nitro_pass='nsroot', + )) + module_mock = Mock(params=args, from_json=json.loads) + with patch('ansible_collections.community.network.plugins.modules.netscaler_nitro_request.AnsibleModule', + Mock(return_value=module_mock)): + body = { + 'errorcode': 258, + 'message': 'Numerical error 258', + 'severity': 'ERROR' + } + instance = netscaler_nitro_request.NitroAPICaller() + r = None + info = { + 'status': 200, + 'body': codecs.encode(json.dumps(body), 'utf-8'), + } + result = {} + success_status = 200 + + expected_result = { + 'http_response_body': json.dumps(body), + 'http_response_data': info, + } + + nitro_data = {} + for key, value in body.items(): + nitro_data['nitro_%s' % key] = value + + expected_result.update(nitro_data) + instance.edit_response_data(r, info, result, success_status) + self.assertDictEqual(result, expected_result) + + def test_handle_get_return_object(self): + resource = 'lbvserver' + args = copy.deepcopy(module_arguments) + args.update(dict( + nitro_user='nsroot', + nitro_pass='nsroot', + resource=resource, + )) + resource_data = { + 'property1': 'value1', + 'property2': 'value2', + } + module_mock = Mock(params=args, from_json=json.loads) + with patch('ansible_collections.community.network.plugins.modules.netscaler_nitro_request.AnsibleModule', + Mock(return_value=module_mock)): + instance = netscaler_nitro_request.NitroAPICaller() + + data = {resource: resource_data} + result = { + 'nitro_errorcode': 0, + 'http_response_body': json.dumps(data), + } + expected_result = { + 'nitro_object': resource_data + } + expected_result.update(result) + instance.handle_get_return_object(result) + self.assertDictEqual(result, expected_result) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_save_config.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_save_config.py new file mode 100644 index 000000000..8753d6e10 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_save_config.py @@ -0,0 +1,151 @@ + +# Copyright (c) 2017 Citrix Systems +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch, Mock, call +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .netscaler_module import TestModule, nitro_base_patcher + +import sys + +if sys.version_info[:2] != (2, 6): + import requests + + +class TestNetscalerSaveConfigModule(TestModule): + + @classmethod + def setUpClass(cls): + class MockException(Exception): + pass + + cls.MockException = MockException + + cls.nitro_base_patcher = nitro_base_patcher + + @classmethod + def tearDownClass(cls): + cls.nitro_base_patcher.stop() + + def setUp(self): + super(TestNetscalerSaveConfigModule, self).setUp() + self.nitro_base_patcher.start() + + def tearDown(self): + super(TestNetscalerSaveConfigModule, self).tearDown() + self.nitro_base_patcher.stop() + + def test_graceful_nitro_error_on_login(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + )) + from ansible_collections.community.network.plugins.modules import netscaler_save_config + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + client_mock = Mock() + client_mock.login = Mock(side_effect=MockException) + m = Mock(return_value=client_mock) + with patch('ansible_collections.community.network.plugins.modules.netscaler_save_config.get_nitro_client', m): + with patch('ansible_collections.community.network.plugins.modules.netscaler_save_config.nitro_exception', MockException): + self.module = netscaler_save_config + result = self.failed() + self.assertTrue(result['msg'].startswith('nitro exception'), msg='nitro exception during login not handled properly') + + def test_graceful_no_connection_error(self): + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + )) + from ansible_collections.community.network.plugins.modules import netscaler_save_config + + class MockException(Exception): + pass + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.ConnectionError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_save_config', + get_nitro_client=m, + nitro_exception=MockException, + ): + self.module = netscaler_save_config + result = self.failed() + self.assertTrue(result['msg'].startswith('Connection error'), msg='Connection error was not handled gracefully') + + def test_graceful_login_error(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + )) + from ansible_collections.community.network.plugins.modules import netscaler_save_config + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + + class MockException(Exception): + pass + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.SSLError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_save_config', + get_nitro_client=m, + nitro_exception=MockException, + ): + self.module = netscaler_save_config + result = self.failed() + self.assertTrue(result['msg'].startswith('SSL Error'), msg='SSL Error was not handled gracefully') + + def test_save_config_called(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + )) + + class MockException(Exception): + pass + + from ansible_collections.community.network.plugins.modules import netscaler_save_config + client_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_save_config', + get_nitro_client=Mock(return_value=client_mock), + nitro_exception=MockException, + ): + self.module = netscaler_save_config + self.exited() + call_sequence = [call.login(), call.save_config(), call.logout()] + client_mock.assert_has_calls(call_sequence) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_server.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_server.py new file mode 100644 index 000000000..7f9d7ed60 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_server.py @@ -0,0 +1,699 @@ + +# Copyright (c) 2017 Citrix Systems +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch, Mock, MagicMock, call +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .netscaler_module import TestModule, nitro_base_patcher + +import sys + +if sys.version_info[:2] != (2, 6): + import requests + + +class TestNetscalerServerModule(TestModule): + + @classmethod + def setUpClass(cls): + class MockException(Exception): + pass + + cls.MockException = MockException + + m = MagicMock() + cls.server_mock = MagicMock() + cls.server_mock.__class__ = MagicMock(add=Mock()) + nssrc_modules_mock = { + 'nssrc.com.citrix.netscaler.nitro.resource.config.basic': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.basic.server': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.basic.server.server': cls.server_mock, + } + + cls.nitro_specific_patcher = patch.dict(sys.modules, nssrc_modules_mock) + cls.nitro_base_patcher = nitro_base_patcher + + @classmethod + def tearDownClass(cls): + cls.nitro_base_patcher.stop() + cls.nitro_specific_patcher.stop() + + def setUp(self): + super(TestNetscalerServerModule, self).setUp() + self.nitro_base_patcher.start() + self.nitro_specific_patcher.start() + + # Setup minimal required arguments to pass AnsibleModule argument parsing + + def tearDown(self): + super(TestNetscalerServerModule, self).tearDown() + self.nitro_base_patcher.stop() + self.nitro_specific_patcher.stop() + + def test_graceful_nitro_api_import_error(self): + # Stop nitro api patching to cause ImportError + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + self.nitro_base_patcher.stop() + self.nitro_specific_patcher.stop() + from ansible_collections.community.network.plugins.modules import netscaler_server + self.module = netscaler_server + result = self.failed() + self.assertEqual(result['msg'], 'Could not load nitro python sdk') + + def test_graceful_nitro_error_on_login(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_server + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + client_mock = Mock() + client_mock.login = Mock(side_effect=MockException) + m = Mock(return_value=client_mock) + with patch('ansible_collections.community.network.plugins.modules.netscaler_server.get_nitro_client', m): + with patch('ansible_collections.community.network.plugins.modules.netscaler_server.nitro_exception', MockException): + self.module = netscaler_server + result = self.failed() + self.assertTrue(result['msg'].startswith('nitro exception'), msg='nitro exception during login not handled properly') + + def test_graceful_no_connection_error(self): + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_server + + class MockException(Exception): + pass + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.ConnectionError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_server', + get_nitro_client=m, + nitro_exception=MockException, + ): + self.module = netscaler_server + result = self.failed() + self.assertTrue(result['msg'].startswith('Connection error'), msg='Connection error was not handled gracefully') + + def test_graceful_login_error(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_server + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + + class MockException(Exception): + pass + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.SSLError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_server', + get_nitro_client=m, + nitro_exception=MockException, + ): + self.module = netscaler_server + result = self.failed() + self.assertTrue(result['msg'].startswith('SSL Error'), msg='SSL Error was not handled gracefully') + + def test_save_config_called_on_state_present(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_server + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_server', + get_nitro_client=m, + server_exists=Mock(side_effect=[False, True]), + ConfigProxy=Mock(return_value=server_proxy_mock), + diff_list=Mock(return_value={}), + do_state_change=Mock(return_value=Mock(errorcode=0)) + ): + self.module = netscaler_server + self.exited() + self.assertIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_called_on_state_absent(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_server + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_server', + get_nitro_client=m, + server_exists=Mock(side_effect=[True, False]), + ConfigProxy=Mock(return_value=server_proxy_mock), + diff_list=Mock(return_value={}), + do_state_change=Mock(return_value=Mock(errorcode=0)) + ): + self.module = netscaler_server + self.exited() + self.assertIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_not_called_on_state_present(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_server + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_server', + get_nitro_client=m, + server_exists=Mock(side_effect=[False, True]), + ConfigProxy=Mock(return_value=server_proxy_mock), + diff_list=Mock(return_value={}), + do_state_change=Mock(return_value=Mock(errorcode=0)) + ): + self.module = netscaler_server + self.exited() + self.assertNotIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_not_called_on_state_absent(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_server + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_server', + get_nitro_client=m, + server_exists=Mock(side_effect=[True, False]), + ConfigProxy=Mock(return_value=server_proxy_mock), + do_state_change=Mock(return_value=Mock(errorcode=0)) + ): + self.module = netscaler_server + self.exited() + self.assertNotIn(call.save_config(), client_mock.mock_calls) + + def test_do_state_change_fail(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_server + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_server', + nitro_exception=self.MockException, + get_nitro_client=m, + server_exists=Mock(side_effect=[True, False]), + ConfigProxy=Mock(return_value=server_proxy_mock), + diff_list=Mock(return_value={}), + do_state_change=Mock(return_value=Mock(errorcode=1, message='Failed on purpose')) + ): + self.module = netscaler_server + result = self.failed() + self.assertEqual(result['msg'], 'Error when setting disabled state. errorcode: 1 message: Failed on purpose') + + def test_disable_server_graceful(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + disabled=True, + graceful=True + )) + from ansible_collections.community.network.plugins.modules import netscaler_server + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_mock = Mock() + + d = { + 'graceful': True, + 'delay': 20, + } + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_server', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value=d), + get_immutables_intersection=Mock(return_value=[]), + server_exists=Mock(side_effect=[True, True]), + ConfigProxy=Mock(return_value=server_proxy_mock), + do_state_change=Mock(return_value=Mock(errorcode=0)) + ): + self.module = netscaler_server + result = self.exited() + self.assertEqual(d, {}, 'Graceful disable options were not discarded from the diff_list with the actual object') + + def test_new_server_execution_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_server + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + server_proxy_mock = Mock() + server_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=server_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_server', + get_nitro_client=m, + server_exists=Mock(side_effect=[False, True]), + server_identical=Mock(side_effect=[True]), + ConfigProxy=config_proxy_mock, + do_state_change=Mock(return_value=Mock(errorcode=0)) + ): + self.module = netscaler_server + self.exited() + server_proxy_mock.assert_has_calls([call.add()]) + + def test_modified_server_execution_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_server + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + server_proxy_mock = Mock() + server_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=server_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_server', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + server_exists=Mock(side_effect=[True, True]), + server_identical=Mock(side_effect=[False, True]), + ConfigProxy=config_proxy_mock, + do_state_change=Mock(return_value=Mock(errorcode=0)) + ): + self.module = netscaler_server + self.exited() + server_proxy_mock.assert_has_calls([call.update()]) + + def test_absent_server_execution_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_server + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + server_proxy_mock = Mock() + server_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=server_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_server', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + server_exists=Mock(side_effect=[True, False]), + server_identical=Mock(side_effect=[False, True]), + ConfigProxy=config_proxy_mock, + do_state_change=Mock(return_value=Mock(errorcode=0)) + ): + self.module = netscaler_server + self.exited() + server_proxy_mock.assert_has_calls([call.delete()]) + + def test_present_server_identical_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_server + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + server_proxy_mock = Mock() + server_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=server_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_server', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + server_exists=Mock(side_effect=[True, True]), + server_identical=Mock(side_effect=[True, True]), + ConfigProxy=config_proxy_mock, + do_state_change=Mock(return_value=Mock(errorcode=0)) + ): + self.module = netscaler_server + self.exited() + server_proxy_mock.assert_not_called() + + def test_absent_server_noop_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_server + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + server_proxy_mock = Mock() + server_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=server_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_server', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + server_exists=Mock(side_effect=[False, False]), + server_identical=Mock(side_effect=[False, False]), + ConfigProxy=config_proxy_mock, + do_state_change=Mock(return_value=Mock(errorcode=0)) + ): + self.module = netscaler_server + self.exited() + server_proxy_mock.assert_not_called() + + def test_present_server_failed_update(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_server + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + server_proxy_mock = Mock() + server_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=server_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_server', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + server_exists=Mock(side_effect=[True, True]), + server_identical=Mock(side_effect=[False, False]), + ConfigProxy=config_proxy_mock, + do_state_change=Mock(return_value=Mock(errorcode=0)) + ): + self.module = netscaler_server + result = self.failed() + self.assertEqual(result['msg'], 'Server is not configured according to parameters given') + self.assertTrue(result['failed']) + + def test_present_server_failed_create(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_server + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + server_proxy_mock = Mock() + server_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=server_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_server', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + server_exists=Mock(side_effect=[False, False]), + server_identical=Mock(side_effect=[False, False]), + ConfigProxy=config_proxy_mock, + do_state_change=Mock(return_value=Mock(errorcode=0)) + ): + self.module = netscaler_server + result = self.failed() + self.assertEqual(result['msg'], 'Server does not seem to exist') + self.assertTrue(result['failed']) + + def test_present_server_update_immutable_attribute(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_server + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + server_proxy_mock = Mock() + server_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=server_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_server', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=['domain']), + server_exists=Mock(side_effect=[True, True]), + server_identical=Mock(side_effect=[False, False]), + ConfigProxy=config_proxy_mock, + do_state_change=Mock(return_value=Mock(errorcode=0)) + ): + self.module = netscaler_server + result = self.failed() + self.assertEqual(result['msg'], 'Cannot update immutable attributes [\'domain\']') + self.assertTrue(result['failed']) + + def test_absent_server_failed_delete(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_server + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + server_proxy_attrs = { + 'diff_object.return_value': {}, + } + server_proxy_mock = Mock() + server_proxy_mock.configure_mock(**server_proxy_attrs) + config_proxy_mock = Mock(return_value=server_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_server', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + server_exists=Mock(side_effect=[True, True]), + server_identical=Mock(side_effect=[False, False]), + ConfigProxy=config_proxy_mock, + do_state_change=Mock(return_value=Mock(errorcode=0)) + ): + self.module = netscaler_server + result = self.failed() + self.assertEqual(result['msg'], 'Server seems to be present') + self.assertTrue(result['failed']) + + def test_graceful_nitro_exception_state_present(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_server + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + m = Mock(side_effect=MockException) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_server', + server_exists=m, + nitro_exception=MockException + ): + self.module = netscaler_server + result = self.failed() + self.assertTrue( + result['msg'].startswith('nitro exception'), + msg='Nitro exception not caught on operation absent' + ) + + def test_graceful_nitro_exception_state_absent(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_server + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + m = Mock(side_effect=MockException) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_server', + server_exists=m, + nitro_exception=MockException + ): + self.module = netscaler_server + result = self.failed() + self.assertTrue( + result['msg'].startswith('nitro exception'), + msg='Nitro exception not caught on operation absent' + ) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_service.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_service.py new file mode 100644 index 000000000..868d1252d --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_service.py @@ -0,0 +1,353 @@ + +# Copyright (c) 2017 Citrix Systems +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch, Mock, MagicMock, call + +import sys + +if sys.version_info[:2] != (2, 6): + import requests + + +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .netscaler_module import TestModule, nitro_base_patcher + + +class TestNetscalerServiceModule(TestModule): + + @classmethod + def setUpClass(cls): + m = MagicMock() + cls.service_mock = MagicMock() + cls.service_mock.__class__ = MagicMock() + cls.service_lbmonitor_binding_mock = MagicMock() + cls.lbmonitor_service_binding_mock = MagicMock() + nssrc_modules_mock = { + 'nssrc.com.citrix.netscaler.nitro.resource.config.basic': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.basic.service': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.basic.service.service': cls.service_mock, + 'nssrc.com.citrix.netscaler.nitro.resource.config.basic.service_lbmonitor_binding': cls.service_lbmonitor_binding_mock, + 'nssrc.com.citrix.netscaler.nitro.resource.config.basic.service_lbmonitor_binding.service_lbmonitor_binding': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.lb': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.lb.lbmonitor_service_binding': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.lb.lbmonitor_service_binding.lbmonitor_service_binding': cls.lbmonitor_service_binding_mock, + } + + cls.nitro_specific_patcher = patch.dict(sys.modules, nssrc_modules_mock) + cls.nitro_base_patcher = nitro_base_patcher + + @classmethod + def tearDownClass(cls): + cls.nitro_base_patcher.stop() + cls.nitro_specific_patcher.stop() + + def set_module_state(self, state): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state=state, + )) + + def setUp(self): + super(TestNetscalerServiceModule, self).setUp() + self.nitro_base_patcher.start() + self.nitro_specific_patcher.start() + + # Setup minimal required arguments to pass AnsibleModule argument parsing + + def tearDown(self): + super(TestNetscalerServiceModule, self).tearDown() + self.nitro_base_patcher.stop() + self.nitro_specific_patcher.stop() + + def test_graceful_nitro_api_import_error(self): + # Stop nitro api patching to cause ImportError + self.set_module_state('present') + self.nitro_base_patcher.stop() + self.nitro_specific_patcher.stop() + from ansible_collections.community.network.plugins.modules import netscaler_service + self.module = netscaler_service + result = self.failed() + self.assertEqual(result['msg'], 'Could not load nitro python sdk') + + def test_graceful_nitro_error_on_login(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_service + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + client_mock = Mock() + client_mock.login = Mock(side_effect=MockException) + m = Mock(return_value=client_mock) + with patch('ansible_collections.community.network.plugins.modules.netscaler_service.get_nitro_client', m): + with patch('ansible_collections.community.network.plugins.modules.netscaler_service.nitro_exception', MockException): + self.module = netscaler_service + result = self.failed() + self.assertTrue(result['msg'].startswith('nitro exception'), msg='nitro exception during login not handled properly') + + def test_graceful_no_connection_error(self): + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_service + + class MockException(Exception): + pass + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.ConnectionError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_service', + get_nitro_client=m, + nitro_exception=MockException, + ): + self.module = netscaler_service + result = self.failed() + self.assertTrue(result['msg'].startswith('Connection error'), msg='Connection error was not handled gracefully') + + def test_graceful_login_error(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_service + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + + class MockException(Exception): + pass + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.SSLError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_service', + get_nitro_client=m, + nitro_exception=MockException, + ): + self.module = netscaler_service + result = self.failed() + self.assertTrue(result['msg'].startswith('SSL Error'), msg='SSL Error was not handled gracefully') + + def test_create_non_existing_service(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_service + service_proxy_mock = MagicMock() + attrs = { + 'diff_object.return_value': {}, + } + service_proxy_mock.configure_mock(**attrs) + + m = MagicMock(return_value=service_proxy_mock) + service_exists_mock = Mock(side_effect=[False, True]) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_service', + ConfigProxy=m, + service_exists=service_exists_mock, + do_state_change=Mock(return_value=Mock(errorcode=0)), + ): + self.module = netscaler_service + result = self.exited() + service_proxy_mock.assert_has_calls([call.add()]) + self.assertTrue(result['changed'], msg='Change not recorded') + + def test_update_service_when_service_differs(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_service + service_proxy_mock = MagicMock() + attrs = { + 'diff_object.return_value': {}, + } + service_proxy_mock.configure_mock(**attrs) + + m = MagicMock(return_value=service_proxy_mock) + service_exists_mock = Mock(side_effect=[True, True]) + service_identical_mock = Mock(side_effect=[False, True]) + monitor_bindings_identical_mock = Mock(side_effect=[True, True]) + all_identical_mock = Mock(side_effect=[False]) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_service', + ConfigProxy=m, + service_exists=service_exists_mock, + service_identical=service_identical_mock, + monitor_bindings_identical=monitor_bindings_identical_mock, + all_identical=all_identical_mock, + do_state_change=Mock(return_value=Mock(errorcode=0)), + ): + self.module = netscaler_service + result = self.exited() + service_proxy_mock.assert_has_calls([call.update()]) + self.assertTrue(result['changed'], msg='Change not recorded') + + def test_update_service_when_monitor_bindings_differ(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_service + service_proxy_mock = MagicMock() + attrs = { + 'diff_object.return_value': {}, + } + service_proxy_mock.configure_mock(**attrs) + + m = MagicMock(return_value=service_proxy_mock) + service_exists_mock = Mock(side_effect=[True, True]) + service_identical_mock = Mock(side_effect=[True, True]) + monitor_bindings_identical_mock = Mock(side_effect=[False, True]) + all_identical_mock = Mock(side_effect=[False]) + sync_monitor_bindings_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_service', + ConfigProxy=m, + service_exists=service_exists_mock, + service_identical=service_identical_mock, + monitor_bindings_identical=monitor_bindings_identical_mock, + all_identical=all_identical_mock, + sync_monitor_bindings=sync_monitor_bindings_mock, + do_state_change=Mock(return_value=Mock(errorcode=0)), + ): + self.module = netscaler_service + result = self.exited() + # poor man's assert_called_once since python3.5 does not implement that mock method + self.assertEqual(len(sync_monitor_bindings_mock.mock_calls), 1, msg='sync monitor bindings not called once') + self.assertTrue(result['changed'], msg='Change not recorded') + + def test_no_change_to_module_when_all_identical(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_service + service_proxy_mock = MagicMock() + attrs = { + 'diff_object.return_value': {}, + } + service_proxy_mock.configure_mock(**attrs) + + m = MagicMock(return_value=service_proxy_mock) + service_exists_mock = Mock(side_effect=[True, True]) + service_identical_mock = Mock(side_effect=[True, True]) + monitor_bindings_identical_mock = Mock(side_effect=[True, True]) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_service', + ConfigProxy=m, + service_exists=service_exists_mock, + service_identical=service_identical_mock, + monitor_bindings_identical=monitor_bindings_identical_mock, + do_state_change=Mock(return_value=Mock(errorcode=0)), + ): + self.module = netscaler_service + result = self.exited() + self.assertFalse(result['changed'], msg='Erroneous changed status update') + + def test_absent_operation(self): + self.set_module_state('absent') + from ansible_collections.community.network.plugins.modules import netscaler_service + service_proxy_mock = MagicMock() + attrs = { + 'diff_object.return_value': {}, + } + service_proxy_mock.configure_mock(**attrs) + + m = MagicMock(return_value=service_proxy_mock) + service_exists_mock = Mock(side_effect=[True, False]) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_service', + ConfigProxy=m, + service_exists=service_exists_mock, + + ): + self.module = netscaler_service + result = self.exited() + service_proxy_mock.assert_has_calls([call.delete()]) + self.assertTrue(result['changed'], msg='Changed status not set correctly') + + def test_absent_operation_no_change(self): + self.set_module_state('absent') + from ansible_collections.community.network.plugins.modules import netscaler_service + service_proxy_mock = MagicMock() + attrs = { + 'diff_object.return_value': {}, + } + service_proxy_mock.configure_mock(**attrs) + + m = MagicMock(return_value=service_proxy_mock) + service_exists_mock = Mock(side_effect=[False, False]) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_service', + ConfigProxy=m, + service_exists=service_exists_mock, + + ): + self.module = netscaler_service + result = self.exited() + service_proxy_mock.assert_not_called() + self.assertFalse(result['changed'], msg='Changed status not set correctly') + + def test_graceful_nitro_exception_operation_present(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_service + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + m = Mock(side_effect=MockException) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_service', + service_exists=m, + nitro_exception=MockException + ): + self.module = netscaler_service + result = self.failed() + self.assertTrue( + result['msg'].startswith('nitro exception'), + msg='Nitro exception not caught on operation present' + ) + + def test_graceful_nitro_exception_operation_absent(self): + self.set_module_state('absent') + from ansible_collections.community.network.plugins.modules import netscaler_service + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + m = Mock(side_effect=MockException) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_service', + service_exists=m, + nitro_exception=MockException + ): + self.module = netscaler_service + result = self.failed() + self.assertTrue( + result['msg'].startswith('nitro exception'), + msg='Nitro exception not caught on operation absent' + ) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_servicegroup.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_servicegroup.py new file mode 100644 index 000000000..0b4596550 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_servicegroup.py @@ -0,0 +1,540 @@ + +# Copyright (c) 2017 Citrix Systems +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch, Mock, MagicMock, call + +import sys + +if sys.version_info[:2] != (2, 6): + import requests + + +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .netscaler_module import TestModule, nitro_base_patcher + + +class TestNetscalerServicegroupModule(TestModule): + + @classmethod + def setUpClass(cls): + class MockException(Exception): + pass + cls.MockException = MockException + m = MagicMock() + cls.servicegroup_mock = MagicMock() + cls.servicegroup_mock.__class__ = MagicMock() + nssrc_modules_mock = { + 'nssrc.com.citrix.netscaler.nitro.resource.config.basic': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.basic.servicegroup': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.basic.servicegroup.servicegroup': cls.servicegroup_mock, + 'nssrc.com.citrix.netscaler.nitro.resource.config.basic.servicegroup_servicegroupmember_binding': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.basic.servicegroup_servicegroupmember_binding.servicegroup_servicegroupmember_binding': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.basic.servicegroup_lbmonitor_binding': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.basic.servicegroup_lbmonitor_binding.servicegroup_lbmonitor_binding': m, + + 'nssrc.com.citrix.netscaler.nitro.resource.config.lb': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.lb.lbmonitor_servicegroup_binding': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.lb.lbmonitor_servicegroup_binding.lbmonitor_servicegroup_binding': m + } + + cls.nitro_specific_patcher = patch.dict(sys.modules, nssrc_modules_mock) + cls.nitro_base_patcher = nitro_base_patcher + + @classmethod + def tearDownClass(cls): + cls.nitro_base_patcher.stop() + cls.nitro_specific_patcher.stop() + + def set_module_state(self, state): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state=state, + )) + + def setUp(self): + super(TestNetscalerServicegroupModule, self).setUp() + self.nitro_base_patcher.start() + self.nitro_specific_patcher.start() + + # Setup minimal required arguments to pass AnsibleModule argument parsing + + def tearDown(self): + super(TestNetscalerServicegroupModule, self).tearDown() + self.nitro_base_patcher.stop() + self.nitro_specific_patcher.stop() + + def test_graceful_nitro_api_import_error(self): + # Stop nitro api patching to cause ImportError + self.set_module_state('present') + self.nitro_base_patcher.stop() + self.nitro_specific_patcher.stop() + from ansible_collections.community.network.plugins.modules import netscaler_servicegroup + self.module = netscaler_servicegroup + result = self.failed() + self.assertEqual(result['msg'], 'Could not load nitro python sdk') + + def test_graceful_nitro_error_on_login(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_servicegroup + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + client_mock = Mock() + client_mock.login = Mock(side_effect=MockException) + m = Mock(return_value=client_mock) + with patch('ansible_collections.community.network.plugins.modules.netscaler_servicegroup.get_nitro_client', m): + with patch('ansible_collections.community.network.plugins.modules.netscaler_servicegroup.nitro_exception', MockException): + self.module = netscaler_servicegroup + result = self.failed() + self.assertTrue(result['msg'].startswith('nitro exception'), msg='nitro exception during login not handled properly') + + def test_graceful_no_connection_error(self): + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_servicegroup + + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.ConnectionError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_servicegroup', + get_nitro_client=m, + nitro_exception=self.MockException, + ): + self.module = netscaler_servicegroup + result = self.failed() + self.assertTrue(result['msg'].startswith('Connection error'), msg='Connection error was not handled gracefully') + + def test_graceful_login_error(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_servicegroup + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.SSLError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_servicegroup', + get_nitro_client=m, + nitro_exception=self.MockException, + ): + self.module = netscaler_servicegroup + result = self.failed() + self.assertTrue(result['msg'].startswith('SSL Error'), msg='SSL Error was not handled gracefully') + + def test_create_non_existing_servicegroup(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_servicegroup + servicegroup_proxy_mock = MagicMock() + attrs = { + 'diff_object.return_value': {}, + } + servicegroup_proxy_mock.configure_mock(**attrs) + + m = MagicMock(return_value=servicegroup_proxy_mock) + servicegroup_exists_mock = Mock(side_effect=[False, True]) + + servicegroup_servicegroupmember_binding_mock = Mock(count=Mock(return_value=0)) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_servicegroup', + ConfigProxy=m, + servicegroup_exists=servicegroup_exists_mock, + servicemembers_identical=Mock(side_effect=[False, True]), + do_state_change=Mock(return_value=Mock(errorcode=0)), + servicegroup_servicegroupmember_binding=servicegroup_servicegroupmember_binding_mock, + nitro_exception=self.MockException, + ): + self.module = netscaler_servicegroup + result = self.exited() + servicegroup_proxy_mock.assert_has_calls([call.add()]) + self.assertTrue(result['changed'], msg='Change not recorded') + + def test_update_servicegroup_when_servicegroup_differs(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_servicegroup + servicegroup_proxy_mock = MagicMock() + attrs = { + 'diff_object.return_value': {}, + } + servicegroup_proxy_mock.configure_mock(**attrs) + + m = MagicMock(return_value=servicegroup_proxy_mock) + servicegroup_exists_mock = Mock(side_effect=[True, True]) + servicegroup_identical_mock = Mock(side_effect=[False, True]) + monitor_bindings_identical_mock = Mock(side_effect=[True, True]) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_servicegroup', + ConfigProxy=m, + servicegroup_exists=servicegroup_exists_mock, + servicegroup_identical=servicegroup_identical_mock, + monitor_bindings_identical=monitor_bindings_identical_mock, + servicemembers_identical=Mock(side_effect=[True, True]), + do_state_change=Mock(return_value=Mock(errorcode=0)), + nitro_exception=self.MockException, + ): + self.module = netscaler_servicegroup + result = self.exited() + servicegroup_proxy_mock.assert_has_calls([call.update()]) + self.assertTrue(result['changed'], msg='Change not recorded') + + def test_update_servicegroup_when_monitor_bindings_differ(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_servicegroup + servicegroup_proxy_mock = MagicMock() + attrs = { + 'diff_object.return_value': {}, + } + servicegroup_proxy_mock.configure_mock(**attrs) + + m = MagicMock(return_value=servicegroup_proxy_mock) + servicegroup_exists_mock = Mock(side_effect=[True, True]) + servicegroup_identical_mock = Mock(side_effect=[True, True]) + monitor_bindings_identical_mock = Mock(side_effect=[False, True]) + sync_monitor_bindings_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_servicegroup', + ConfigProxy=m, + servicegroup_exists=servicegroup_exists_mock, + servicegroup_identical=servicegroup_identical_mock, + monitor_bindings_identical=monitor_bindings_identical_mock, + nitro_exception=self.MockException, + servicemembers_identical=Mock(side_effect=[True, True]), + sync_monitor_bindings=sync_monitor_bindings_mock, + do_state_change=Mock(return_value=Mock(errorcode=0)), + ): + self.module = netscaler_servicegroup + result = self.exited() + # poor man's assert_called_once since python3.5 does not implement that mock method + self.assertEqual(len(sync_monitor_bindings_mock.mock_calls), 1, msg='sync monitor bindings not called once') + self.assertTrue(result['changed'], msg='Change not recorded') + + def test_update_servicegroup_when_service_members_differ(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_servicegroup + servicegroup_proxy_mock = MagicMock() + attrs = { + 'diff_object.return_value': {}, + } + servicegroup_proxy_mock.configure_mock(**attrs) + + m = MagicMock(return_value=servicegroup_proxy_mock) + sync_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_servicegroup', + ConfigProxy=m, + servicegroup_exists=Mock(side_effect=[True, True]), + servicegroup_identical=Mock(side_effect=[True, True]), + monitor_bindings_identical=Mock(side_effect=[True, True]), + sync_monitor_bindings=Mock(), + servicemembers_identical=Mock(side_effect=[False, True]), + sync_service_members=sync_mock, + do_state_change=Mock(return_value=Mock(errorcode=0)), + ): + self.module = netscaler_servicegroup + result = self.exited() + # poor man's assert_called_once since python3.5 does not implement that mock method + self.assertEqual(len(sync_mock.mock_calls), 1, msg='sync monitor bindings not called once') + self.assertTrue(result['changed'], msg='Change not recorded') + + def test_immutables_changed(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_servicegroup + servicegroup_proxy_mock = MagicMock() + attrs = { + 'diff_object.return_value': {}, + } + servicegroup_proxy_mock.configure_mock(**attrs) + + m = MagicMock(return_value=servicegroup_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_servicegroup', + ConfigProxy=m, + servicegroup_exists=Mock(side_effect=[True, True]), + servicegroup_identical=Mock(side_effect=[False, True]), + get_immutables_intersection=Mock(return_value=['some']), + nitro_exception=self.MockException, + + ): + self.module = netscaler_servicegroup + result = self.failed() + self.assertTrue(result['msg'].startswith('Cannot update immutable attributes')) + + def test_servicegroup_exists_sanity(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_servicegroup + servicegroup_proxy_mock = MagicMock() + attrs = { + 'diff_object.return_value': {}, + } + servicegroup_proxy_mock.configure_mock(**attrs) + + m = MagicMock(return_value=servicegroup_proxy_mock) + sync_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_servicegroup', + ConfigProxy=m, + servicegroup_exists=Mock(side_effect=[False, False]), + servicegroup_identical=Mock(side_effect=[False, False]), + monitor_bindings_identical=Mock(side_effect=[True, True]), + sync_monitor_bindings=Mock(), + servicemembers_identical=Mock(side_effect=[False, True]), + nitro_exception=self.MockException, + sync_service_members=sync_mock, + do_state_change=Mock(return_value=Mock(errorcode=0)), + ): + self.module = netscaler_servicegroup + result = self.failed() + self.assertEqual(result['msg'], 'Service group is not present') + + def test_servicegroup_differ_sanity(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_servicegroup + servicegroup_proxy_mock = MagicMock() + attrs = { + 'diff_object.return_value': {}, + } + servicegroup_proxy_mock.configure_mock(**attrs) + + m = MagicMock(return_value=servicegroup_proxy_mock) + sync_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_servicegroup', + ConfigProxy=m, + servicegroup_exists=Mock(side_effect=[True, True]), + servicegroup_identical=Mock(side_effect=[False, False]), + monitor_bindings_identical=Mock(side_effect=[True, True]), + sync_monitor_bindings=Mock(), + servicemembers_identical=Mock(side_effect=[False, True]), + nitro_exception=self.MockException, + sync_service_members=sync_mock, + do_state_change=Mock(return_value=Mock(errorcode=0)), + ): + self.module = netscaler_servicegroup + result = self.failed() + self.assertEqual(result['msg'], 'Service group is not identical to configuration') + + def test_servicegroup_servicemembers_differ_sanity(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_servicegroup + servicegroup_proxy_mock = MagicMock() + attrs = { + 'diff_object.return_value': {}, + } + servicegroup_proxy_mock.configure_mock(**attrs) + + m = MagicMock(return_value=servicegroup_proxy_mock) + sync_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_servicegroup', + ConfigProxy=m, + servicegroup_exists=Mock(side_effect=[True, True]), + servicegroup_identical=Mock(side_effect=[True, True]), + monitor_bindings_identical=Mock(side_effect=[True, True]), + sync_monitor_bindings=Mock(), + servicemembers_identical=Mock(side_effect=[False, False]), + nitro_exception=self.MockException, + sync_service_members=sync_mock, + do_state_change=Mock(return_value=Mock(errorcode=0)), + ): + self.module = netscaler_servicegroup + result = self.failed() + self.assertEqual(result['msg'], 'Service group members differ from configuration') + + def test_servicegroup_monitor_bindings_sanity(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_servicegroup + servicegroup_proxy_mock = MagicMock() + attrs = { + 'diff_object.return_value': {}, + } + servicegroup_proxy_mock.configure_mock(**attrs) + + m = MagicMock(return_value=servicegroup_proxy_mock) + sync_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_servicegroup', + ConfigProxy=m, + servicegroup_exists=Mock(side_effect=[True, True]), + servicegroup_identical=Mock(side_effect=[True, True]), + monitor_bindings_identical=Mock(side_effect=[False, False]), + sync_monitor_bindings=Mock(), + servicemembers_identical=Mock(side_effect=[True, True]), + nitro_exception=self.MockException, + sync_service_members=sync_mock, + do_state_change=Mock(return_value=Mock(errorcode=0)), + ): + self.module = netscaler_servicegroup + result = self.failed() + self.assertEqual(result['msg'], 'Monitor bindings are not identical') + + def test_no_change_to_module_when_all_identical(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_servicegroup + servicegroup_proxy_mock = MagicMock() + attrs = { + 'diff_object.return_value': {}, + } + servicegroup_proxy_mock.configure_mock(**attrs) + + m = MagicMock(return_value=servicegroup_proxy_mock) + servicegroup_exists_mock = Mock(side_effect=[True, True]) + servicegroup_identical_mock = Mock(side_effect=[True, True]) + monitor_bindings_identical_mock = Mock(side_effect=[True, True]) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_servicegroup', + ConfigProxy=m, + servicegroup_exists=servicegroup_exists_mock, + servicegroup_identical=servicegroup_identical_mock, + servicemembers_identical=Mock(side_effect=[True, True]), + monitor_bindings_identical=monitor_bindings_identical_mock, + do_state_change=Mock(return_value=Mock(errorcode=0)), + nitro_exception=self.MockException, + ): + self.module = netscaler_servicegroup + result = self.exited() + self.assertFalse(result['changed'], msg='Erroneous changed status update') + + def test_absent_operation(self): + self.set_module_state('absent') + from ansible_collections.community.network.plugins.modules import netscaler_servicegroup + servicegroup_proxy_mock = MagicMock() + attrs = { + 'diff_object.return_value': {}, + } + servicegroup_proxy_mock.configure_mock(**attrs) + + m = MagicMock(return_value=servicegroup_proxy_mock) + servicegroup_exists_mock = Mock(side_effect=[True, False]) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_servicegroup', + ConfigProxy=m, + servicegroup_exists=servicegroup_exists_mock, + + ): + self.module = netscaler_servicegroup + result = self.exited() + servicegroup_proxy_mock.assert_has_calls([call.delete()]) + self.assertTrue(result['changed'], msg='Changed status not set correctly') + + def test_absent_operation_no_change(self): + self.set_module_state('absent') + from ansible_collections.community.network.plugins.modules import netscaler_servicegroup + servicegroup_proxy_mock = MagicMock() + attrs = { + 'diff_object.return_value': {}, + } + servicegroup_proxy_mock.configure_mock(**attrs) + + m = MagicMock(return_value=servicegroup_proxy_mock) + servicegroup_exists_mock = Mock(side_effect=[False, False]) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_servicegroup', + ConfigProxy=m, + servicegroup_exists=servicegroup_exists_mock, + + ): + self.module = netscaler_servicegroup + result = self.exited() + servicegroup_proxy_mock.assert_not_called() + self.assertFalse(result['changed'], msg='Changed status not set correctly') + + def test_absent_operation_sanity(self): + self.set_module_state('absent') + from ansible_collections.community.network.plugins.modules import netscaler_servicegroup + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_servicegroup', + ConfigProxy=MagicMock(), + servicegroup_exists=Mock(side_effect=[True, True]), + nitro_exception=self.MockException, + + ): + self.module = netscaler_servicegroup + result = self.failed() + self.assertEqual(result['msg'], 'Service group is present') + + def test_graceful_nitro_exception_operation_present(self): + self.set_module_state('present') + from ansible_collections.community.network.plugins.modules import netscaler_servicegroup + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + m = Mock(side_effect=MockException) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_servicegroup', + servicegroup_exists=m, + nitro_exception=MockException + ): + self.module = netscaler_servicegroup + result = self.failed() + self.assertTrue( + result['msg'].startswith('nitro exception'), + msg='Nitro exception not caught on operation present' + ) + + def test_graceful_nitro_exception_operation_absent(self): + self.set_module_state('absent') + from ansible_collections.community.network.plugins.modules import netscaler_servicegroup + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + m = Mock(side_effect=MockException) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_servicegroup', + servicegroup_exists=m, + nitro_exception=MockException + ): + self.module = netscaler_servicegroup + result = self.failed() + self.assertTrue( + result['msg'].startswith('nitro exception'), + msg='Nitro exception not caught on operation absent' + ) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_ssl_certkey.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_ssl_certkey.py new file mode 100644 index 000000000..127ea3985 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_netscaler_ssl_certkey.py @@ -0,0 +1,624 @@ + +# Copyright (c) 2017 Citrix Systems +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch, Mock, MagicMock, call +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .netscaler_module import TestModule, nitro_base_patcher + +import sys + +if sys.version_info[:2] != (2, 6): + import requests + + +class TestNetscalerSSLCertkeyModule(TestModule): + + @classmethod + def setUpClass(cls): + class MockException(Exception): + pass + + cls.MockException = MockException + + m = MagicMock() + cls.server_mock = MagicMock() + cls.server_mock.__class__ = MagicMock(add=Mock()) + nssrc_modules_mock = { + 'nssrc.com.citrix.netscaler.nitro.resource.config.ssl': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.ssl.sslcertkey': m, + 'nssrc.com.citrix.netscaler.nitro.resource.config.ssl.sslcertkey.sslcertkey': m, + } + + cls.nitro_specific_patcher = patch.dict(sys.modules, nssrc_modules_mock) + cls.nitro_base_patcher = nitro_base_patcher + + @classmethod + def tearDownClass(cls): + cls.nitro_base_patcher.stop() + cls.nitro_specific_patcher.stop() + + def setUp(self): + super(TestNetscalerSSLCertkeyModule, self).setUp() + self.nitro_base_patcher.start() + self.nitro_specific_patcher.start() + + # Setup minimal required arguments to pass AnsibleModule argument parsing + + def tearDown(self): + super(TestNetscalerSSLCertkeyModule, self).tearDown() + self.nitro_base_patcher.stop() + self.nitro_specific_patcher.stop() + + def test_graceful_nitro_api_import_error(self): + # Stop nitro api patching to cause ImportError + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + self.nitro_base_patcher.stop() + self.nitro_specific_patcher.stop() + from ansible_collections.community.network.plugins.modules import netscaler_ssl_certkey + self.module = netscaler_ssl_certkey + result = self.failed() + self.assertEqual(result['msg'], 'Could not load nitro python sdk') + + def test_graceful_nitro_error_on_login(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_ssl_certkey + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + client_mock = Mock() + client_mock.login = Mock(side_effect=MockException) + m = Mock(return_value=client_mock) + with patch('ansible_collections.community.network.plugins.modules.netscaler_ssl_certkey.get_nitro_client', m): + with patch('ansible_collections.community.network.plugins.modules.netscaler_ssl_certkey.nitro_exception', MockException): + self.module = netscaler_ssl_certkey + result = self.failed() + self.assertTrue(result['msg'].startswith('nitro exception'), msg='nitro exception during login not handled properly') + + def test_graceful_no_connection_error(self): + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_ssl_certkey + + class MockException(Exception): + pass + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.ConnectionError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_ssl_certkey', + get_nitro_client=m, + nitro_exception=MockException, + ): + self.module = netscaler_ssl_certkey + result = self.failed() + self.assertTrue(result['msg'].startswith('Connection error'), msg='Connection error was not handled gracefully') + + def test_graceful_login_error(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_ssl_certkey + + if sys.version_info[:2] == (2, 6): + self.skipTest('requests library not available under python2.6') + + class MockException(Exception): + pass + client_mock = Mock() + attrs = {'login.side_effect': requests.exceptions.SSLError} + client_mock.configure_mock(**attrs) + m = Mock(return_value=client_mock) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_ssl_certkey', + get_nitro_client=m, + nitro_exception=MockException, + ): + self.module = netscaler_ssl_certkey + result = self.failed() + self.assertTrue(result['msg'].startswith('SSL Error'), msg='SSL Error was not handled gracefully') + + def test_save_config_called_on_state_present(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_ssl_certkey + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + ssl_certkey_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_ssl_certkey', + get_nitro_client=m, + key_exists=Mock(side_effect=[False, True]), + key_identical=Mock(side_effect=[True]), + ConfigProxy=Mock(return_value=ssl_certkey_proxy_mock), + nitro_exception=self.MockException, + ): + self.module = netscaler_ssl_certkey + self.exited() + self.assertIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_called_on_state_absent(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_ssl_certkey + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + ssl_certkey_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_ssl_certkey', + get_nitro_client=m, + key_exists=Mock(side_effect=[True, False]), + ConfigProxy=Mock(return_value=ssl_certkey_proxy_mock), + ): + self.module = netscaler_ssl_certkey + self.exited() + self.assertIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_not_called_on_state_present(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_ssl_certkey + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + ssl_certkey_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_ssl_certkey', + get_nitro_client=m, + key_exists=Mock(side_effect=[False, True]), + key_identical=Mock(side_effect=[True]), + ConfigProxy=Mock(return_value=ssl_certkey_proxy_mock), + nitro_exception=self.MockException, + ): + self.module = netscaler_ssl_certkey + self.exited() + self.assertNotIn(call.save_config(), client_mock.mock_calls) + + def test_save_config_not_called_on_state_absent(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + save_config=False, + )) + from ansible_collections.community.network.plugins.modules import netscaler_ssl_certkey + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + ssl_certkey_proxy_mock = Mock() + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_ssl_certkey', + get_nitro_client=m, + key_exists=Mock(side_effect=[True, False]), + ConfigProxy=Mock(return_value=ssl_certkey_proxy_mock), + ): + self.module = netscaler_ssl_certkey + self.exited() + self.assertNotIn(call.save_config(), client_mock.mock_calls) + + def test_new_ssl_certkey_execution_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_ssl_certkey + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + ssl_certkey_proxy_attrs = { + 'diff_object.return_value': {}, + } + ssl_certkey_proxy_mock = Mock() + ssl_certkey_proxy_mock.configure_mock(**ssl_certkey_proxy_attrs) + config_proxy_mock = Mock(return_value=ssl_certkey_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_ssl_certkey', + get_nitro_client=m, + key_exists=Mock(side_effect=[False, True]), + key_identical=Mock(side_effect=[True]), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_ssl_certkey + self.exited() + ssl_certkey_proxy_mock.assert_has_calls([call.add()]) + + def test_modified_server_execution_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_ssl_certkey + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + ssl_certkey_proxy_attrs = { + 'diff_object.return_value': {}, + } + ssl_certkey_proxy_mock = Mock() + ssl_certkey_proxy_mock.configure_mock(**ssl_certkey_proxy_attrs) + config_proxy_mock = Mock(return_value=ssl_certkey_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_ssl_certkey', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + key_exists=Mock(side_effect=[True, True]), + key_identical=Mock(side_effect=[False, True]), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_ssl_certkey + self.exited() + ssl_certkey_proxy_mock.assert_has_calls([call.update()]) + + def test_absent_server_execution_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_ssl_certkey + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + ssl_certkey_proxy_attrs = { + 'diff_object.return_value': {}, + } + ssl_certkey_proxy_mock = Mock() + ssl_certkey_proxy_mock.configure_mock(**ssl_certkey_proxy_attrs) + config_proxy_mock = Mock(return_value=ssl_certkey_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_ssl_certkey', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + key_exists=Mock(side_effect=[True, False]), + key_identical=Mock(side_effect=[False, True]), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_ssl_certkey + self.exited() + ssl_certkey_proxy_mock.assert_has_calls([call.delete()]) + + def test_present_key_identical_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_ssl_certkey + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + ssl_certkey_proxy_attrs = { + 'diff_object.return_value': {}, + } + ssl_certkey_proxy_mock = Mock() + ssl_certkey_proxy_mock.configure_mock(**ssl_certkey_proxy_attrs) + config_proxy_mock = Mock(return_value=ssl_certkey_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_ssl_certkey', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + key_exists=Mock(side_effect=[True, True]), + key_identical=Mock(side_effect=[True, True]), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_ssl_certkey + self.exited() + ssl_certkey_proxy_mock.assert_not_called() + + def test_absent_server_noop_flow(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_ssl_certkey + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + ssl_certkey_proxy_attrs = { + 'diff_object.return_value': {}, + } + ssl_certkey_proxy_mock = Mock() + ssl_certkey_proxy_mock.configure_mock(**ssl_certkey_proxy_attrs) + config_proxy_mock = Mock(return_value=ssl_certkey_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_ssl_certkey', + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + key_exists=Mock(side_effect=[False, False]), + key_identical=Mock(side_effect=[False, False]), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_ssl_certkey + self.exited() + ssl_certkey_proxy_mock.assert_not_called() + + def test_present_server_failed_update(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_ssl_certkey + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + ssl_certkey_proxy_attrs = { + 'diff_object.return_value': {}, + } + ssl_certkey_proxy_mock = Mock() + ssl_certkey_proxy_mock.configure_mock(**ssl_certkey_proxy_attrs) + config_proxy_mock = Mock(return_value=ssl_certkey_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_ssl_certkey', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + key_exists=Mock(side_effect=[True, True]), + key_identical=Mock(side_effect=[False, False]), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_ssl_certkey + result = self.failed() + self.assertEqual(result['msg'], 'SSL certkey differs from configured') + self.assertTrue(result['failed']) + + def test_present_server_failed_create(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_ssl_certkey + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + ssl_certkey_proxy_attrs = { + 'diff_object.return_value': {}, + } + ssl_certkey_proxy_mock = Mock() + ssl_certkey_proxy_mock.configure_mock(**ssl_certkey_proxy_attrs) + config_proxy_mock = Mock(return_value=ssl_certkey_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_ssl_certkey', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + key_exists=Mock(side_effect=[False, False]), + key_identical=Mock(side_effect=[False, False]), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_ssl_certkey + result = self.failed() + self.assertEqual(result['msg'], 'SSL certkey does not exist') + self.assertTrue(result['failed']) + + def test_present_server_update_immutable_attribute(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_ssl_certkey + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + ssl_certkey_proxy_attrs = { + 'diff_object.return_value': {}, + } + ssl_certkey_proxy_mock = Mock() + ssl_certkey_proxy_mock.configure_mock(**ssl_certkey_proxy_attrs) + config_proxy_mock = Mock(return_value=ssl_certkey_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_ssl_certkey', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=['domain']), + key_exists=Mock(side_effect=[True, True]), + key_identical=Mock(side_effect=[False, False]), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_ssl_certkey + result = self.failed() + self.assertEqual(result['msg'], 'Cannot update immutable attributes [\'domain\']') + self.assertTrue(result['failed']) + + def test_absent_server_failed_delete(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_ssl_certkey + + client_mock = Mock() + + m = Mock(return_value=client_mock) + + ssl_certkey_proxy_attrs = { + 'diff_object.return_value': {}, + } + ssl_certkey_proxy_mock = Mock() + ssl_certkey_proxy_mock.configure_mock(**ssl_certkey_proxy_attrs) + config_proxy_mock = Mock(return_value=ssl_certkey_proxy_mock) + + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_ssl_certkey', + nitro_exception=self.MockException, + get_nitro_client=m, + diff_list=Mock(return_value={}), + get_immutables_intersection=Mock(return_value=[]), + key_exists=Mock(side_effect=[True, True]), + key_identical=Mock(side_effect=[False, False]), + ConfigProxy=config_proxy_mock, + ): + self.module = netscaler_ssl_certkey + result = self.failed() + self.assertEqual(result['msg'], 'SSL certkey still exists') + self.assertTrue(result['failed']) + + def test_graceful_nitro_exception_state_present(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='present', + )) + from ansible_collections.community.network.plugins.modules import netscaler_ssl_certkey + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + m = Mock(side_effect=MockException) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_ssl_certkey', + key_exists=m, + nitro_exception=MockException + ): + self.module = netscaler_ssl_certkey + result = self.failed() + self.assertTrue( + result['msg'].startswith('nitro exception'), + msg='Nitro exception not caught on operation absent' + ) + + def test_graceful_nitro_exception_state_absent(self): + set_module_args(dict( + nitro_user='user', + nitro_pass='pass', + nsip='192.0.2.1', + state='absent', + )) + from ansible_collections.community.network.plugins.modules import netscaler_ssl_certkey + + class MockException(Exception): + def __init__(self, *args, **kwargs): + self.errorcode = 0 + self.message = '' + + m = Mock(side_effect=MockException) + with patch.multiple( + 'ansible_collections.community.network.plugins.modules.netscaler_ssl_certkey', + key_exists=m, + nitro_exception=MockException + ): + self.module = netscaler_ssl_certkey + result = self.failed() + self.assertTrue( + result['msg'].startswith('nitro exception'), + msg='Nitro exception not caught on operation absent' + ) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_nos_command.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_nos_command.py new file mode 100644 index 000000000..b5f27f3b8 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_nos_command.py @@ -0,0 +1,121 @@ +# +# (c) 2018 Extreme Networks Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import json + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from ansible_collections.community.network.plugins.modules import nos_command +from .nos_module import TestNosModule, load_fixture + + +class TestNosCommandModule(TestNosModule): + + module = nos_command + + def setUp(self): + super(TestNosCommandModule, self).setUp() + + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.nos_command.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestNosCommandModule, self).tearDown() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + + def load_from_file(*args, **kwargs): + module, commands = args + output = list() + + for item in commands: + try: + obj = json.loads(item['command']) + command = obj['command'] + except ValueError: + command = item['command'] + filename = str(command).replace(' ', '_') + output.append(load_fixture(filename)) + return output + + self.run_commands.side_effect = load_from_file + + def test_nos_command_simple(self): + set_module_args(dict(commands=['show version'])) + result = self.execute_module() + self.assertEqual(len(result['stdout']), 1) + self.assertTrue(result['stdout'][0].startswith('Network Operating System Software')) + + def test_nos_command_multiple(self): + set_module_args(dict(commands=['show version', 'show version'])) + result = self.execute_module() + self.assertEqual(len(result['stdout']), 2) + self.assertTrue(result['stdout'][0].startswith('Network Operating System Software')) + + def test_nos_command_wait_for(self): + wait_for = 'result[0] contains "Network Operating System Software"' + set_module_args(dict(commands=['show version'], wait_for=wait_for)) + self.execute_module() + + def test_nos_command_wait_for_fails(self): + wait_for = 'result[0] contains "test string"' + set_module_args(dict(commands=['show version'], wait_for=wait_for)) + self.execute_module(failed=True) + self.assertEqual(self.run_commands.call_count, 10) + + def test_nos_command_retries(self): + wait_for = 'result[0] contains "test string"' + set_module_args(dict(commands=['show version'], wait_for=wait_for, retries=2)) + self.execute_module(failed=True) + self.assertEqual(self.run_commands.call_count, 2) + + def test_nos_command_match_any(self): + wait_for = ['result[0] contains "Network"', + 'result[0] contains "test string"'] + set_module_args(dict(commands=['show version'], wait_for=wait_for, match='any')) + self.execute_module() + + def test_nos_command_match_all(self): + wait_for = ['result[0] contains "Network"', + 'result[0] contains "Network Operating System Software"'] + set_module_args(dict(commands=['show version'], wait_for=wait_for, match='all')) + self.execute_module() + + def test_nos_command_match_all_failure(self): + wait_for = ['result[0] contains "Network Operating System Software"', + 'result[0] contains "test string"'] + commands = ['show version', 'show version'] + set_module_args(dict(commands=commands, wait_for=wait_for, match='all')) + self.execute_module(failed=True) + + def test_nos_command_configure_error(self): + commands = ['configure terminal'] + set_module_args({ + 'commands': commands, + '_ansible_check_mode': True, + }) + result = self.execute_module(failed=True) + self.assertEqual( + result['msg'], + 'nos_command does not support running config mode commands. ' + 'Please use nos_config instead' + ) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_nos_config.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_nos_config.py new file mode 100644 index 000000000..e5d99e6e0 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_nos_config.py @@ -0,0 +1,167 @@ +# +# (c) 2018 Extreme Networks Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from ansible_collections.community.network.plugins.modules import nos_config +from .nos_module import TestNosModule, load_fixture + + +class TestNosConfigModule(TestNosModule): + + module = nos_config + + def setUp(self): + super(TestNosConfigModule, self).setUp() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.nos_config.get_config') + self.get_config = self.mock_get_config.start() + + self.mock_load_config = patch('ansible_collections.community.network.plugins.modules.nos_config.load_config') + self.load_config = self.mock_load_config.start() + + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.nos_config.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestNosConfigModule, self).tearDown() + self.mock_get_config.stop() + self.mock_load_config.stop() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + config_file = 'nos_config_config.cfg' + self.get_config.return_value = load_fixture(config_file) + self.load_config.return_value = None + + def test_nos_config_unchanged(self): + src = load_fixture('nos_config_config.cfg') + set_module_args(dict(src=src)) + self.execute_module() + + def test_nos_config_src(self): + src = load_fixture('nos_config_src.cfg') + set_module_args(dict(src=src)) + commands = ['hostname foo', 'interface TenGigabitEthernet 104/0/0', + 'no ip address'] + self.execute_module(changed=True, commands=commands) + + def test_nos_config_backup(self): + set_module_args(dict(backup=True)) + result = self.execute_module() + self.assertIn('__backup__', result) + + def test_nos_config_lines_wo_parents(self): + set_module_args(dict(lines=['hostname foo'])) + commands = ['hostname foo'] + self.execute_module(changed=True, commands=commands) + + def test_nos_config_lines_w_parents(self): + set_module_args(dict(lines=['shutdown'], parents=['interface TenGigabitEthernet 104/0/0'])) + commands = ['interface TenGigabitEthernet 104/0/0', 'shutdown'] + self.execute_module(changed=True, commands=commands) + + def test_nos_config_before(self): + set_module_args(dict(lines=['hostname foo'], before=['test1', 'test2'])) + commands = ['test1', 'test2', 'hostname foo'] + self.execute_module(changed=True, commands=commands, sort=False) + + def test_nos_config_after(self): + set_module_args(dict(lines=['hostname foo'], after=['test1', 'test2'])) + commands = ['hostname foo', 'test1', 'test2'] + self.execute_module(changed=True, commands=commands, sort=False) + + def test_nos_config_before_after_no_change(self): + set_module_args(dict(lines=['hostname router'], + before=['test1', 'test2'], + after=['test3', 'test4'])) + self.execute_module() + + def test_nos_config_config(self): + config = 'hostname localhost' + set_module_args(dict(lines=['hostname router'], config=config)) + commands = ['hostname router'] + self.execute_module(changed=True, commands=commands) + + def test_nos_config_replace_block(self): + lines = ['description test string', 'test string'] + parents = ['interface TenGigabitEthernet 104/0/0'] + set_module_args(dict(lines=lines, replace='block', parents=parents)) + commands = parents + lines + self.execute_module(changed=True, commands=commands) + + def test_nos_config_match_none(self): + lines = ['hostname router'] + set_module_args(dict(lines=lines, match='none')) + self.execute_module(changed=True, commands=lines) + + def test_nos_config_match_none_parents(self): + lines = ['ip address 1.2.3.4 255.255.255.0', 'description test string'] + parents = ['interface TenGigabitEthernet 104/0/0'] + set_module_args(dict(lines=lines, parents=parents, match='none')) + commands = parents + lines + self.execute_module(changed=True, commands=commands, sort=False) + + def test_nos_config_match_strict(self): + lines = ['ip address 1.2.3.4 255.255.255.0', 'description test string', + 'shutdown'] + parents = ['interface TenGigabitEthernet 104/0/0'] + set_module_args(dict(lines=lines, parents=parents, match='strict')) + commands = parents + ['shutdown'] + self.execute_module(changed=True, commands=commands, sort=False) + + def test_nos_config_match_exact(self): + lines = ['ip address 1.2.3.4 255.255.255.0', 'description test string', + 'shutdown'] + parents = ['interface TenGigabitEthernet 104/0/0'] + set_module_args(dict(lines=lines, parents=parents, match='exact')) + commands = parents + lines + self.execute_module(changed=True, commands=commands, sort=False) + + def test_nos_config_src_and_lines_fails(self): + args = dict(src='foo', lines='foo') + set_module_args(args) + self.execute_module(failed=True) + + def test_nos_config_src_and_parents_fails(self): + args = dict(src='foo', parents='foo') + set_module_args(args) + self.execute_module(failed=True) + + def test_nos_config_match_exact_requires_lines(self): + args = dict(match='exact') + set_module_args(args) + self.execute_module(failed=True) + + def test_nos_config_match_strict_requires_lines(self): + args = dict(match='strict') + set_module_args(args) + self.execute_module(failed=True) + + def test_nos_config_replace_block_requires_lines(self): + args = dict(replace='block') + set_module_args(args) + self.execute_module(failed=True) + + def test_nos_config_replace_config_requires_src(self): + args = dict(replace='config') + set_module_args(args) + self.execute_module(failed=True) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_nos_facts.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_nos_facts.py new file mode 100644 index 000000000..7577698ce --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_nos_facts.py @@ -0,0 +1,61 @@ +# +# (c) 2018 Extreme Networks Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from ansible_collections.community.network.plugins.modules import nos_facts +from .nos_module import TestNosModule, load_fixture + + +class TestNosFactsModule(TestNosModule): + + module = nos_facts + + def setUp(self): + super(TestNosFactsModule, self).setUp() + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.nos_facts.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestNosFactsModule, self).tearDown() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + def load_from_file(*args, **kwargs): + commands = args[1] + output = list() + + for command in commands: + filename = str(command).split(' | ')[0].replace(' ', '_') + output.append(load_fixture('nos_facts_%s' % filename)) + return output + + self.run_commands.side_effect = load_from_file + + def test_nos_facts(self): + set_module_args(dict(gather_subset='default')) + result = self.execute_module() + self.assertEqual( + result['ansible_facts']['ansible_net_model'], 'BR-VDX6740' + ) + self.assertEqual( + result['ansible_facts']['ansible_net_serialnum'], 'CPL2541K01E' + ) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_nuage_vspk.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_nuage_vspk.py new file mode 100644 index 000000000..7d0347f3d --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_nuage_vspk.py @@ -0,0 +1,1424 @@ +# -*- coding: utf-8 -*- + +# (c) 2017, Nokia +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +import sys + +import pytest + +pytestmark = [] + +if not (sys.version_info[0] == 2 and sys.version_info[1] >= 7): + pytestmark.append(pytest.mark.skip('Nuage Ansible modules requires Python 2.7')) + +try: + from vspk import v5_0 as vsdk + from bambou.exceptions import BambouHTTPError + from ansible_collections.community.network.plugins.modules import nuage_vspk +except ImportError: + pytestmark.append(pytest.mark.skip('Nuage Ansible modules requires the vspk and bambou python libraries')) + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args, AnsibleExitJson, AnsibleFailJson +from .nuage_module import MockNuageConnection, TestNuageModule + +_LOOP_COUNTER = 0 + + +class TestNuageVSPKModule(TestNuageModule): + + def setUp(self): + super(TestNuageVSPKModule, self).setUp() + + self.patches = [] + + def enterprises_get(self, filter=None, order_by=None, group_by=None, page=None, page_size=None, query_parameters=None, commit=True, + callback=None, **kwargs): + group_by = [] if group_by is None else group_by + + if 'unknown' in filter: + return [] + + result = [vsdk.NUEnterprise(id='enterprise-id', name='test-enterprise')] + if filter == '' or filter == 'name == "test%"': + result.append(vsdk.NUEnterprise(id='enterprise-id-2', name='test-enterprise-2')) + return result + + self.enterprises_get_mock = patch('vspk.v5_0.fetchers.NUEnterprisesFetcher.get', new=enterprises_get) + self.enterprises_get_mock.start() + self.patches.append(self.enterprises_get_mock) + + def enterprises_get_first(self, filter=None, order_by=None, group_by=None, query_parameters=None, commit=False, callback=None, **kwargs): + group_by = [] if group_by is None else group_by + + if filter == 'name == "test-enterprise-create"' or 'unknown' in filter: + return None + return vsdk.NUEnterprise(id='enterprise-id', name='test-enterprise') + + self.enterprises_get_first_mock = patch('vspk.v5_0.fetchers.NUEnterprisesFetcher.get_first', new=enterprises_get_first) + self.enterprises_get_first_mock.start() + self.patches.append(self.enterprises_get_first_mock) + + def enterprise_delete(self, response_choice=1, callback=None, **kwargs): + pass + + self.enterprise_delete_mock = patch('vspk.v5_0.NUEnterprise.delete', new=enterprise_delete) + self.enterprise_delete_mock.start() + self.patches.append(self.enterprise_delete_mock) + + def enterprise_fetch(self, callback=None, **kwargs): + self.id = 'enterprise-id' + self.name = 'test-enterprise' + + self.enterprise_fetch_mock = patch('vspk.v5_0.NUEnterprise.fetch', new=enterprise_fetch) + self.enterprise_fetch_mock.start() + self.patches.append(self.enterprise_fetch_mock) + + def enterprise_save(self, response_choice=None, callback=None, **kwargs): + self.id = 'enterprise-id' + self.name = 'test-enterprise-update' + + self.enterprise_save_mock = patch('vspk.v5_0.NUEnterprise.save', new=enterprise_save) + self.enterprise_save_mock.start() + self.patches.append(self.enterprise_save_mock) + + def enterprise_create_child(self, nurest_object, response_choice=None, callback=None, commit=True, **kwargs): + nurest_object.id = 'user-id-create' + return nurest_object + + self.enterprise_create_child_mock = patch('vspk.v5_0.NUEnterprise.create_child', new=enterprise_create_child) + self.enterprise_create_child_mock.start() + self.patches.append(self.enterprise_create_child_mock) + + def me_create_child(self, nurest_object, response_choice=None, callback=None, commit=True, **kwargs): + nurest_object.id = 'enterprise-id-create' + return nurest_object + + self.me_create_child_mock = patch('vspk.v5_0.NUMe.create_child', new=me_create_child) + self.me_create_child_mock.start() + self.patches.append(self.me_create_child_mock) + + def user_fetch(self, callback=None, **kwargs): + self.id = 'user-id' + self.first_name = 'John' + self.last_name = 'Doe' + self.email = 'john.doe@localhost' + self.user_name = 'johndoe' + self.password = '' + + self.user_fetch_mock = patch('vspk.v5_0.NUUser.fetch', new=user_fetch) + self.user_fetch_mock.start() + self.patches.append(self.user_fetch_mock) + + def user_save(self, response_choice=None, callback=None, **kwargs): + self.id = 'user-id' + self.first_name = 'John' + self.last_name = 'Doe' + self.email = 'john.doe@localhost' + self.user_name = 'johndoe' + self.password = '' + + self.user_save_mock = patch('vspk.v5_0.NUUser.save', new=user_save) + self.user_save_mock.start() + self.patches.append(self.user_save_mock) + + def groups_get(self, filter=None, order_by=None, group_by=None, page=None, page_size=None, query_parameters=None, commit=True, + callback=None, **kwargs): + group_by = [] if group_by is None else group_by + + return [] + + self.groups_get_mock = patch('vspk.v5_0.fetchers.NUGroupsFetcher.get', new=groups_get) + self.groups_get_mock.start() + self.patches.append(self.groups_get_mock) + + def group_fetch(self, callback=None, **kwargs): + self.id = 'group-id' + self.name = 'group' + + self.group_fetch_mock = patch('vspk.v5_0.NUGroup.fetch', new=group_fetch) + self.group_fetch_mock.start() + self.patches.append(self.group_fetch_mock) + + def group_assign(self, objects, nurest_object_type, callback=None, commit=True, **kwargs): + self.id = 'group-id' + self.name = 'group' + + self.group_assign_mock = patch('vspk.v5_0.NUGroup.assign', new=group_assign) + self.group_assign_mock.start() + self.patches.append(self.group_assign_mock) + + def job_fetch(self, callback=None, **kwargs): + global _LOOP_COUNTER + self.id = 'job-id' + self.command = 'EXPORT' + self.status = 'RUNNING' + if _LOOP_COUNTER > 1: + self.status = 'SUCCESS' + _LOOP_COUNTER += 1 + + self.job_fetch_mock = patch('vspk.v5_0.NUJob.fetch', new=job_fetch) + self.job_fetch_mock.start() + self.patches.append(self.job_fetch_mock) + + def tearDown(self): + super(TestNuageVSPKModule, self).tearDown() + for mock in self.patches: + mock.stop() + + def test_certificate_auth(self): + set_module_args( + args={ + 'type': 'Enterprise', + 'state': 'present', + 'properties': { + 'name': 'test-enterprise' + }, + 'auth': { + 'api_username': 'csproot', + 'api_certificate': '/dummy/location/certificate.pem', + 'api_key': '/dummy/location/key.pem', + 'api_enterprise': 'csp', + 'api_url': 'https://localhost:8443', + 'api_version': 'v5_0' + } + } + ) + + with self.assertRaises(AnsibleExitJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertFalse(result['changed']) + self.assertEqual(len(result['entities']), 1) + self.assertEqual(result['id'], 'enterprise-id') + self.assertEqual(result['entities'][0]['name'], 'test-enterprise') + + def test_command_find_by_property(self): + set_module_args(args={ + 'type': 'Enterprise', + 'command': 'find', + 'properties': { + 'name': 'test-enterprise' + } + }) + + with self.assertRaises(AnsibleExitJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertFalse(result['changed']) + self.assertEqual(len(result['entities']), 1) + self.assertEqual(result['id'], 'enterprise-id') + self.assertEqual(result['entities'][0]['name'], 'test-enterprise') + + def test_command_find_by_filter(self): + set_module_args(args={ + 'type': 'Enterprise', + 'command': 'find', + 'match_filter': 'name == "test%"' + }) + + with self.assertRaises(AnsibleExitJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertFalse(result['changed']) + self.assertEqual(len(result['entities']), 2) + self.assertEqual(result['entities'][0]['name'], 'test-enterprise') + self.assertEqual(result['entities'][1]['name'], 'test-enterprise-2') + + def test_command_find_by_id(self): + set_module_args(args={ + 'id': 'enterprise-id', + 'type': 'Enterprise', + 'command': 'find' + }) + + with self.assertRaises(AnsibleExitJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertFalse(result['changed']) + self.assertEqual(len(result['entities']), 1) + self.assertEqual(result['id'], 'enterprise-id') + self.assertEqual(result['entities'][0]['name'], 'test-enterprise') + + def test_command_find_all(self): + set_module_args(args={ + 'type': 'Enterprise', + 'command': 'find' + }) + + with self.assertRaises(AnsibleExitJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertFalse(result['changed']) + self.assertEqual(len(result['entities']), 2) + self.assertEqual(result['entities'][0]['name'], 'test-enterprise') + self.assertEqual(result['entities'][1]['name'], 'test-enterprise-2') + + def test_command_change_password(self): + set_module_args(args={ + 'id': 'user-id', + 'type': 'User', + 'parent_id': 'enterprise-id', + 'parent_type': 'Enterprise', + 'command': 'change_password', + 'properties': { + 'password': 'test' + } + }) + + with self.assertRaises(AnsibleExitJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertEqual(result['changed'], True) + self.assertEqual(result['id'], 'user-id') + self.assertEqual(result['entities'][0]['firstName'], 'John') + self.assertEqual(result['entities'][0]['lastName'], 'Doe') + self.assertEqual(result['entities'][0]['email'], 'john.doe@localhost') + self.assertEqual(result['entities'][0]['userName'], 'johndoe') + self.assertEqual(result['entities'][0]['password'], '') + + def test_command_wait_for_job(self): + set_module_args(args={ + 'id': 'job-id', + 'type': 'Job', + 'command': 'wait_for_job', + }) + + with self.assertRaises(AnsibleExitJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertEqual(result['changed'], True) + self.assertEqual(result['id'], 'job-id') + self.assertEqual(result['entities'][0]['command'], 'EXPORT') + self.assertEqual(result['entities'][0]['status'], 'SUCCESS') + + def test_command_get_csp_enterprise(self): + set_module_args(args={ + 'type': 'Enterprise', + 'command': 'get_csp_enterprise' + }) + + with self.assertRaises(AnsibleExitJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertFalse(result['changed']) + self.assertEqual(len(result['entities']), 1) + self.assertEqual(result['id'], 'enterprise-id') + self.assertEqual(result['entities'][0]['name'], 'test-enterprise') + + def test_state_present_existing(self): + set_module_args(args={ + 'type': 'Enterprise', + 'state': 'present', + 'properties': { + 'id': 'enterprise-id', + 'name': 'test-enterprise' + } + }) + + with self.assertRaises(AnsibleExitJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertFalse(result['changed']) + self.assertEqual(len(result['entities']), 1) + self.assertEqual(result['id'], 'enterprise-id') + self.assertEqual(result['entities'][0]['name'], 'test-enterprise') + + def test_state_present_existing_filter(self): + set_module_args(args={ + 'type': 'Enterprise', + 'state': 'present', + 'match_filter': 'name == "test-enterprise"' + }) + + with self.assertRaises(AnsibleExitJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertFalse(result['changed']) + self.assertEqual(len(result['entities']), 1) + self.assertEqual(result['id'], 'enterprise-id') + self.assertEqual(result['entities'][0]['name'], 'test-enterprise') + + def test_state_present_create(self): + set_module_args(args={ + 'type': 'Enterprise', + 'state': 'present', + 'properties': { + 'name': 'test-enterprise-create' + } + }) + + with self.assertRaises(AnsibleExitJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertEqual(result['changed'], True) + self.assertEqual(len(result['entities']), 1) + self.assertEqual(result['id'], 'enterprise-id-create') + self.assertEqual(result['entities'][0]['name'], 'test-enterprise-create') + + def test_state_present_update(self): + set_module_args(args={ + 'id': 'enterprise-id', + 'type': 'Enterprise', + 'state': 'present', + 'properties': { + 'name': 'test-enterprise-update' + } + }) + + with self.assertRaises(AnsibleExitJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertEqual(result['changed'], True) + self.assertEqual(len(result['entities']), 1) + self.assertEqual(result['id'], 'enterprise-id') + self.assertEqual(result['entities'][0]['name'], 'test-enterprise-update') + + def test_state_present_member_existing(self): + set_module_args(args={ + 'id': 'user-id', + 'type': 'User', + 'parent_id': 'group-id', + 'parent_type': 'Group', + 'state': 'present' + }) + + def users_get(self, filter=None, order_by=None, group_by=None, page=None, page_size=None, query_parameters=None, commit=True, + callback=None, **kwargs): + group_by = [] if group_by is None else group_by + + return [vsdk.NUUser(id='user-id'), vsdk.NUUser(id='user-id-2')] + + with self.assertRaises(AnsibleExitJson) as exc: + with patch('vspk.v5_0.fetchers.NUUsersFetcher.get', users_get): + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertFalse(result['changed']) + + def test_state_present_member_missing(self): + set_module_args(args={ + 'id': 'user-id', + 'type': 'User', + 'parent_id': 'group-id', + 'parent_type': 'Group', + 'state': 'present' + }) + + def users_get(self, filter=None, order_by=None, group_by=None, page=None, page_size=None, query_parameters=None, commit=True, + callback=None, **kwargs): + group_by = [] if group_by is None else group_by + + return [] + + with self.assertRaises(AnsibleExitJson) as exc: + with patch('vspk.v5_0.fetchers.NUUsersFetcher.get', users_get): + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertEqual(result['changed'], True) + self.assertEqual(len(result['entities']), 1) + self.assertEqual(result['id'], 'user-id') + + def test_state_present_children_update(self): + set_module_args(args={ + 'type': 'Enterprise', + 'state': 'present', + 'properties': { + 'name': 'test-enterprise' + }, + 'children': [ + { + 'id': 'user-id', + 'type': 'User', + 'match_filter': 'userName == "johndoe"', + 'properties': { + 'user_name': 'johndoe-changed' + } + } + ] + }) + + with self.assertRaises(AnsibleExitJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertEqual(result['changed'], True) + self.assertEqual(len(result['entities']), 2) + + def test_state_present_children_create(self): + set_module_args(args={ + 'type': 'Enterprise', + 'state': 'present', + 'properties': { + 'name': 'test-enterprise-create' + }, + 'children': [ + { + 'type': 'User', + 'properties': { + 'user_name': 'johndoe-new' + } + } + ] + }) + + def users_get(self, filter=None, order_by=None, group_by=None, page=None, page_size=None, query_parameters=None, commit=True, + callback=None, **kwargs): + group_by = [] if group_by is None else group_by + + return [] + + with self.assertRaises(AnsibleExitJson) as exc: + with patch('vspk.v5_0.fetchers.NUUsersFetcher.get', users_get): + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['changed']) + self.assertEqual(len(result['entities']), 2) + + def test_state_present_children_member_missing(self): + set_module_args(args={ + 'type': 'Enterprise', + 'state': 'present', + 'properties': { + 'name': 'unkown-test-enterprise' + }, + 'children': [ + { + 'type': 'Group', + 'properties': { + 'name': 'unknown-group' + }, + 'children': [ + { + 'id': 'user-id', + 'type': 'User' + } + ] + } + ] + }) + + def users_get(self, filter=None, order_by=None, group_by=None, page=None, page_size=None, query_parameters=None, commit=True, + callback=None, **kwargs): + group_by = [] if group_by is None else group_by + + return [] + + with self.assertRaises(AnsibleExitJson) as exc: + with patch('vspk.v5_0.fetchers.NUUsersFetcher.get', users_get): + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['changed']) + self.assertEqual(len(result['entities']), 3) + + def test_state_absent(self): + set_module_args(args={ + 'type': 'Enterprise', + 'state': 'absent', + 'properties': { + 'name': 'test-enterprise' + } + }) + + with self.assertRaises(AnsibleExitJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['changed']) + + def test_state_absent_member(self): + set_module_args(args={ + 'id': 'user-id', + 'type': 'User', + 'parent_id': 'group-id', + 'parent_type': 'Group', + 'state': 'absent' + }) + + def users_get(self, filter=None, order_by=None, group_by=None, page=None, page_size=None, query_parameters=None, commit=True, + callback=None, **kwargs): + group_by = [] if group_by is None else group_by + + return [vsdk.NUUser(id='user-id')] + + with self.assertRaises(AnsibleExitJson) as exc: + with patch('vspk.v5_0.fetchers.NUUsersFetcher.get', users_get): + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['changed']) + + def test_exception_session(self): + set_module_args(args={ + 'id': 'enterprise-id', + 'type': 'Enterprise', + 'command': 'find' + }) + + def failed_session_start(self): + raise BambouHTTPError(MockNuageConnection(status_code='401', reason='Unauthorized', errors={})) + + with self.assertRaises(AnsibleFailJson) as exc: + with patch('vspk.v5_0.NUVSDSession.start', new=failed_session_start): + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], 'Unable to connect to the API URL with given username, password and enterprise: [HTTP 401(Unauthorized)] {}') + + def test_exception_find_parent(self): + set_module_args(args={ + 'type': 'User', + 'parent_id': 'group-id', + 'parent_type': 'Group', + 'command': 'find' + }) + + def group_failed_fetch(self, callback=None, **kwargs): + raise BambouHTTPError(MockNuageConnection(status_code='404', reason='Not Found', errors={'description': 'Entity not found'})) + + with self.assertRaises(AnsibleFailJson) as exc: + with patch('vspk.v5_0.NUGroup.fetch', group_failed_fetch): + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], "Failed to fetch the specified parent: [HTTP 404(Not Found)] {'description': 'Entity not found'}") + + def test_exception_find_entities_id(self): + set_module_args(args={ + 'id': 'enterprise-id', + 'type': 'Enterprise', + 'command': 'find' + }) + + def enterprise_failed_fetch(self, callback=None, **kwargs): + raise BambouHTTPError(MockNuageConnection(status_code='404', reason='Not Found', errors={'description': 'Entity not found'})) + + with self.assertRaises(AnsibleFailJson) as exc: + with patch('vspk.v5_0.NUEnterprise.fetch', enterprise_failed_fetch): + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], "Failed to fetch the specified entity by ID: [HTTP 404(Not Found)] {'description': 'Entity not found'}") + + def test_excption_find_entities_property(self): + set_module_args(args={ + 'type': 'Enterprise', + 'match_filter': 'name == "enterprise-id"', + 'command': 'find' + }) + + def enterprises_failed_get(self, filter=None, order_by=None, group_by=None, page=None, page_size=None, query_parameters=None, commit=True, + callback=None, **kwargs): + group_by = [] if group_by is None else group_by + + raise BambouHTTPError(MockNuageConnection(status_code='404', reason='Not Found', errors={'description': 'Entity not found'})) + + with self.assertRaises(AnsibleFailJson) as exc: + with patch('vspk.v5_0.fetchers.NUEnterprisesFetcher.get', enterprises_failed_get): + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], 'Unable to find matching entries') + + def test_exception_find_entity_id(self): + set_module_args(args={ + 'id': 'enterprise-id', + 'type': 'Enterprise', + 'state': 'present' + }) + + def enterprise_failed_fetch(self, callback=None, **kwargs): + raise BambouHTTPError(MockNuageConnection(status_code='404', reason='Not Found', errors={'description': 'Entity not found'})) + + with self.assertRaises(AnsibleFailJson) as exc: + with patch('vspk.v5_0.NUEnterprise.fetch', enterprise_failed_fetch): + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], "Failed to fetch the specified entity by ID: [HTTP 404(Not Found)] {'description': 'Entity not found'}") + + def test_exception_find_entity_property(self): + set_module_args(args={ + 'type': 'Enterprise', + 'match_filter': 'name == "enterprise-id"', + 'state': 'absent' + }) + + def enterprises_failed_get_first(self, filter=None, order_by=None, group_by=None, page=None, page_size=None, query_parameters=None, commit=True, + callback=None, **kwargs): + group_by = [] if group_by is None else group_by + + raise BambouHTTPError(MockNuageConnection(status_code='404', reason='Not Found', errors={'description': 'Entity not found'})) + + with self.assertRaises(AnsibleExitJson) as exc: + with patch('vspk.v5_0.fetchers.NUEnterprisesFetcher.get_first', enterprises_failed_get_first): + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertFalse(result['changed']) + + def test_exception_get_csp_enterprise(self): + set_module_args(args={ + 'type': 'Enterprise', + 'command': 'get_csp_enterprise' + }) + + def enterprise_failed_fetch(self, callback=None, **kwargs): + raise BambouHTTPError(MockNuageConnection(status_code='404', reason='Not Found', errors={'description': 'Entity not found'})) + + with self.assertRaises(AnsibleFailJson) as exc: + with patch('vspk.v5_0.NUEnterprise.fetch', enterprise_failed_fetch): + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], "Unable to fetch CSP enterprise: [HTTP 404(Not Found)] {'description': 'Entity not found'}") + + def test_exception_assign_member(self): + set_module_args(args={ + 'id': 'user-id', + 'type': 'User', + 'parent_id': 'group-id', + 'parent_type': 'Group', + 'state': 'present' + }) + + def users_get(self, filter=None, order_by=None, group_by=None, page=None, page_size=None, query_parameters=None, commit=True, + callback=None, **kwargs): + group_by = [] if group_by is None else group_by + + return [] + + def group_assign(self, objects, nurest_object_type, callback=None, commit=True, **kwargs): + raise BambouHTTPError(MockNuageConnection(status_code='500', reason='Server exception', errors={'description': 'Unable to assign member'})) + + with self.assertRaises(AnsibleFailJson) as exc: + with patch('vspk.v5_0.fetchers.NUUsersFetcher.get', users_get): + with patch('vspk.v5_0.NUGroup.assign', new=group_assign): + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], "Unable to assign entity as a member: [HTTP 500(Server exception)] {'description': 'Unable to assign member'}") + + def test_exception_unassign_member(self): + set_module_args(args={ + 'id': 'user-id', + 'type': 'User', + 'parent_id': 'group-id', + 'parent_type': 'Group', + 'state': 'absent' + }) + + def users_get(self, filter=None, order_by=None, group_by=None, page=None, page_size=None, query_parameters=None, commit=True, + callback=None, **kwargs): + group_by = [] if group_by is None else group_by + + return [vsdk.NUUser(id='user-id'), vsdk.NUUser(id='user-id-2')] + + def group_assign(self, objects, nurest_object_type, callback=None, commit=True, **kwargs): + raise BambouHTTPError(MockNuageConnection(status_code='500', reason='Server exception', errors={'description': 'Unable to remove member'})) + + with self.assertRaises(AnsibleFailJson) as exc: + with patch('vspk.v5_0.fetchers.NUUsersFetcher.get', users_get): + with patch('vspk.v5_0.NUGroup.assign', new=group_assign): + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], "Unable to remove entity as a member: [HTTP 500(Server exception)] {'description': 'Unable to remove member'}") + + def test_exception_create_entity(self): + set_module_args(args={ + 'type': 'Enterprise', + 'state': 'present', + 'properties': { + 'name': 'test-enterprise-create' + } + }) + + def me_create_child(self, nurest_object, response_choice=None, callback=None, commit=True, **kwargs): + raise BambouHTTPError(MockNuageConnection(status_code='500', reason='Server exception', errors={'description': 'Unable to create entity'})) + + with self.assertRaises(AnsibleFailJson) as exc: + with patch('vspk.v5_0.NUMe.create_child', me_create_child): + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], "Unable to create entity: [HTTP 500(Server exception)] {'description': 'Unable to create entity'}") + + def test_exception_save_entity(self): + set_module_args(args={ + 'id': 'enterprise-id', + 'type': 'Enterprise', + 'state': 'present', + 'properties': { + 'name': 'new-enterprise-name' + } + }) + + def enterprise_save(self, response_choice=None, callback=None, **kwargs): + raise BambouHTTPError(MockNuageConnection(status_code='500', reason='Server exception', errors={'description': 'Unable to save entity'})) + + with self.assertRaises(AnsibleFailJson) as exc: + with patch('vspk.v5_0.NUEnterprise.save', enterprise_save): + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], "Unable to update entity: [HTTP 500(Server exception)] {'description': 'Unable to save entity'}") + + def test_exception_delete_entity(self): + set_module_args(args={ + 'id': 'enterprise-id', + 'type': 'Enterprise', + 'state': 'absent' + }) + + def enterprise_delete(self, response_choice=1, callback=None, **kwargs): + raise BambouHTTPError(MockNuageConnection(status_code='500', reason='Server exception', errors={'description': 'Unable to delete entity'})) + + with self.assertRaises(AnsibleFailJson) as exc: + with patch('vspk.v5_0.NUEnterprise.delete', enterprise_delete): + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], "Unable to delete entity: [HTTP 500(Server exception)] {'description': 'Unable to delete entity'}") + + def test_exception_wait_for_job(self): + set_module_args(args={ + 'id': 'job-id', + 'type': 'Job', + 'command': 'wait_for_job' + }) + + def job_fetch(self, callback=None, **kwargs): + global _LOOP_COUNTER + self.id = 'job-id' + self.command = 'EXPORT' + self.status = 'RUNNING' + if _LOOP_COUNTER > 1: + self.status = 'ERROR' + _LOOP_COUNTER += 1 + + with self.assertRaises(AnsibleFailJson) as exc: + with patch('vspk.v5_0.NUJob.fetch', new=job_fetch): + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], "Job ended in an error") + + def test_fail_auth(self): + set_module_args( + args={ + 'type': 'Enterprise', + 'command': 'find', + 'auth': { + 'api_username': 'csproot', + 'api_enterprise': 'csp', + 'api_url': 'https://localhost:8443', + 'api_version': 'v5_0' + } + } + ) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], 'Missing api_password or api_certificate and api_key parameter in auth') + + def test_fail_version(self): + set_module_args( + args={ + 'type': 'Enterprise', + 'command': 'find', + 'auth': { + 'api_username': 'csproot', + 'api_password': 'csproot', + 'api_enterprise': 'csp', + 'api_url': 'https://localhost:8443', + 'api_version': 'v1_0' + } + } + ) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], 'vspk is required for this module, or the API version specified does not exist.') + + def test_fail_type(self): + set_module_args(args={ + 'type': 'Unknown', + 'command': 'find' + }) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], 'Unrecognised type specified') + + def test_fail_parent_type(self): + set_module_args(args={ + 'type': 'User', + 'parent_id': 'unkown-id', + 'parent_type': 'Unknown', + 'command': 'find' + }) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], 'Unrecognised parent type specified') + + def test_fail_parent_child(self): + set_module_args(args={ + 'type': 'Enterprise', + 'parent_id': 'user-id', + 'parent_type': 'User', + 'command': 'find' + }) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], 'Specified parent is not a valid parent for the specified type') + + def test_fail_no_parent(self): + set_module_args(args={ + 'type': 'Group', + 'command': 'find' + }) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], 'No parent specified and root object is not a parent for the type') + + def test_fail_present_member(self): + set_module_args(args={ + 'type': 'User', + 'match_filter': 'name == "test-user"', + 'parent_id': 'group-id', + 'parent_type': 'Group', + 'state': 'present' + }) + + def users_get_first(self, filter=None, order_by=None, group_by=None, page=None, page_size=None, query_parameters=None, commit=True, + callback=None, **kwargs): + group_by = [] if group_by is None else group_by + + return None + + with self.assertRaises(AnsibleFailJson) as exc: + with patch('vspk.v5_0.fetchers.NUUsersFetcher.get_first', users_get_first): + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], 'Trying to assign an entity that does not exist', result) + + def test_fail_change_password(self): + set_module_args(args={ + 'id': 'user-id', + 'type': 'User', + 'command': 'change_password', + 'properties': {} + }) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], 'command is change_password but the following are missing: password property') + + def test_fail_change_password_non_user(self): + set_module_args(args={ + 'id': 'group-id', + 'type': 'Group', + 'command': 'change_password', + 'properties': { + 'password': 'new-password' + } + }) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], 'Entity does not have a password property') + + def test_fail_command_find(self): + set_module_args(args={ + 'type': 'Enterprise', + 'command': 'find', + 'properties': { + 'id': 'unknown-enterprise-id', + 'name': 'unkown-enterprise' + } + }) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], 'Unable to find matching entries') + + def test_fail_children_type(self): + set_module_args(args={ + 'type': 'Enterprise', + 'state': 'present', + 'properties': { + 'name': 'test-enterprise-create' + }, + 'children': [ + { + 'properties': { + 'user_name': 'johndoe-new' + } + } + ] + }) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], 'Child type unspecified') + + def test_fail_children_mandatory(self): + set_module_args(args={ + 'type': 'Enterprise', + 'state': 'present', + 'properties': { + 'name': 'test-enterprise-create' + }, + 'children': [ + { + 'type': 'User' + } + ] + }) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], 'Child ID or properties unspecified') + + def test_fail_children_unknown(self): + set_module_args(args={ + 'type': 'Enterprise', + 'state': 'present', + 'properties': { + 'name': 'test-enterprise-create' + }, + 'children': [ + { + 'id': 'unkown-id', + 'type': 'Unkown' + } + ] + }) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], 'Unrecognised child type specified') + + def test_fail_children_parent(self): + set_module_args(args={ + 'id': 'group-id', + 'type': 'Group', + 'state': 'present', + 'children': [ + { + 'type': 'User', + 'properties': { + 'name': 'test-user' + } + } + ] + }) + + def users_get_first(self, filter=None, order_by=None, group_by=None, page=None, page_size=None, query_parameters=None, commit=True, + callback=None, **kwargs): + group_by = [] if group_by is None else group_by + + return None + + with self.assertRaises(AnsibleFailJson) as exc: + with patch('vspk.v5_0.fetchers.NUUsersFetcher.get_first', users_get_first): + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], 'Trying to assign a child that does not exist') + + def test_fail_children_fetcher(self): + set_module_args(args={ + 'id': 'group-id', + 'type': 'Group', + 'state': 'present', + 'children': [ + { + 'type': 'Enterprise', + 'properties': { + 'name': 'test-enterprise' + } + } + ] + }) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], 'Unable to find a fetcher for child, and no ID specified.') + + def test_fail_has_changed(self): + set_module_args(args={ + 'id': 'user-id', + 'type': 'User', + 'state': 'present', + 'properties': { + 'user_name': 'changed-user', + 'fake': 'invalid-property', + 'password': 'hidden-property' + } + }) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], 'Property fake is not valid for this type of entity') + + def test_input_auth_username(self): + set_module_args( + args={ + 'type': 'Enterprise', + 'command': 'find', + 'auth': { + 'api_password': 'csproot', + 'api_enterprise': 'csp', + 'api_url': 'https://localhost:8443', + 'api_version': 'v5_0' + } + } + ) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], 'missing required arguments: api_username') + + def test_input_auth_enterprise(self): + set_module_args( + args={ + 'type': 'Enterprise', + 'command': 'find', + 'auth': { + 'api_username': 'csproot', + 'api_password': 'csproot', + 'api_url': 'https://localhost:8443', + 'api_version': 'v5_0' + } + } + ) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], 'missing required arguments: api_enterprise') + + def test_input_auth_url(self): + set_module_args( + args={ + 'type': 'Enterprise', + 'command': 'find', + 'auth': { + 'api_username': 'csproot', + 'api_password': 'csproot', + 'api_enterprise': 'csp', + 'api_version': 'v5_0' + } + } + ) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], 'missing required arguments: api_url') + + def test_input_auth_version(self): + set_module_args( + args={ + 'type': 'Enterprise', + 'command': 'find', + 'auth': { + 'api_username': 'csproot', + 'api_password': 'csproot', + 'api_enterprise': 'csp', + 'api_url': 'https://localhost:8443', + } + } + ) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], 'missing required arguments: api_version') + + def test_input_exclusive(self): + set_module_args(args={ + 'type': 'Enterprise', + 'state': 'present', + 'command': 'find' + }) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], "parameters are mutually exclusive: ['command', 'state']") + + def test_input_require_both_parent_id(self): + set_module_args(args={ + 'type': 'User', + 'command': 'find', + 'parent_type': 'Enterprise' + }) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], "parameters are required together: ['parent_id', 'parent_type']") + + def test_input_require_both_parent_type(self): + set_module_args(args={ + 'type': 'User', + 'command': 'find', + 'parent_id': 'enterprise-id' + }) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], "parameters are required together: ['parent_id', 'parent_type']") + + def test_input_require_on_off(self): + set_module_args(args={ + 'type': 'Enterprise' + }) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], "one of the following is required: command,state") + + def test_input_require_if_present(self): + set_module_args(args={ + 'type': 'Enterprise', + 'state': 'present', + }) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], "state is present but the following are missing: id,properties,match_filter") + + def test_input_require_if_absent(self): + set_module_args(args={ + 'type': 'Enterprise', + 'state': 'absent', + }) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], "state is absent but the following are missing: id,properties,match_filter") + + def test_input_require_if_change_password_id(self): + set_module_args(args={ + 'type': 'User', + 'command': 'change_password', + 'properties': { + 'password': 'dummy-password' + } + }) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], "command is change_password but the following are missing: id") + + def test_input_require_if_change_password_properties(self): + set_module_args(args={ + 'type': 'User', + 'command': 'change_password', + 'id': 'user-id' + }) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], "command is change_password but the following are missing: properties") + + def test_input_require_if_wait_for_job_id(self): + set_module_args(args={ + 'type': 'Job', + 'command': 'wait_for_job' + }) + + with self.assertRaises(AnsibleFailJson) as exc: + nuage_vspk.main() + + result = exc.exception.args[0] + + self.assertTrue(result['failed']) + self.assertEqual(result['msg'], "command is wait_for_job but the following are missing: id") diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_opx_cps.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_opx_cps.py new file mode 100644 index 000000000..8668f923f --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_opx_cps.py @@ -0,0 +1,183 @@ +# +# (c) 2018 Red Hat Inc. +# +# (c) 2018 Dell Inc. or its subsidiaries. All Rights Reserved. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch, Mock +import sys +sys.modules['cps'] = Mock(QUALIFIERS=[ + "target", + "observed", + "proposed", + "realtime", + "registration", + "running", + "startup" +], OPERATIONS=[ + "delete", + "create", + "set", + "action", + "get" +]) +sys.modules['cps_object'] = Mock() +sys.modules['cps_utils'] = Mock() + +from ansible_collections.community.network.plugins.modules import opx_cps + +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .opx_module import TestOpxModule, load_fixture + + +class TestOpxCpsModule(TestOpxModule): + + module = opx_cps + + def setUp(self): + super(TestOpxCpsModule, self).setUp() + + self.mock_cps_get = patch('ansible_collections.community.network.plugins.modules.opx_cps.cps_get') + self.cps_get = self.mock_cps_get.start() + + self.mock_cps_transaction = patch('ansible_collections.community.network.plugins.modules.opx_cps.cps_transaction') + self.cps_transaction = self.mock_cps_transaction.start() + + self.mock_parse_cps_parameters = patch('ansible_collections.community.network.plugins.modules.opx_cps.parse_cps_parameters') + self.parse_cps_parameters = self.mock_parse_cps_parameters.start() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.opx_cps.cps_get.parse_cps_parameters') + self.get_config = self.mock_get_config.start() + + def tearDown(self): + super(TestOpxCpsModule, self).tearDown() + self.mock_cps_get.stop() + self.mock_cps_transaction.stop() + self.mock_parse_cps_parameters.stop() + self.mock_get_config.stop() + + def test_opx_operation_create(self): + resp = load_fixture('opx_operation_create.cfg') + attr_data = {"base-if-vlan/if/interfaces/interface/id": 105, + "if/interfaces/interface/type": "ianaift:l2vlan"} + module_name = "dell-base-if-cmn/if/interfaces/interface" + set_module_args(dict(module_name=module_name, operation="create", attr_data=attr_data)) + self.get_config.return_value = dict() + self.cps_transaction.return_value = dict(changed=True, response=resp) + self.execute_module(changed=True, response=resp) + self.assertEqual(self.parse_cps_parameters.call_count, 2) + self.assertEqual(self.cps_transaction.call_count, 1) + + def test_opx_operation_set(self): + resp = load_fixture('opx_operation_set.cfg') + config_data = load_fixture('opx_get_config.cfg') + attr_data = {"dell-if/if/interfaces/interface/untagged-ports": "e101-001-0", + "if/interfaces/interface/name": "br105"} + module_name = "dell-base-if-cmn/if/interfaces/interface" + set_module_args(dict(module_name=module_name, operation="set", attr_data=attr_data)) + self.get_config.return_value = config_data + self.cps_transaction.return_value = dict(changed=True, response=resp) + self.execute_module(changed=True, response=resp) + self.assertEqual(self.parse_cps_parameters.call_count, 2) + self.assertEqual(self.cps_transaction.call_count, 1) + + def test_opx_operation_delete(self): + resp = load_fixture('opx_operation_delete.cfg') + config_data = load_fixture('opx_get_config.cfg') + attr_data = {"if/interfaces/interface/name": "br105"} + module_name = "dell-base-if-cmn/if/interfaces/interface" + set_module_args(dict(module_name=module_name, operation="delete", attr_data=attr_data)) + self.get_config.return_value = config_data + self.cps_transaction.return_value = dict(changed=True, response=resp) + self.execute_module(changed=True, response=resp) + self.assertEqual(self.parse_cps_parameters.call_count, 2) + self.assertEqual(self.cps_transaction.call_count, 1) + + def test_opx_operation_delete_fail(self): + resp = load_fixture('opx_operation_delete.cfg') + attr_data = {"if/interfaces/interface/name": "br105"} + module_name = "dell-base-if-cmn/if/interfaces/interface" + set_module_args(dict(module_name=module_name, operation="delete", attr_data=attr_data)) + self.get_config.return_value = dict() + self.execute_module(changed=False) + self.assertEqual(self.parse_cps_parameters.call_count, 2) + self.assertEqual(self.cps_transaction.call_count, 1) + + def test_opx_operation_get(self): + resp = load_fixture('opx_operation_get.cfg') + attr_data = {"if/interfaces/interface/type": "ianaift:l2vlan"} + module_name = "dell-base-if-cmn/if/interfaces/interface" + set_module_args(dict(module_name=module_name, operation="get", attr_data=attr_data)) + self.cps_get.return_value = dict(changed=True, response=resp) + self.cps_transaction.return_value = None + self.execute_module(changed=True, response=resp) + self.assertEqual(self.parse_cps_parameters.call_count, 1) + self.assertEqual(self.cps_get.call_count, 1) + self.cps_transaction.assert_not_called() + + def test_opx_operation_set_fail(self): + attr_data = {"dell-if/if/interfaces/interface/untagged-ports": "e101-001-0", + "if/interfaces/interface/name": "br105"} + exp_msg = "RuntimeError: Transaction error while set" + module_name = "dell-base-if-cmn/if/interfaces/interface" + set_module_args(dict(module_name=module_name, operation="set", attr_data=attr_data)) + self.get_config.return_value = dict() + self.cps_transaction.side_effect = RuntimeError("Transaction error while set") + self.execute_module(failed=True, msg=exp_msg) + self.assertEqual(self.parse_cps_parameters.call_count, 2) + self.assertEqual(self.cps_transaction.call_count, 1) + + def test_opx_operation_create_fail(self): + attr_data = {"if/interfaces/interface/type": "ianaift:l2vlan"} + config_data = load_fixture('opx_get_config.cfg') + exp_msg = "RuntimeError: Transaction error while create" + module_name = "dell-base-if-cmn/if/interfaces/interface" + set_module_args(dict(module_name=module_name, operation="create", attr_data=attr_data)) + self.get_config.return_value = config_data + self.cps_transaction.side_effect = RuntimeError("Transaction error while create") + self.execute_module(failed=True, msg=exp_msg) + self.assertEqual(self.parse_cps_parameters.call_count, 2) + self.assertEqual(self.cps_transaction.call_count, 1) + + def test_opx_operation_get_db(self): + resp = load_fixture('opx_operation_get_db.cfg') + attr_data = {"if/interfaces/interface/name": "e101-001-0"} + module_name = "dell-base-if-cmn/if/interfaces/interface" + set_module_args(dict(module_name=module_name, operation="get", attr_data=attr_data, db=True)) + self.cps_get.return_value = dict(changed=True, response=resp) + self.cps_transaction.return_value = None + self.execute_module(changed=True, response=resp, db=True) + self.assertEqual(self.parse_cps_parameters.call_count, 1) + self.assertEqual(self.cps_get.call_count, 1) + self.cps_transaction.assert_not_called() + + def test_opx_operation_set_commit_event(self): + resp = load_fixture('opx_operation_set.cfg') + config_data = load_fixture('opx_get_config.cfg') + attr_data = {"dell-if/if/interfaces/interface/untagged-ports": "e101-001-0", + "if/interfaces/interface/name": "br105"} + module_name = "dell-base-if-cmn/if/interfaces/interface" + set_module_args(dict(module_name=module_name, operation="set", attr_data=attr_data, commit_event=True)) + self.get_config.return_value = config_data + self.cps_transaction.return_value = dict(changed=True, response=resp) + self.execute_module(changed=True, response=resp, commit_event=True) + self.assertEqual(self.parse_cps_parameters.call_count, 2) + self.assertEqual(self.cps_transaction.call_count, 1) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_access_list_ip.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_access_list_ip.py new file mode 100644 index 000000000..161d5fa2a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_access_list_ip.py @@ -0,0 +1,59 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_access_list_ip +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestAccessListIpModule(TestNvosModule): + + module = pn_access_list_ip + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_access_list_ip.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_access_list_ip.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['present'] == 'access-list-ip-add': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['absent'] == 'access-list-ip-remove': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'present': + self.run_check_cli.return_value = False + if state == 'absent': + self.run_check_cli.return_value = True + + def test_access_list_ip_add(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'pn_ip': '172.16.3.1', 'state': 'present'}) + result = self.execute_module(changed=True, state='present') + expected_cmd = ' switch sw01 access-list-ip-add name foo ip 172.16.3.1' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_access_list_ip_remove(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'pn_ip': '172.16.3.1', 'state': 'absent'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 access-list-ip-remove name foo ip 172.16.3.1' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_admin_service.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_admin_service.py new file mode 100644 index 000000000..86bccd7af --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_admin_service.py @@ -0,0 +1,54 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_admin_service +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestAdminServiceModule(TestNvosModule): + + module = pn_admin_service + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_admin_service.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['update'] == 'admin-service-modify': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + + def test_admin_service_modify_t1(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn__if': 'mgmt', + 'pn_web': 'False', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 admin-service-modify if mgmt no-web ' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_admin_service_modify_t2(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn__if': 'mgmt', + 'pn_snmp': 'True', 'pn_net_api': 'True', 'pn_ssh': 'True', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 admin-service-modify if mgmt snmp ssh net-api ' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_admin_service_modify_t3(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn__if': 'data', + 'pn_web_port': '8080', 'pn_net_api': 'True', 'pn_web_log': 'True', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 admin-service-modify if data web-port 8080 net-api web-log ' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_admin_session_timeout.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_admin_session_timeout.py new file mode 100644 index 000000000..90ebbc8d8 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_admin_session_timeout.py @@ -0,0 +1,54 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_admin_session_timeout +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestAdminServiceModule(TestNvosModule): + + module = pn_admin_session_timeout + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_admin_session_timeout.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['update'] == 'admin-session-timeout-modify': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + + def test_admin_session_timeout_modify_t1(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_timeout': '61s', + 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 admin-session-timeout-modify timeout 61s' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_admin_session_timeout_modify_t2(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_timeout': '1d', + 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 admin-session-timeout-modify timeout 1d' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_admin_session_timeout_modify_t3(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_timeout': '10d20m3h15s', + 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 admin-session-timeout-modify timeout 10d20m3h15s' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_admin_syslog.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_admin_syslog.py new file mode 100644 index 000000000..98e818581 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_admin_syslog.py @@ -0,0 +1,74 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_admin_syslog +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestAdminSyslogModule(TestNvosModule): + + module = pn_admin_syslog + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_admin_syslog.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_admin_syslog.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['present'] == 'admin-syslog-create': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['absent'] == 'admin-syslog-delete': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['update'] == 'admin-syslog-modify': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'present': + self.run_check_cli.return_value = False + if state == 'absent': + self.run_check_cli.return_value = True + if state == 'update': + self.run_check_cli.return_value = True + + def test_admin_syslog_create(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'pn_scope': 'local', 'pn_host': '166.68.224.46', 'pn_message_format': 'structured', 'state': 'present'}) + result = self.execute_module(changed=True, state='present') + expected_cmd = ' switch sw01 admin-syslog-create name foo scope local host 166.68.224.46 ' + expected_cmd += 'transport udp message-format structured' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_admin_syslog_delete(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'state': 'absent'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 admin-syslog-delete name foo ' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_admin_syslog_update(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'state': 'update'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 admin-syslog-modify name foo transport udp' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_connection_stats_settings.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_connection_stats_settings.py new file mode 100644 index 000000000..aaf061e16 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_connection_stats_settings.py @@ -0,0 +1,63 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_connection_stats_settings +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestAdminServiceModule(TestNvosModule): + + module = pn_connection_stats_settings + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_connection_stats_settings.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['update'] == 'connection-stats-settings-modify': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + + def test_connection_stats_settings_modify_t1(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_enable': False, + 'pn_fabric_connection_max_memory': '1000', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 connection-stats-settings-modify disable fabric-connection-max-memory 1000' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_connection_stats_settings_modify_t2(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_enable': True, + 'pn_connection_stats_log_enable': False, 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 connection-stats-settings-modify enable connection-stats-log-disable ' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_connection_stats_settings_modify_t3(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_client_server_stats_max_memory': '60M', + 'pn_client_server_stats_log_disk_space': '40M', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 connection-stats-settings-modify client-server-stats-max-memory ' + expected_cmd += '60M client-server-stats-log-disk-space 40M' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_connection_stats_settings_modify_t4(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_connection_stats_max_memory': '45M', + 'pn_fabric_connection_backup_enable': False, 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 connection-stats-settings-modify ' + expected_cmd += ' fabric-connection-backup-disable connection-stats-max-memory 45M' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_cpu_class.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_cpu_class.py new file mode 100644 index 000000000..9c3a1472f --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_cpu_class.py @@ -0,0 +1,68 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_cpu_class +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestCpuClassModule(TestNvosModule): + + module = pn_cpu_class + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_cpu_class.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_cpu_class.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['present'] == 'cpu-class-create': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['absent'] == 'cpu-class-delete': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'present': + self.run_check_cli.return_value = False + if state == 'absent': + self.run_check_cli.return_value = True + if state == 'update': + self.run_check_cli.return_value = True + + def test_cpu_class_create(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'icmp', + 'pn_scope': 'local', 'pn_rate_limit': '1000', 'state': 'present'}) + result = self.execute_module(changed=True, state='present') + expected_cmd = ' switch sw01 cpu-class-create name icmp scope local rate-limit 1000 ' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_cpu_class_delete(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'icmp', + 'state': 'absent'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 cpu-class-delete name icmp ' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_cpu_class_update(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'icmp', + 'pn_rate_limit': '2000', 'state': 'update'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 cpu-class-modify name icmp rate-limit 2000 ' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_cpu_mgmt_class.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_cpu_mgmt_class.py new file mode 100644 index 000000000..c532988a1 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_cpu_mgmt_class.py @@ -0,0 +1,47 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_cpu_mgmt_class +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestCpuMgmtClassModule(TestNvosModule): + + module = pn_cpu_mgmt_class + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_cpu_mgmt_class.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['update'] == 'cpu-mgmt-class-modify': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + + def test_cpu_mgmt_class_modify_t1(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'icmp', + 'pn_rate_limit': '10000', 'pn_burst_size': '14000', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 cpu-mgmt-class-modify name icmp burst-size 14000 rate-limit 10000' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_cpu_mgmt_class_modify_t2(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'ssh', + 'pn_rate_limit': '10000', 'pn_burst_size': '100000', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 cpu-mgmt-class-modify name ssh burst-size 100000 rate-limit 10000' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_dhcp_filter.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_dhcp_filter.py new file mode 100644 index 000000000..3474eb98a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_dhcp_filter.py @@ -0,0 +1,73 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_dhcp_filter +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestDhcpFilterModule(TestNvosModule): + + module = pn_dhcp_filter + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_dhcp_filter.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_dhcp_filter.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['present'] == 'dhcp-filter-create': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['absent'] == 'dhcp-filter-delete': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['update'] == 'dhcp-filter-modify': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'present': + self.run_check_cli.return_value = False + if state == 'absent': + self.run_check_cli.return_value = True + if state == 'update': + self.run_check_cli.return_value = True + + def test_dhcp_filter_create(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'pn_trusted_ports': '1', 'state': 'present'}) + result = self.execute_module(changed=True, state='present') + expected_cmd = ' switch sw01 dhcp-filter-create name foo trusted-ports 1' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_dhcp_filter_delete(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'state': 'absent'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 dhcp-filter-delete name foo ' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_dhcp_filter_update(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'pn_trusted_ports': '2', 'state': 'update'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 dhcp-filter-modify name foo trusted-ports 2' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_dscp_map.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_dscp_map.py new file mode 100644 index 000000000..75301c1e8 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_dscp_map.py @@ -0,0 +1,59 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_dscp_map +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestDscpMapModule(TestNvosModule): + + module = pn_dscp_map + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_dscp_map.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_dscp_map.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['present'] == 'dscp-map-create': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['absent'] == 'dscp-map-delete': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'present': + self.run_check_cli.return_value = False + if state == 'absent': + self.run_check_cli.return_value = True + + def test_dscp_map_create(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'pn_scope': 'local', 'state': 'present'}) + result = self.execute_module(changed=True, state='present') + expected_cmd = ' switch sw01 dscp-map-create name foo scope local' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_dscp_map_delete(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'state': 'absent'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 dscp-map-delete name foo ' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_dscp_map_pri_map.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_dscp_map_pri_map.py new file mode 100644 index 000000000..47482a7ea --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_dscp_map_pri_map.py @@ -0,0 +1,60 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_dscp_map_pri_map +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestCpuClassModule(TestNvosModule): + + module = pn_dscp_map_pri_map + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_dscp_map_pri_map.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_dscp_map_pri_map.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + self.mock_run_check_cli.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['update'] == 'dscp-map-pri-map-modify': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'update': + self.run_check_cli.return_value = True + + def test_dscp_map_pri_map_t1(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'pn_pri': '0', 'pn_dsmap': '40', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 dscp-map-pri-map-modify pri 0 name foo dsmap 40' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_dscp_map_pri_map_t2(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'pn_pri': '1', 'pn_dsmap': '8,10,12,14', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 dscp-map-pri-map-modify pri 1 name foo dsmap 8,10,12,14' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_dscp_map_pri_map_t3(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'pn_pri': '2', 'pn_dsmap': '25', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 dscp-map-pri-map-modify pri 2 name foo dsmap 25' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_fabric_local.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_fabric_local.py new file mode 100644 index 000000000..354975949 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_fabric_local.py @@ -0,0 +1,47 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_fabric_local +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestFabricLocalModule(TestNvosModule): + + module = pn_fabric_local + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_fabric_local.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['update'] == 'fabric-local-modify': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + + def test_fabric_local_modify_t1(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_fabric_advertisement_network': 'mgmt-only', + 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 fabric-local-modify fabric-network mgmt fabric-advertisement-network mgmt-only' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_fabric_local_modify_t2(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_fabric_network': 'mgmt', + 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 fabric-local-modify fabric-network mgmt' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_igmp_snooping.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_igmp_snooping.py new file mode 100644 index 000000000..e41520820 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_igmp_snooping.py @@ -0,0 +1,55 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_igmp_snooping +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestAdminServiceModule(TestNvosModule): + + module = pn_igmp_snooping + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_igmp_snooping.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['update'] == 'igmp-snooping-modify': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + + def test_igmp_snooping_modify_t1(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_vxlan': True, + 'pn_enable_vlans': '1-399,401-4092', 'pn_no_snoop_linklocal_vlans': 'none', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 igmp-snooping-modify vxlan enable-vlans ' + expected_cmd += '1-399,401-4092 no-snoop-linklocal-vlans none' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_igmp_snooping_modify_t2(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_scope': 'local', + 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 igmp-snooping-modify scope local' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_igmp_snooping_modify_t3(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_vxlan': False, + 'pn_enable_vlans': '1-399', 'pn_igmpv3_vlans': '1-399', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 igmp-snooping-modify no-vxlan igmpv3-vlans 1-399 enable-vlans 1-399' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_ipv6security_raguard.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_ipv6security_raguard.py new file mode 100644 index 000000000..247fe3dd7 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_ipv6security_raguard.py @@ -0,0 +1,73 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_ipv6security_raguard +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestIPV6SecurityRaguardModule(TestNvosModule): + + module = pn_ipv6security_raguard + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_ipv6security_raguard.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_ipv6security_raguard.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['present'] == 'ipv6security-raguard-create': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['absent'] == 'ipv6security-raguard-delete': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['update'] == 'ipv6security-raguard-modify': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'present': + self.run_check_cli.return_value = False + if state == 'absent': + self.run_check_cli.return_value = True + if state == 'update': + self.run_check_cli.return_value = True + + def test_ipv6security_raguard_create(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'pn_device': 'host'}) + result = self.execute_module(changed=True, state='present') + expected_cmd = ' switch sw01 ipv6security-raguard-create name foo device host' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_ipv6security_raguard_delete(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'state': 'absent'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 ipv6security-raguard-delete name foo ' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_ipv6security_raguard_modify(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'pn_device': 'router', 'pn_router_priority': 'medium', 'state': 'update'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 ipv6security-raguard-modify name foo device router router-priority medium' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_ipv6security_raguard_port.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_ipv6security_raguard_port.py new file mode 100644 index 000000000..5afed6d5a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_ipv6security_raguard_port.py @@ -0,0 +1,60 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_ipv6security_raguard_port +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestIPV6SecurityRaguardPortModule(TestNvosModule): + + module = pn_ipv6security_raguard_port + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_ipv6security_raguard_port.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_ipv6security_raguard_port.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + self.mock_run_check_cli.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['present'] == 'ipv6security-raguard-port-add': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['absent'] == 'ipv6security-raguard-port-remove': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'present': + self.run_check_cli.return_value = True + if state == 'absent': + self.run_check_cli.return_value = True + + def test_ipv6security_raguard_port_add(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'pn_ports': '1'}) + result = self.execute_module(changed=True, state='present') + expected_cmd = ' switch sw01 ipv6security-raguard-port-add name foo ports 1' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_ipv6security_raguard_port_remove(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'pn_ports': '1', 'state': 'absent'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 ipv6security-raguard-port-remove name foo ports 1' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_ipv6security_raguard_vlan.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_ipv6security_raguard_vlan.py new file mode 100644 index 000000000..c2692747d --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_ipv6security_raguard_vlan.py @@ -0,0 +1,60 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_ipv6security_raguard_vlan +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestIPV6SecurityReguardVlanModule(TestNvosModule): + + module = pn_ipv6security_raguard_vlan + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_ipv6security_raguard_vlan.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_ipv6security_raguard_vlan.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + self.mock_run_check_cli.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['present'] == 'ipv6security-raguard-vlan-add': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['absent'] == 'ipv6security-raguard-vlan-add': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'present': + self.run_check_cli.return_value = True + if state == 'absent': + self.run_check_cli.return_value = True + + def test_ipv6security_reguard_vlan_add(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'pn_vlans': '100-105', 'state': 'present'}) + result = self.execute_module(changed=True, state='present') + expected_cmd = ' switch sw01 ipv6security-raguard-vlan-add name foo vlans 100-105' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_ipv6security_reguard_vlan_remove(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'pn_vlans': '100-105', 'state': 'absent'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 ipv6security-raguard-vlan-remove name foo vlans 100-105' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_log_audit_exception.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_log_audit_exception.py new file mode 100644 index 000000000..0531277ee --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_log_audit_exception.py @@ -0,0 +1,62 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import json + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_log_audit_exception +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule, load_fixture + + +class TestLogAuditExceptionModule(TestNvosModule): + + module = pn_log_audit_exception + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_log_audit_exception.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_log_audit_exception.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + self.mock_run_check_cli.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['present'] == 'log-audit-exception-create': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['absent'] == 'log-audit-exception-delete': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'present': + self.run_check_cli.return_value = False + if state == 'absent': + self.run_check_cli.return_value = True + + def test_log_audit_exception_create(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_audit_type': 'cli', + 'pn_pattern': 'test', 'pn_scope': 'local', 'pn_access': 'any', 'state': 'present'}) + result = self.execute_module(changed=True, state='present') + expected_cmd = ' switch sw01 log-audit-exception-create cli pattern test any scope local ' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_log_audit_exception_delete(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_audit_type': 'cli', + 'pn_pattern': 'test', 'pn_access': 'any', 'state': 'absent'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 log-audit-exception-delete cli pattern test any' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_port_config.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_port_config.py new file mode 100644 index 000000000..2736cd115 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_port_config.py @@ -0,0 +1,61 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_port_config +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestPortConfigModule(TestNvosModule): + + module = pn_port_config + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_port_config.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['update'] == 'port-config-modify': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + + def test_pn_port_config_modify_t1(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_port': '1,2', + 'pn_speed': '10g', 'pn_jumbo': True, 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 port-config-modify speed 10g port 1,2 jumbo ' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_pn_port_config_modify_t2(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_port': 'all', + 'pn_host_enable': True, 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 port-config-modify port all host-enable ' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_pn_port_config_modify_t3(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_port': '5', + 'pn_crc_check_enable': True, 'pn_vxlan_termination': False, 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 port-config-modify port 5 crc-check-enable no-vxlan-termination ' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_pn_port_config_modify_t4(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_port': '10,11,12', + 'pn_pause': False, 'pn_enable': True, 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 port-config-modify port 10,11,12 no-pause enable ' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_port_cos_bw.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_port_cos_bw.py new file mode 100644 index 000000000..dbd9f437c --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_port_cos_bw.py @@ -0,0 +1,47 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_port_cos_bw +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestAdminServiceModule(TestNvosModule): + + module = pn_port_cos_bw + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_port_cos_bw.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['update'] == 'port-cos-bw-modify': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + + def test_pn_port_cos_bw_modify_t1(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_port': '1', + 'pn_cos': '0', 'pn_min_bw_guarantee': '60', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 port-cos-bw-modify cos 0 port 1 min-bw-guarantee 60' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_pn_port_cos_bw_modify_t2(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_port': 'all', + 'pn_cos': '1', 'pn_weight': 'priority', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 port-cos-bw-modify cos 1 port all weight priority' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_port_cos_rate_setting.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_port_cos_rate_setting.py new file mode 100644 index 000000000..6342d254b --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_port_cos_rate_setting.py @@ -0,0 +1,49 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_port_cos_rate_setting +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestPortCosRateSettingModule(TestNvosModule): + + module = pn_port_cos_rate_setting + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_port_cos_rate_setting.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['update'] == 'port-cos-rate-setting-modify': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + + def test_pn_port_cos_rate_setting_modify_t1(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_port': 'control-port', + 'pn_cos1_rate': '4000', 'pn_cos2_rate': '4000', 'pn_cos3_rate': '4000', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 port-cos-rate-setting-modify cos1-rate 4000 cos2-rate 4000 ' + expected_cmd += 'cos3-rate 4000 port control-port' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_pn_port_cos_rate_setting_modify_t2(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_port': 'data-port', + 'pn_cos1_rate': '2000', 'pn_cos5_rate': '3000', 'pn_cos2_rate': '4000', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 port-cos-rate-setting-modify cos1-rate 2000 cos5-rate 3000 ' + expected_cmd += 'cos2-rate 4000 port data-port' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_prefix_list.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_prefix_list.py new file mode 100644 index 000000000..25524a12e --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_prefix_list.py @@ -0,0 +1,60 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_prefix_list +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestPrefixListModule(TestNvosModule): + + module = pn_prefix_list + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_prefix_list.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_prefix_list.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + self.mock_run_check_cli.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['present'] == 'prefix-list-create': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['absent'] == 'prefix-list-delete': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'present': + self.run_check_cli.return_value = False + if state == 'absent': + self.run_check_cli.return_value = True + + def test_prefix_list_create(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'pn_scope': 'local', 'state': 'present'}) + result = self.execute_module(changed=True, state='present') + expected_cmd = ' switch sw01 prefix-list-create name foo scope local ' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_prefix_list_delete(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'state': 'absent'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 prefix-list-delete name foo ' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_prefix_list_network.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_prefix_list_network.py new file mode 100644 index 000000000..33a8e6c96 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_prefix_list_network.py @@ -0,0 +1,60 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_prefix_list_network +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestPrefixListNetworkModule(TestNvosModule): + + module = pn_prefix_list_network + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_prefix_list_network.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_prefix_list_network.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + self.mock_run_check_cli.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['present'] == 'prefix-list-network-add': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['absent'] == 'prefix-list-network-remove': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'present': + self.run_check_cli.return_value = False + if state == 'absent': + self.run_check_cli.return_value = True + + def test_prefix_list_network_add(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'pn_network': '172.16.3.1', 'pn_netmask': '24', 'state': 'present'}) + result = self.execute_module(changed=True, state='present') + expected_cmd = ' switch sw01 prefix-list-network-add name foo network 172.16.3.1 netmask 24' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_prefix_list_network_remove(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'pn_network': '172.16.3.1', 'pn_netmask': '24', 'state': 'absent'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 prefix-list-network-remove name foo network 172.16.3.1 netmask 24' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_role.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_role.py new file mode 100644 index 000000000..95d433bfc --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_role.py @@ -0,0 +1,74 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_role +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestRoleModule(TestNvosModule): + + module = pn_role + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_role.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_role.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + self.run_check_cli.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['present'] == 'role-create': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['absent'] == 'role-delete': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['update'] == 'role-modify': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'present': + self.run_check_cli.return_value = False + if state == 'absent': + self.run_check_cli.return_value = True + if state == 'update': + self.run_check_cli.return_value = True + + def test_role_create(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'pn_scope': 'local', 'pn_access': 'read-only', 'state': 'present'}) + result = self.execute_module(changed=True, state='present') + expected_cmd = ' switch sw01 role-create name foo scope local access read-only' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_role_delete(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'state': 'absent'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 role-delete name foo ' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_role_update(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'pn_access': 'read-write', 'pn_sudo': True, 'pn_shell': True, 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 role-modify name foo access read-write shell sudo ' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_snmp_community.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_snmp_community.py new file mode 100644 index 000000000..90b144169 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_snmp_community.py @@ -0,0 +1,74 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_snmp_community +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestSnmpCommunityModule(TestNvosModule): + + module = pn_snmp_community + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_snmp_community.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_snmp_community.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + self.run_check_cli.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['present'] == 'snmp-community-create': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['absent'] == 'snmp-community-delete': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['update'] == 'snmp-community-modify': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'present': + self.run_check_cli.return_value = False + if state == 'absent': + self.run_check_cli.return_value = True + if state == 'update': + self.run_check_cli.return_value = True + + def test_snmp_community_create(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_community_string': 'foo', + 'pn_community_type': 'read-write', 'state': 'present'}) + result = self.execute_module(changed=True, state='present') + expected_cmd = ' switch sw01 snmp-community-create community-string foo community-type read-write' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_snmp_community_delete(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_community_string': 'foo', + 'state': 'absent'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 snmp-community-delete community-string foo ' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_snmp_community_update(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_community_string': 'foo', + 'pn_community_type': 'read-only', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 snmp-community-modify community-string foo community-type read-only' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_snmp_trap_sink.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_snmp_trap_sink.py new file mode 100644 index 000000000..59604a378 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_snmp_trap_sink.py @@ -0,0 +1,61 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_snmp_trap_sink +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestSnmpTrapSinkModule(TestNvosModule): + + module = pn_snmp_trap_sink + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_snmp_trap_sink.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_snmp_trap_sink.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + self.run_check_cli.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['present'] == 'snmp-trap-sink-create': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['absent'] == 'snmp-trap-sink-delete': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'present': + self.run_check_cli.return_value = False + if state == 'absent': + self.run_check_cli.return_value = True + + def test_snmp_trap_sink_create(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_community': 'foo', + 'pn_dest_host': '192.168.67.8', 'pn_type': 'TRAP_TYPE_V2_INFORM', 'state': 'present'}) + result = self.execute_module(changed=True, state='present') + expected_cmd = ' switch sw01 snmp-trap-sink-create type TRAP_TYPE_V2_INFORM dest-host 192.168.67.8 ' + expected_cmd += 'community foo dest-port 162' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_snmp_trap_sink_delete(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_community': 'foo', + 'pn_dest_host': '192.168.67.8', 'pn_type': 'TRAP_TYPE_V2_INFORM', 'state': 'absent'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 snmp-trap-sink-delete community foo dest-host 192.168.67.8 dest-port 162' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_snmp_vacm.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_snmp_vacm.py new file mode 100644 index 000000000..276847e25 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_snmp_vacm.py @@ -0,0 +1,74 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_snmp_vacm +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestSnmpVacmModule(TestNvosModule): + + module = pn_snmp_vacm + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_snmp_vacm.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_snmp_vacm.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + self.run_check_cli.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['present'] == 'snmp-vacm-create': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['absent'] == 'snmp-vacm-delete': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['update'] == 'snmp-vacm-modify': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'present': + self.run_check_cli.return_value = False + if state == 'absent': + self.run_check_cli.return_value = True + if state == 'update': + self.run_check_cli.return_value = True + + def test_snmp_vacm_create(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_user_name': 'foo', + 'pn_user_type': 'rouser', 'state': 'present'}) + result = self.execute_module(changed=True, state='present') + expected_cmd = ' switch sw01 snmp-vacm-create user-name foo user-type rouser' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_snmp_vacm_delete(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_user_name': 'foo', + 'state': 'absent'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 snmp-vacm-delete user-name foo ' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_snmp_vacm_modify(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_user_name': 'foo', + 'pn_user_type': 'rwuser', 'state': 'absent'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 snmp-vacm-delete user-name foo ' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_stp.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_stp.py new file mode 100644 index 000000000..c998ae220 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_stp.py @@ -0,0 +1,49 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_stp +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestStpModule(TestNvosModule): + + module = pn_stp + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_stp.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['update'] == 'stp-modify': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + + def test_stp_modify_t1(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_hello_time': '3', + 'pn_stp_mode': 'rstp', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 stp-modify hello-time 3 root-guard-wait-time 20 mst-max-hops 20 max-age 20 ' + expected_cmd += 'stp-mode rstp forwarding-delay 15 bridge-priority 32768' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_stp_modify_t2(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_root_guard_wait_time': '50', + 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 stp-modify hello-time 2 root-guard-wait-time 50 mst-max-hops 20 ' + expected_cmd += 'max-age 20 forwarding-delay 15 bridge-priority 32768' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_stp_port.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_stp_port.py new file mode 100644 index 000000000..7394ebbe6 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_stp_port.py @@ -0,0 +1,47 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_stp_port +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestStpPortModule(TestNvosModule): + + module = pn_stp_port + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_stp_port.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['update'] == 'stp-port-modify': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + + def test_stp_port_modify_t1(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_port': '1', + 'pn_filter': True, 'pn_priority': '144', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 stp-port-modify priority 144 cost 2000 port 1 filter ' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_stp_port_modify_t2(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_port': '1,2', + 'pn_cost': '200', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 stp-port-modify priority 128 cost 200 port 1,2' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_switch_setup.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_switch_setup.py new file mode 100644 index 000000000..6f9de869d --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_switch_setup.py @@ -0,0 +1,63 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_switch_setup +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestSwitchSetupModule(TestNvosModule): + + module = pn_switch_setup + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_switch_setup.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['update'] == 'switch-setup-modify': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + + def test_pn_switch_setup_modify_t1(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_timezone': 'America/New_York', + 'pn_in_band_ip': '20.20.1.1', 'pn_in_band_netmask': '24', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 switch-setup-modify timezone America/New_York ' + expected_cmd += 'in-band-netmask 24 in-band-ip 20.20.1.1' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_pn_switch_setup_modify_t2(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_in_band_ip6': '2001:0db8:85a3::8a2e:0370:7334', + 'pn_in_band_netmask_ip6': '127', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 switch-setup-modify in-band-ip6 2001:0db8:85a3::8a2e:0370:7334 ' + expected_cmd += 'in-band-netmask-ip6 127' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_pn_switch_setup_modify_t3(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_date': '2019-01-11', + 'pn_loopback_ip': '10.10.10.1', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 switch-setup-modify date 2019-01-11 loopback-ip 10.10.10.1' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_pn_switch_setup_modify_t4(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_dns_ip': '172.16.5.5', + 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 switch-setup-modify dns-ip 172.16.5.5' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_user.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_user.py new file mode 100644 index 000000000..e6640d5fb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_user.py @@ -0,0 +1,74 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_user +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestUserModule(TestNvosModule): + + module = pn_user + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_user.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_user.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + self.run_check_cli.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['present'] == 'user-create': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['absent'] == 'user-delete': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['update'] == 'user-modify': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'present': + self.run_check_cli.return_value = False + if state == 'absent': + self.run_check_cli.return_value = True + if state == 'update': + self.run_check_cli.return_value = True + + def test_user_create(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'pn_scope': 'local', 'pn_password': 'test123', 'state': 'present'}) + result = self.execute_module(changed=True, state='present') + expected_cmd = ' switch sw01 user-create name foo scope local password test123' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_user_delete(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'state': 'absent'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 user-delete name foo ' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_user_modify(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'pn_password': 'test1234', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 user-modify name foo password test1234' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vflow_table_profile.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vflow_table_profile.py new file mode 100644 index 000000000..e7288c6df --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vflow_table_profile.py @@ -0,0 +1,47 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_vflow_table_profile +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestVflowTableProfileModule(TestNvosModule): + + module = pn_vflow_table_profile + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_vflow_table_profile.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['update'] == 'vflow-table-profile-modify': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + + def test_vflow_table_profile_modify_t1(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_profile': 'ipv6', + 'pn_hw_tbl': 'switch-main', 'pn_enable': True, 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 vflow-table-profile-modify profile ipv6 hw-tbl switch-main enable ' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_vflow_table_profile_modify_t2(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_profile': 'qos', + 'pn_hw_tbl': 'switch-main', 'pn_enable': False, 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 vflow-table-profile-modify profile qos hw-tbl switch-main disable ' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vrouter_bgp.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vrouter_bgp.py new file mode 100644 index 000000000..c14695e91 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vrouter_bgp.py @@ -0,0 +1,73 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_vrouter_bgp +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestVrouterBGPModule(TestNvosModule): + + module = pn_vrouter_bgp + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_vrouter_bgp.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_vrouter_bgp.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['present'] == 'vrouter-bgp-add': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['absent'] == 'vrouter-bgp-remove': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['update'] == 'vrouter-bgp-modify': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'present': + self.run_check_cli.return_value = True, False + if state == 'absent': + self.run_check_cli.return_value = True, True + if state == 'update': + self.run_check_cli.return_value = True, True + + def test_vrouter_bgp_add(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_vrouter_name': 'sw01-vrouter', + 'pn_neighbor': '105.104.104.1', 'pn_remote_as': '65000', 'pn_bfd': True, 'state': 'present'}) + result = self.execute_module(changed=True, state='present') + expected_cmd = ' switch sw01 vrouter-bgp-add vrouter-name sw01-vrouter neighbor 105.104.104.1 remote-as 65000 bfd ' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_vrouter_bgp_remove(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_vrouter_name': 'sw01-vrouter', + 'pn_neighbor': '105.104.104.1', 'state': 'absent'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 vrouter-bgp-remove vrouter-name sw01-vrouter neighbor 105.104.104.1 ' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_vrouter_bgp_modify(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_vrouter_name': 'sw01-vrouter', 'pn_neighbor': '105.104.104.1', + 'pn_remote_as': '65000', 'pn_bfd': False, 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 vrouter-bgp-modify vrouter-name sw01-vrouter neighbor 105.104.104.1 remote-as 65000 no-bfd ' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vrouter_bgp_network.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vrouter_bgp_network.py new file mode 100644 index 000000000..b1806ee05 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vrouter_bgp_network.py @@ -0,0 +1,61 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_vrouter_bgp_network +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestVrouterBGPNetworkModule(TestNvosModule): + + module = pn_vrouter_bgp_network + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_vrouter_bgp_network.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_vrouter_bgp_network.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + self.mock_run_check_cli.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['present'] == 'vrouter-bgp-network-add': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['absent'] == 'vrouter-bgp-network-remove': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'present': + self.run_check_cli.return_value = False, '' + if state == 'absent': + self.run_check_cli.return_value = True, '' + + def test_vrouter_bgp_network_add(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_vrouter_name': 'foo-vrouter', + 'pn_network': '10.10.10.10', 'pn_netmask': '31', 'state': 'present'}) + result = self.execute_module(changed=True, state='present') + expected_cmd = ' switch sw01 vrouter-bgp-network-add vrouter-name foo-vrouter netmask 31 ' + expected_cmd += 'network 10.10.10.10' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_vrouter_bgp_network_remove(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_vrouter_name': 'foo-vrouter', + 'pn_network': '10.10.10.10', 'state': 'absent'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 vrouter-bgp-network-remove vrouter-name foo-vrouter network 10.10.10.10' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vrouter_interface_ip.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vrouter_interface_ip.py new file mode 100644 index 000000000..6299ac5ae --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vrouter_interface_ip.py @@ -0,0 +1,62 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_vrouter_interface_ip +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestVrouterInterfaceIpModule(TestNvosModule): + + module = pn_vrouter_interface_ip + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_vrouter_interface_ip.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_vrouter_interface_ip.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + self.mock_run_check_cli.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['present'] == 'vrouter-interface-ip-add': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['absent'] == 'vrouter-interface-ip-remove': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'present': + self.run_check_cli.return_value = True, False, True + if state == 'absent': + self.run_check_cli.return_value = True, True, True + + def test_vrouter_interface_ip_add(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_vrouter_name': 'foo-vrouter', + 'pn_ip': '2620:0:1651:1::30', 'pn_netmask': '127', 'pn_nic': 'eth0.4092', 'state': 'present'}) + result = self.execute_module(changed=True, state='present') + expected_cmd = ' switch sw01 vrouter-interface-ip-add vrouter-name foo-vrouter nic eth0.4092 ' + expected_cmd += 'ip 2620:0:1651:1::30 netmask 127' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_vrouter_interface_ip_remove(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_vrouter_name': 'foo-vrouter', + 'pn_ip': '2620:0:1651:1::30', 'pn_nic': 'eth0.4092', 'state': 'absent'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 vrouter-interface-ip-remove vrouter-name foo-vrouter nic eth0.4092 ' + expected_cmd += 'ip 2620:0:1651:1::30 ' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vrouter_loopback_interface.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vrouter_loopback_interface.py new file mode 100644 index 000000000..862a9e062 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vrouter_loopback_interface.py @@ -0,0 +1,60 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_vrouter_loopback_interface +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestVrouterLoopbackInterfaceModule(TestNvosModule): + + module = pn_vrouter_loopback_interface + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_vrouter_loopback_interface.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_vrouter_loopback_interface.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + self.mock_run_check_cli.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['present'] == 'vrouter-loopback-interface-add': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['absent'] == 'vrouter-loopback-remove': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'present': + self.run_check_cli.return_value = True, False + if state == 'absent': + self.run_check_cli.return_value = True, True + + def test_vrouter_loopback_interface_add(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_vrouter_name': 'foo-vrouter', + 'pn_ip': '192.168.10.1', 'state': 'present'}) + result = self.execute_module(changed=True, state='present') + expected_cmd = ' switch sw01 vrouter-loopback-interface-add vrouter-name foo-vrouter ip 192.168.10.1' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_vrouter_loopback_interface_remove(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_vrouter_name': 'foo-vrouter', + 'pn_ip': '192.168.10.1', 'pn_index': '1', 'state': 'absent'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 vrouter-loopback-interface-remove vrouter-name foo-vrouter index 1' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vrouter_ospf.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vrouter_ospf.py new file mode 100644 index 000000000..d705a5245 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vrouter_ospf.py @@ -0,0 +1,59 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_vrouter_ospf +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestVrouterOSPFModule(TestNvosModule): + + module = pn_vrouter_ospf + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_vrouter_ospf.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_vrouter_ospf.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['present'] == 'vrouter-ospf-add': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['absent'] == 'vrouter-ospf-remove': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'present': + self.run_check_cli.return_value = True, False + if state == 'absent': + self.run_check_cli.return_value = True, True + + def test_vrouter_ospf_add(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_vrouter_name': 'sw01-vrouter', + 'pn_network': '105.104.104.1', 'pn_netmask': '24', 'pn_ospf_area': '0', 'state': 'present'}) + result = self.execute_module(changed=True, state='present') + expected_cmd = ' switch sw01 vrouter-ospf-add vrouter-name sw01-vrouter network 105.104.104.1 netmask 24 ospf-area 0' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_vrouter_ospf_remove(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_vrouter_name': 'sw01-vrouter', + 'pn_network': '105.104.104.1', 'state': 'absent'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 vrouter-ospf-remove vrouter-name sw01-vrouter network 105.104.104.1' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vrouter_ospf6.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vrouter_ospf6.py new file mode 100644 index 000000000..4888dae35 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vrouter_ospf6.py @@ -0,0 +1,60 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_vrouter_ospf6 +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestVrouterOSPF6Module(TestNvosModule): + + module = pn_vrouter_ospf6 + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_vrouter_ospf6.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_vrouter_ospf6.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + self.mock_run_check_cli.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['present'] == 'vrouter-ospf6-add': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['absent'] == 'vrouter-ospf6-remove': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'present': + self.run_check_cli.return_value = True, False + if state == 'absent': + self.run_check_cli.return_value = True, True + + def test_vrouter_ospf6_add(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_vrouter_name': 'foo-vrouter', + 'pn_nic': 'eth0.4092', 'pn_ospf6_area': '0.0.0.0', 'state': 'present'}) + result = self.execute_module(changed=True, state='present') + expected_cmd = ' switch sw01 vrouter-ospf6-add vrouter-name foo-vrouter nic eth0.4092 ospf6-area 0.0.0.0 ' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_vrouter_ospf6_remove(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_vrouter_name': 'foo-vrouter', + 'pn_nic': 'eth0.4092', 'state': 'absent'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 vrouter-ospf6-remove vrouter-name foo-vrouter nic eth0.4092' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vrouter_packet_relay.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vrouter_packet_relay.py new file mode 100644 index 000000000..9867dc7d6 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vrouter_packet_relay.py @@ -0,0 +1,60 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_vrouter_packet_relay +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestVrouterPacketRelayModule(TestNvosModule): + + module = pn_vrouter_packet_relay + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_vrouter_packet_relay.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_vrouter_packet_relay.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + self.mock_run_check_cli.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['present'] == 'vrouter-packet-relay-add': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['absent'] == 'vrouter-packet-relay-remove': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'present': + self.run_check_cli.return_value = True, True + if state == 'absent': + self.run_check_cli.return_value = True, True + + def test_vrouter_packet_relay_add(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_vrouter_name': 'foo-vrouter', + 'pn_forward_ip': '192.168.1.10', 'pn_nic': 'eth0.4092', 'state': 'present'}) + result = self.execute_module(changed=True, state='present') + expected_cmd = ' switch sw01 vrouter-packet-relay-add vrouter-name foo-vrouter nic eth0.4092 forward-proto dhcp forward-ip 192.168.1.10' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_vrouter_packet_relay_remove(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_vrouter_name': 'foo-vrouter', + 'pn_forward_ip': '192.168.1.10', 'pn_nic': 'eth0.4092', 'state': 'absent'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 vrouter-packet-relay-remove vrouter-name foo-vrouter nic eth0.4092 forward-proto dhcp forward-ip 192.168.1.10' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vrouter_pim_config.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vrouter_pim_config.py new file mode 100644 index 000000000..7a6eedffd --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vrouter_pim_config.py @@ -0,0 +1,55 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_vrouter_pim_config +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule + + +class TestVrouterPimConfigModule(TestNvosModule): + + module = pn_vrouter_pim_config + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_vrouter_pim_config.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_vrouter_pim_config.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + self.mock_run_check_cli.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['update'] == 'vrouter-pim-config-modify': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'update': + self.run_check_cli.return_value = True + + def test_vrouter_pim_config_t1(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_query_interval': '10', + 'pn_querier_timeout': '30', 'pn_vrouter_name': 'foo-vrouter', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 vrouter-pim-config-modify vrouter-name foo-vrouter ' + expected_cmd += 'querier-timeout 30 query-interval 10' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_vrouter_pim_config_t2(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_query_interval': '30', + 'pn_hello_interval': '120', 'pn_vrouter_name': 'foo-vrouter', 'state': 'update'}) + result = self.execute_module(changed=True, state='update') + expected_cmd = ' switch sw01 vrouter-pim-config-modify vrouter-name foo-vrouter ' + expected_cmd += 'hello-interval 120 query-interval 30' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vtep.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vtep.py new file mode 100644 index 000000000..f4e07fdb0 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_pn_vtep.py @@ -0,0 +1,63 @@ +# Copyright: (c) 2018, Pluribus Networks +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import json + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.plugins.modules import pn_vtep +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from .nvos_module import TestNvosModule, load_fixture + + +class TestVtepModule(TestNvosModule): + + module = pn_vtep + + def setUp(self): + self.mock_run_nvos_commands = patch('ansible_collections.community.network.plugins.modules.pn_vtep.run_cli') + self.run_nvos_commands = self.mock_run_nvos_commands.start() + + self.mock_run_check_cli = patch('ansible_collections.community.network.plugins.modules.pn_vtep.check_cli') + self.run_check_cli = self.mock_run_check_cli.start() + + def tearDown(self): + self.mock_run_nvos_commands.stop() + self.mock_run_check_cli.stop() + + def run_cli_patch(self, module, cli, state_map): + if state_map['present'] == 'vtep-create': + results = dict( + changed=True, + cli_cmd=cli + ) + elif state_map['absent'] == 'vtep-delete': + results = dict( + changed=True, + cli_cmd=cli + ) + module.exit_json(**results) + + def load_fixtures(self, commands=None, state=None, transport='cli'): + self.run_nvos_commands.side_effect = self.run_cli_patch + if state == 'present': + self.run_check_cli.return_value = False + if state == 'absent': + self.run_check_cli.return_value = True + + def test_vtep_create(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'pn_vrouter_name': 'sw01-vrouter', 'pn_location': 'sw01', 'pn_ip': '192.168.1.10', + 'pn_virtual_ip': '192.168.1.9', 'state': 'present'}) + result = self.execute_module(changed=True, state='present') + expected_cmd = ' switch sw01 vtep-create name foo vrouter-name sw01-vrouter ip 192.168.1.10 location sw01 virtual-ip 192.168.1.9 ' + self.assertEqual(result['cli_cmd'], expected_cmd) + + def test_vtep_delete(self): + set_module_args({'pn_cliswitch': 'sw01', 'pn_name': 'foo', + 'state': 'absent'}) + result = self.execute_module(changed=True, state='absent') + expected_cmd = ' switch sw01 vtep-delete name foo ' + self.assertEqual(result['cli_cmd'], expected_cmd) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_command.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_command.py new file mode 100644 index 000000000..7e4eb04c9 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_command.py @@ -0,0 +1,121 @@ +# +# (c) 2018 Extreme Networks Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import json + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from ansible_collections.community.network.plugins.modules import slxos_command +from .slxos_module import TestSlxosModule, load_fixture + + +class TestSlxosCommandModule(TestSlxosModule): + + module = slxos_command + + def setUp(self): + super(TestSlxosCommandModule, self).setUp() + + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.slxos_command.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestSlxosCommandModule, self).tearDown() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + + def load_from_file(*args, **kwargs): + module, commands = args + output = list() + + for item in commands: + try: + obj = json.loads(item['command']) + command = obj['command'] + except ValueError: + command = item['command'] + filename = str(command).replace(' ', '_') + output.append(load_fixture(filename)) + return output + + self.run_commands.side_effect = load_from_file + + def test_slxos_command_simple(self): + set_module_args(dict(commands=['show version'])) + result = self.execute_module() + self.assertEqual(len(result['stdout']), 1) + self.assertTrue(result['stdout'][0].startswith('SLX-OS Operating System Software')) + + def test_slxos_command_multiple(self): + set_module_args(dict(commands=['show version', 'show version'])) + result = self.execute_module() + self.assertEqual(len(result['stdout']), 2) + self.assertTrue(result['stdout'][0].startswith('SLX-OS Operating System Software')) + + def test_slxos_command_wait_for(self): + wait_for = 'result[0] contains "SLX-OS Operating System Software"' + set_module_args(dict(commands=['show version'], wait_for=wait_for)) + self.execute_module() + + def test_slxos_command_wait_for_fails(self): + wait_for = 'result[0] contains "test string"' + set_module_args(dict(commands=['show version'], wait_for=wait_for)) + self.execute_module(failed=True) + self.assertEqual(self.run_commands.call_count, 10) + + def test_slxos_command_retries(self): + wait_for = 'result[0] contains "test string"' + set_module_args(dict(commands=['show version'], wait_for=wait_for, retries=2)) + self.execute_module(failed=True) + self.assertEqual(self.run_commands.call_count, 2) + + def test_slxos_command_match_any(self): + wait_for = ['result[0] contains "SLX-OS"', + 'result[0] contains "test string"'] + set_module_args(dict(commands=['show version'], wait_for=wait_for, match='any')) + self.execute_module() + + def test_slxos_command_match_all(self): + wait_for = ['result[0] contains "SLX-OS"', + 'result[0] contains "SLX-OS Operating System Software"'] + set_module_args(dict(commands=['show version'], wait_for=wait_for, match='all')) + self.execute_module() + + def test_slxos_command_match_all_failure(self): + wait_for = ['result[0] contains "SLX-OS Operating System Software"', + 'result[0] contains "test string"'] + commands = ['show version', 'show version'] + set_module_args(dict(commands=commands, wait_for=wait_for, match='all')) + self.execute_module(failed=True) + + def test_slxos_command_configure_error(self): + commands = ['configure terminal'] + set_module_args({ + 'commands': commands, + '_ansible_check_mode': True, + }) + result = self.execute_module(failed=True) + self.assertEqual( + result['msg'], + 'slxos_command does not support running config mode commands. ' + 'Please use slxos_config instead' + ) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_config.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_config.py new file mode 100644 index 000000000..ad734846a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_config.py @@ -0,0 +1,195 @@ +# +# (c) 2018 Extreme Networks Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from ansible_collections.community.network.plugins.modules import slxos_config +from .slxos_module import TestSlxosModule, load_fixture + + +class TestSlxosConfigModule(TestSlxosModule): + + module = slxos_config + + def setUp(self): + super(TestSlxosConfigModule, self).setUp() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.slxos_config.get_config') + self.get_config = self.mock_get_config.start() + + self.mock_load_config = patch('ansible_collections.community.network.plugins.modules.slxos_config.load_config') + self.load_config = self.mock_load_config.start() + + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.slxos_config.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestSlxosConfigModule, self).tearDown() + self.mock_get_config.stop() + self.mock_load_config.stop() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + config_file = 'slxos_config_config.cfg' + self.get_config.return_value = load_fixture(config_file) + self.load_config.return_value = None + + def test_slxos_config_unchanged(self): + src = load_fixture('slxos_config_config.cfg') + set_module_args(dict(src=src)) + self.execute_module() + + def test_slxos_config_src(self): + src = load_fixture('slxos_config_src.cfg') + set_module_args(dict(src=src)) + commands = ['hostname foo', 'interface Ethernet 0/0', + 'no ip address'] + self.execute_module(changed=True, commands=commands) + + def test_slxos_config_backup(self): + set_module_args(dict(backup=True)) + result = self.execute_module() + self.assertIn('__backup__', result) + + def test_slxos_config_save_always(self): + self.run_commands.return_value = "Hostname foo" + set_module_args(dict(save_when='always')) + self.execute_module(changed=True) + self.assertEqual(self.run_commands.call_count, 1) + self.assertEqual(self.get_config.call_count, 0) + self.assertEqual(self.load_config.call_count, 0) + args = self.run_commands.call_args[0][1] + self.assertIn('copy running-config startup-config', args['command']) + + def test_slxos_config_save_changed_true(self): + src = load_fixture('slxos_config_src.cfg') + set_module_args(dict(src=src, save_when='changed')) + commands = ['hostname foo', 'interface Ethernet 0/0', 'no ip address'] + self.execute_module(changed=True, commands=commands) + self.assertEqual(self.run_commands.call_count, 1) + self.assertEqual(self.get_config.call_count, 1) + self.assertEqual(self.load_config.call_count, 1) + args = self.run_commands.call_args[0][1] + self.assertIn('copy running-config startup-config', args['command']) + + def test_slxos_config_save_changed_false(self): + set_module_args(dict(save_when='changed')) + self.execute_module(changed=False) + self.assertEqual(self.run_commands.call_count, 0) + self.assertEqual(self.get_config.call_count, 0) + self.assertEqual(self.load_config.call_count, 0) + + def test_slxos_config_lines_wo_parents(self): + set_module_args(dict(lines=['hostname foo'])) + commands = ['hostname foo'] + self.execute_module(changed=True, commands=commands) + + def test_slxos_config_lines_w_parents(self): + set_module_args(dict(lines=['shutdown'], parents=['interface Ethernet 0/0'])) + commands = ['interface Ethernet 0/0', 'shutdown'] + self.execute_module(changed=True, commands=commands) + + def test_slxos_config_before(self): + set_module_args(dict(lines=['hostname foo'], before=['test1', 'test2'])) + commands = ['test1', 'test2', 'hostname foo'] + self.execute_module(changed=True, commands=commands, sort=False) + + def test_slxos_config_after(self): + set_module_args(dict(lines=['hostname foo'], after=['test1', 'test2'])) + commands = ['hostname foo', 'test1', 'test2'] + self.execute_module(changed=True, commands=commands, sort=False) + + def test_slxos_config_before_after_no_change(self): + set_module_args(dict(lines=['hostname router'], + before=['test1', 'test2'], + after=['test3', 'test4'])) + self.execute_module() + + def test_slxos_config_config(self): + config = 'hostname localhost' + set_module_args(dict(lines=['hostname router'], config=config)) + commands = ['hostname router'] + self.execute_module(changed=True, commands=commands) + + def test_slxos_config_replace_block(self): + lines = ['description test string', 'test string'] + parents = ['interface Ethernet 0/0'] + set_module_args(dict(lines=lines, replace='block', parents=parents)) + commands = parents + lines + self.execute_module(changed=True, commands=commands) + + def test_slxos_config_match_none(self): + lines = ['hostname router'] + set_module_args(dict(lines=lines, match='none')) + self.execute_module(changed=True, commands=lines) + + def test_slxos_config_match_none_parents(self): + lines = ['ip address 1.2.3.4 255.255.255.0', 'description test string'] + parents = ['interface Ethernet 0/0'] + set_module_args(dict(lines=lines, parents=parents, match='none')) + commands = parents + lines + self.execute_module(changed=True, commands=commands, sort=False) + + def test_slxos_config_match_strict(self): + lines = ['ip address 1.2.3.4 255.255.255.0', 'description test string', + 'shutdown'] + parents = ['interface Ethernet 0/0'] + set_module_args(dict(lines=lines, parents=parents, match='strict')) + commands = parents + ['shutdown'] + self.execute_module(changed=True, commands=commands, sort=False) + + def test_slxos_config_match_exact(self): + lines = ['ip address 1.2.3.4 255.255.255.0', 'description test string', + 'shutdown'] + parents = ['interface Ethernet 0/0'] + set_module_args(dict(lines=lines, parents=parents, match='exact')) + commands = parents + lines + self.execute_module(changed=True, commands=commands, sort=False) + + def test_slxos_config_src_and_lines_fails(self): + args = dict(src='foo', lines='foo') + set_module_args(args) + self.execute_module(failed=True) + + def test_slxos_config_src_and_parents_fails(self): + args = dict(src='foo', parents='foo') + set_module_args(args) + self.execute_module(failed=True) + + def test_slxos_config_match_exact_requires_lines(self): + args = dict(match='exact') + set_module_args(args) + self.execute_module(failed=True) + + def test_slxos_config_match_strict_requires_lines(self): + args = dict(match='strict') + set_module_args(args) + self.execute_module(failed=True) + + def test_slxos_config_replace_block_requires_lines(self): + args = dict(replace='block') + set_module_args(args) + self.execute_module(failed=True) + + def test_slxos_config_replace_config_requires_src(self): + args = dict(replace='config') + set_module_args(args) + self.execute_module(failed=True) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_facts.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_facts.py new file mode 100644 index 000000000..24389e883 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_facts.py @@ -0,0 +1,61 @@ +# +# (c) 2018 Extreme Networks Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from ansible_collections.community.network.plugins.modules import slxos_facts +from .slxos_module import TestSlxosModule, load_fixture + + +class TestSlxosFactsModule(TestSlxosModule): + + module = slxos_facts + + def setUp(self): + super(TestSlxosFactsModule, self).setUp() + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.slxos_facts.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestSlxosFactsModule, self).tearDown() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + def load_from_file(*args, **kwargs): + commands = args[1] + output = list() + + for command in commands: + filename = str(command).split(' | ')[0].replace(' ', '_') + output.append(load_fixture('slxos_facts_%s' % filename)) + return output + + self.run_commands.side_effect = load_from_file + + def test_slxos_facts(self): + set_module_args(dict(gather_subset='default')) + result = self.execute_module() + self.assertEqual( + result['ansible_facts']['ansible_net_model'], 'BR-SLX9140' + ) + self.assertEqual( + result['ansible_facts']['ansible_net_serialnum'], 'EXH3349M005' + ) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_interface.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_interface.py new file mode 100644 index 000000000..30d580744 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_interface.py @@ -0,0 +1,153 @@ +# +# (c) 2018 Extreme Networks Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import re + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from ansible_collections.community.network.plugins.modules import slxos_interface +from .slxos_module import TestSlxosModule, load_fixture + + +class TestSlxosInterfaceModule(TestSlxosModule): + module = slxos_interface + + def setUp(self): + super(TestSlxosInterfaceModule, self).setUp() + self._patch_get_config = patch( + 'ansible_collections.community.network.plugins.modules.slxos_interface.get_config' + ) + self._patch_load_config = patch( + 'ansible_collections.community.network.plugins.modules.slxos_interface.load_config' + ) + self._patch_exec_command = patch( + 'ansible_collections.community.network.plugins.modules.slxos_interface.exec_command' + ) + + self._get_config = self._patch_get_config.start() + self._load_config = self._patch_load_config.start() + self._exec_command = self._patch_exec_command.start() + + def tearDown(self): + super(TestSlxosInterfaceModule, self).tearDown() + self._patch_get_config.stop() + self._patch_load_config.stop() + self._patch_exec_command.stop() + + def load_fixtures(self, commands=None): + config_file = 'slxos_config_config.cfg' + self._get_config.return_value = load_fixture(config_file) + self._load_config.return_value = None + + def test_slxos_interface_description(self, *args, **kwargs): + set_module_args(dict( + name='Ethernet 0/2', + description='show version' + )) + result = self.execute_module(changed=True) + self.assertEqual( + result, + { + 'commands': [ + 'interface Ethernet 0/2', + 'description show version' + ], + 'changed': True + } + ) + + def test_slxos_interface_speed(self, *args, **kwargs): + set_module_args(dict( + name='Ethernet 0/2', + speed=1000 + )) + result = self.execute_module(changed=True) + self.assertEqual( + result, + { + 'commands': [ + 'interface Ethernet 0/2', + 'speed 1000' + ], + 'changed': True + } + ) + + def test_slxos_interface_mtu(self, *args, **kwargs): + set_module_args(dict( + name='Ethernet 0/2', + mtu=1548 + )) + result = self.execute_module(changed=True) + self.assertEqual( + result, + { + 'commands': [ + 'interface Ethernet 0/2', + 'mtu 1548' + ], + 'changed': True + } + ) + + def test_slxos_interface_mtu_out_of_range(self, *args, **kwargs): + set_module_args(dict( + name='Ethernet 0/2', + mtu=15000 + )) + result = self.execute_module(failed=True) + self.assertEqual( + result, + { + 'msg': 'mtu must be between 1548 and 9216', + 'failed': True + } + ) + + def test_slxos_interface_enabled(self, *args, **kwargs): + set_module_args(dict( + name='Ethernet 0/1', + enabled=True + )) + result = self.execute_module(changed=True) + self.assertEqual( + result, + { + 'commands': [ + 'interface Ethernet 0/1', + 'no shutdown' + ], + 'changed': True + } + ) + + def test_slxos_interface_invalid_argument(self, *args, **kwargs): + set_module_args(dict( + name='Ethernet 0/1', + shawshank='Redemption' + )) + result = self.execute_module(failed=True) + self.assertEqual(result['failed'], True) + self.assertTrue(re.match( + r'Unsupported parameters for \(basic\.pyc?\) module: shawshank\.? ' + 'Supported parameters include: .+', + result['msg'] + )) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_l2_interface.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_l2_interface.py new file mode 100644 index 000000000..9ea7c0eab --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_l2_interface.py @@ -0,0 +1,170 @@ +# +# (c) 2018 Extreme Networks Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import re + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from ansible_collections.community.network.plugins.modules import slxos_l2_interface +from .slxos_module import TestSlxosModule, load_fixture + + +class TestSlxosL2InterfaceModule(TestSlxosModule): + module = slxos_l2_interface + + def setUp(self): + super(TestSlxosL2InterfaceModule, self).setUp() + self._patch_get_config = patch( + 'ansible_collections.community.network.plugins.modules.slxos_l2_interface.get_config' + ) + self._patch_load_config = patch( + 'ansible_collections.community.network.plugins.modules.slxos_l2_interface.load_config' + ) + self._patch_run_commands = patch( + 'ansible_collections.community.network.plugins.modules.slxos_l2_interface.run_commands' + ) + + self._get_config = self._patch_get_config.start() + self._load_config = self._patch_load_config.start() + self._run_commands = self._patch_run_commands.start() + self._run_commands.side_effect = self.run_commands_load_fixtures + + def run_commands_load_fixtures(self, module, commands, *args, **kwargs): + return self.load_fixtures( + commands, + destination=self._run_commands, + return_values=True + ) + + def tearDown(self): + super(TestSlxosL2InterfaceModule, self).tearDown() + self._patch_get_config.stop() + self._patch_load_config.stop() + self._patch_run_commands.stop() + + def load_fixtures(self, commands=None, destination=None, return_values=False): + side_effects = [] + + if not destination: + destination = self._get_config + + if not commands: + commands = ['slxos_config_config.cfg'] + + for command in commands: + filename = str(command).replace(' ', '_') + filename = str(filename).replace('/', '_') + side_effects.append(load_fixture(filename)) + + if return_values is True: + return side_effects + + destination.side_effect = side_effects + return None + + def test_slxos_l2_interface_access_vlan(self, *args, **kwargs): + set_module_args(dict( + name='Ethernet 0/2', + mode='access', + access_vlan=200, + )) + result = self.execute_module(changed=True) + self.assertEqual( + result, + { + 'commands': [ + 'interface ethernet 0/2', + 'switchport access vlan 200' + ], + 'changed': True, + 'warnings': [] + } + ) + + def test_slxos_l2_interface_vlan_does_not_exist(self, *args, **kwargs): + set_module_args(dict( + name='Ethernet 0/2', + mode='access', + access_vlan=10, + )) + result = self.execute_module(failed=True) + self.assertEqual( + result, + { + 'msg': 'You are trying to configure a VLAN on an interface ' + 'that\ndoes not exist on the switch yet!', + 'failed': True, + 'vlan': '10' + } + ) + + def test_slxos_l2_interface_incorrect_state(self, *args, **kwargs): + set_module_args(dict( + name='Ethernet 0/3', + mode='access', + access_vlan=10, + )) + result = self.execute_module(failed=True) + self.assertEqual( + result, + { + 'msg': 'Ensure interface is configured to be a L2\nport first ' + 'before using this module. You can use\nthe slxos_' + 'interface module for this.', + 'failed': True + } + ) + + def test_slxos_l2_interface_trunk(self, *args, **kwargs): + set_module_args(dict( + name='Ethernet 0/4', + mode='trunk', + native_vlan='22', + trunk_allowed_vlans='200,22' + )) + result = self.execute_module(changed=True) + self.assertEqual( + result, + { + 'commands': [ + 'interface ethernet 0/4', + 'switchport trunk allowed vlan add 200,22', + 'switchport trunk native vlan 22' + ], + 'changed': True, + 'warnings': [] + } + ) + + def test_slxos_l2_interface_invalid_argument(self, *args, **kwargs): + set_module_args(dict( + name='Ethernet 0/2', + mode='access', + access_vlan=10, + shawshank='Redemption' + )) + result = self.execute_module(failed=True) + self.assertEqual(result['failed'], True) + self.assertTrue(re.match( + r'Unsupported parameters for \(basic\.pyc?\) module: shawshank\.? ' + 'Supported parameters include: .+', + result['msg'] + )) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_l3_interface.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_l3_interface.py new file mode 100644 index 000000000..87c971490 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_l3_interface.py @@ -0,0 +1,101 @@ +# +# (c) 2018 Extreme Networks Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import re + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from ansible_collections.community.network.plugins.modules import slxos_l3_interface +from .slxos_module import TestSlxosModule, load_fixture + + +class TestSlxosL3InterfaceModule(TestSlxosModule): + module = slxos_l3_interface + + def setUp(self): + super(TestSlxosL3InterfaceModule, self).setUp() + self._patch_get_config = patch( + 'ansible_collections.community.network.plugins.modules.slxos_l3_interface.get_config' + ) + self._patch_load_config = patch( + 'ansible_collections.community.network.plugins.modules.slxos_l3_interface.load_config' + ) + + self._get_config = self._patch_get_config.start() + self._load_config = self._patch_load_config.start() + + def tearDown(self): + super(TestSlxosL3InterfaceModule, self).tearDown() + self._patch_get_config.stop() + self._patch_load_config.stop() + + def load_fixtures(self, commands=None): + config_file = 'slxos_config_config.cfg' + self._get_config.return_value = load_fixture(config_file) + self._load_config.return_value = None + + def test_slxos_l3_interface_ipv4_address(self, *args, **kwargs): + set_module_args(dict( + name='Ethernet 0/2', + ipv4='192.168.4.1/24' + )) + result = self.execute_module(changed=True) + self.assertEqual( + result, + { + 'commands': [ + 'interface Ethernet 0/2', + 'ip address 192.168.4.1/24' + ], + 'changed': True + } + ) + + def test_slxos_l3_interface_absent(self, *args, **kwargs): + set_module_args(dict( + name='Ethernet 0/9', + state='absent' + )) + result = self.execute_module(changed=True) + self.assertEqual( + result, + { + 'commands': [ + 'interface Ethernet 0/9', + 'no ip address', + 'no ipv6 address' + ], + 'changed': True + } + ) + + def test_slxos_l3_interface_invalid_argument(self, *args, **kwargs): + set_module_args(dict( + name='Ethernet 0/1', + shawshank='Redemption' + )) + result = self.execute_module(failed=True) + self.assertEqual(result['failed'], True) + self.assertTrue(re.match( + r'Unsupported parameters for \(basic\.pyc?\) module: shawshank\.? ' + 'Supported parameters include: .+', + result['msg'] + )) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_linkagg.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_linkagg.py new file mode 100644 index 000000000..8c07c5b27 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_linkagg.py @@ -0,0 +1,158 @@ +# +# (c) 2018 Extreme Networks Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import re + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from ansible_collections.community.network.plugins.modules import slxos_linkagg +from .slxos_module import TestSlxosModule, load_fixture + + +class TestSlxosLinkaggModule(TestSlxosModule): + module = slxos_linkagg + + def setUp(self): + super(TestSlxosLinkaggModule, self).setUp() + self._patch_get_config = patch( + 'ansible_collections.community.network.plugins.modules.slxos_linkagg.get_config' + ) + self._patch_load_config = patch( + 'ansible_collections.community.network.plugins.modules.slxos_linkagg.load_config' + ) + + self._get_config = self._patch_get_config.start() + self._load_config = self._patch_load_config.start() + + def tearDown(self): + super(TestSlxosLinkaggModule, self).tearDown() + self._patch_get_config.stop() + self._patch_load_config.stop() + + def load_fixtures(self, commands=None): + config_file = 'slxos_config_config.cfg' + self._get_config.return_value = load_fixture(config_file) + self._load_config.return_value = None + + def test_slxos_linkagg_group_present(self, *args, **kwargs): + set_module_args(dict( + group='10', + state='present' + )) + result = self.execute_module(changed=True) + self.assertEqual( + result, + { + 'commands': [ + 'interface port-channel 10', + 'exit' + ], + 'changed': True + } + ) + + def test_slxos_linkagg_group_members_active(self, *args, **kwargs): + set_module_args(dict( + group='10', + mode='active', + members=[ + 'Ethernet 0/1', + 'Ethernet 0/2' + ] + )) + result = self.execute_module(changed=True) + self.assertEqual( + result, + { + 'commands': [ + 'interface port-channel 10', + 'exit', + 'interface Ethernet 0/1', + 'channel-group 10 mode active', + 'interface Ethernet 0/2', + 'channel-group 10 mode active' + ], + 'changed': True + } + ) + + def test_slxos_linkagg_group_member_removal(self, *args, **kwargs): + set_module_args(dict( + group='20', + mode='active', + members=[ + 'Ethernet 0/10', + ] + )) + result = self.execute_module(changed=True) + self.assertEqual( + result, + { + 'commands': [ + 'interface port-channel 20', + 'exit', + 'interface Ethernet 0/11', + 'no channel-group' + ], + 'changed': True + } + ) + + def test_slxos_linkagg_group_members_absent(self, *args, **kwargs): + set_module_args(dict( + group='20', + state='absent' + )) + result = self.execute_module(changed=True) + self.assertEqual( + result, + { + 'commands': [ + 'no interface port-channel 20' + ], + 'changed': True + } + ) + set_module_args(dict( + group='10', + state='absent' + )) + result = self.execute_module(changed=False) + self.assertEqual( + result, + { + 'commands': [], + 'changed': False + } + ) + + def test_slxos_linkagg_invalid_argument(self, *args, **kwargs): + set_module_args(dict( + group='10', + shawshank='Redemption' + )) + result = self.execute_module(failed=True) + self.assertEqual(result['failed'], True) + self.assertTrue(re.match( + r'Unsupported parameters for \(basic\.pyc?\) module: shawshank\.? ' + 'Supported parameters include: .+', + result['msg'] + )) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_lldp.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_lldp.py new file mode 100644 index 000000000..8333bfb9e --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_lldp.py @@ -0,0 +1,95 @@ +# +# (c) 2018 Extreme Networks Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import re + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from ansible_collections.community.network.plugins.modules import slxos_lldp +from .slxos_module import TestSlxosModule, load_fixture + + +class TestSlxosLldpModule(TestSlxosModule): + module = slxos_lldp + + def setUp(self): + super(TestSlxosLldpModule, self).setUp() + self._patch_get_config = patch( + 'ansible_collections.community.network.plugins.modules.slxos_lldp.get_config' + ) + self._patch_load_config = patch( + 'ansible_collections.community.network.plugins.modules.slxos_lldp.load_config' + ) + + self._get_config = self._patch_get_config.start() + self._load_config = self._patch_load_config.start() + + def tearDown(self): + super(TestSlxosLldpModule, self).tearDown() + self._patch_get_config.stop() + self._patch_load_config.stop() + + def load_fixtures(self, commands=None): + config_file = 'slxos_config_config.cfg' + self._get_config.return_value = load_fixture(config_file) + self._load_config.return_value = None + + def test_slxos_lldp_present(self, *args, **kwargs): + set_module_args(dict( + state='present' + )) + result = self.execute_module(changed=True) + self.assertEqual( + result, + { + 'commands': [ + 'protocol lldp', + 'no disable' + ], + 'changed': True + } + ) + + def test_slxos_lldp_absent(self, *args, **kwargs): + set_module_args(dict( + state='absent' + )) + result = self.execute_module() + self.assertEqual( + result, + { + 'commands': [], + 'changed': False + } + ) + + def test_slxos_lldp_invalid_argument(self, *args, **kwargs): + set_module_args(dict( + state='absent', + shawshank='Redemption' + )) + result = self.execute_module(failed=True) + self.assertEqual(result['failed'], True) + self.assertTrue(re.match( + r'Unsupported parameters for \(basic\.pyc?\) module: shawshank\.? ' + 'Supported parameters include: .+', + result['msg'] + ), 'Output did not match. Got: %s' % result['msg']) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_vlan.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_vlan.py new file mode 100644 index 000000000..fcf50764a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_slxos_vlan.py @@ -0,0 +1,148 @@ +# +# (c) 2018 Extreme Networks Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import re + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from ansible_collections.community.network.plugins.modules import slxos_vlan +from .slxos_module import TestSlxosModule, load_fixture + + +class TestSlxosVlanModule(TestSlxosModule): + module = slxos_vlan + + def setUp(self): + super(TestSlxosVlanModule, self).setUp() + self._patch_run_commands = patch( + 'ansible_collections.community.network.plugins.modules.slxos_vlan.run_commands' + ) + self._patch_load_config = patch( + 'ansible_collections.community.network.plugins.modules.slxos_vlan.load_config' + ) + + self._run_commands = self._patch_run_commands.start() + self._load_config = self._patch_load_config.start() + + def tearDown(self): + super(TestSlxosVlanModule, self).tearDown() + self._patch_run_commands.stop() + self._patch_load_config.stop() + + def load_fixtures(self, commands=None): + config_file = 'show_vlan_brief' + self._run_commands.return_value = [load_fixture(config_file)] + self._load_config.return_value = None + + def test_slxos_vlan_id_with_name(self, *args, **kwargs): + load_fixture('show_vlan_brief') + set_module_args(dict( + vlan_id=100, + name='ONEHUNDRED' + )) + result = self.execute_module(changed=True) + self.assertEqual( + result, + { + 'commands': [ + 'vlan 100', + 'name ONEHUNDRED' + ], + 'changed': True + } + ) + + def test_slxos_vlan_with_members(self, *args, **kwargs): + set_module_args(dict( + vlan_id=100, + name='ONEHUNDRED', + interfaces=[ + 'Ethernet 0/1', + 'Ethernet 0/2' + ] + )) + result = self.execute_module(changed=True) + self.assertEqual( + result, + { + 'commands': [ + 'vlan 100', + 'name ONEHUNDRED', + 'interface Ethernet 0/1', + 'switchport', + 'switchport mode access', + 'switchport access vlan 100', + 'interface Ethernet 0/2', + 'switchport', + 'switchport mode access', + 'switchport access vlan 100' + ], + 'changed': True + } + ) + + def test_slxos_vlan_state_absent(self, *args, **kwargs): + set_module_args(dict( + vlan_id=200, + state='absent' + )) + result = self.execute_module(changed=True) + self.assertEqual( + result, + { + 'commands': [ + 'no vlan 200' + ], + 'changed': True + } + ) + + def test_slxos_vlan_state_absent_nonexistent_vlan(self, *args, **kwargs): + set_module_args(dict( + vlan_id=100, + state='absent' + )) + result = self.execute_module() + self.assertEqual( + result, + { + 'commands': [], + 'changed': False + } + ) + + def test_slxos_interface_invalid_argument(self, *args, **kwargs): + set_module_args(dict( + name='Ethernet 0/1', + shawshank='Redemption' + )) + result = self.execute_module(failed=True) + self.assertEqual(result['failed'], True) + self.assertTrue(re.match( + '(?:' + # < ansible-core 2.11 + r'Unsupported parameters for \(basic\.pyc?\) module: shawshank\.? Supported parameters include: .+' + '|' + # >= ansible-core 2.11 + 'one of the following is required: .+' + ')', + result['msg'] + ), 'Result did not match expected output. Got: %s' % result['msg']) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_vdirect_commit.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_vdirect_commit.py new file mode 100644 index 000000000..3d8d941b4 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_vdirect_commit.py @@ -0,0 +1,202 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2017 Radware LTD. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch, MagicMock + +from ansible_collections.community.network.tests.unit.compat import unittest +from ansible_collections.community.network.tests.unit.compat.mock import patch + +BASE_PARAMS = {'vdirect_ip': None, 'vdirect_user': None, 'vdirect_password': None, + 'vdirect_wait': None, 'vdirect_secondary_ip': None, + 'vdirect_https_port': None, 'vdirect_http_port': None, + 'vdirect_timeout': None, 'vdirect_use_ssl': None, 'validate_certs': None} + +COMMIT_PARAMS = {'devices': ['adc', 'defensepro', 'vx', 'appwall'], 'apply': True, 'save': True, 'sync': True} + +COMMIT_GET_DEVICE_200_RESULT = [200, '', '', {'type': 'AlteonPartitioned'}] +COMMIT_GET_DEVICE_404_RESULT = [404, '', '', ''] + +COMMIT_RESULT_200 = [200, '', '', ''] +COMMIT_RESULT_204 = [204, '', '', ''] + +MODULE_RESULT = {"msg": "Requested actions were successfully performed on all devices.", + "details": [{'device_name': 'adc', 'device_type': 'Adc', + 'apply': 'succeeded', 'save': 'succeeded', 'sync': 'succeeded'}, + {'device_name': 'defensepro', 'device_type': 'DefensePro', + 'commit': 'succeeded'}, + {'device_name': 'vx', 'device_type': 'Container', + 'apply': 'succeeded', 'save': 'succeeded'}, + {'device_name': 'appwall', 'device_type': 'AppWall', + 'commit': 'succeeded'}]} + + +@patch('vdirect_client.rest_client.RestClient') +class RestClient: + def __init__(self, vdirect_ip=None, vdirect_user=None, vdirect_password=None, wait=None, + secondary_vdirect_ip=None, https_port=None, http_port=None, + timeout=None, https=None, strict_http_results=None, + verify=None): + pass + + +class DeviceMock: + + def __init__(self, name, client): + self.name = name + self.client = client + self.get_throw = False + self.control_throw = False + self.exception = Exception('exception message') + self.control_result = COMMIT_RESULT_200 + + def set_control_result(self, result): + self.control_result = result + + def throw_exception(self, get_throw=False, control_throw=False): + self.get_throw = get_throw + self.control_throw = control_throw + + def get(self, name): + if self.get_throw: + raise self.exception # pylint: disable=E0702 + if name == self.name: + return COMMIT_GET_DEVICE_200_RESULT + else: + return COMMIT_GET_DEVICE_404_RESULT + + def control_device(self, name, action): + if self.control_throw: + raise self.exception # pylint: disable=E0702 + return self.control_result + + def control(self, name, action): + return self.control_device(name, action) + + +class TestManager(unittest.TestCase): + + def setUp(self): + self.module_mock = MagicMock() + self.module_mock.rest_client.RESP_STATUS = 0 + self.module_mock.rest_client.RESP_REASON = 1 + self.module_mock.rest_client.RESP_STR = 2 + self.module_mock.rest_client.RESP_DATA = 3 + + def test_missing_parameter(self, *args): + with patch.dict('sys.modules', **{ + 'vdirect_client': self.module_mock, + 'vdirect_client.rest_client.RestClient': self.module_mock, + }): + from ansible_collections.community.network.plugins.modules import vdirect_commit + + try: + params = BASE_PARAMS.copy() + vdirect_commit.VdirectCommit(params) + self.fail("KeyError was not thrown for missing parameter") + except KeyError: + assert True + + def test_validate_devices(self, *args): + with patch.dict('sys.modules', **{ + 'vdirect_client': self.module_mock, + 'vdirect_client.rest_client.RestClient': self.module_mock, + }): + from ansible_collections.community.network.plugins.modules import vdirect_commit + + BASE_PARAMS.update(COMMIT_PARAMS) + vdirectcommit = vdirect_commit.VdirectCommit(BASE_PARAMS) + vdirectcommit.client.adc = DeviceMock('adc', vdirectcommit.client) + vdirectcommit.client.container = DeviceMock('vx', vdirectcommit.client) + vdirectcommit.client.appWall = DeviceMock('appwall', vdirectcommit.client) + vdirectcommit.client.defensePro = DeviceMock('defensepro', vdirectcommit.client) + + vdirectcommit._validate_devices() + assert True + + vdirectcommit.client.adc.throw_exception(True) + try: + vdirectcommit._validate_devices() + self.fail("CommitException was not thrown for device communication failure") + except vdirect_commit.CommitException: + assert True + + vdirectcommit.client.adc.throw_exception(False) + vdirectcommit.client.defensePro.throw_exception(True) + try: + vdirectcommit._validate_devices() + self.fail("CommitException was not thrown for device communication failure") + except vdirect_commit.CommitException: + assert True + + vdirectcommit.client.defensePro.throw_exception(False) + + vdirectcommit.client.adc.name = 'wrong' + try: + vdirectcommit._validate_devices() + self.fail("MissingDeviceException was not thrown for missing device") + except vdirect_commit.MissingDeviceException: + assert True + + def test_commit(self, *args): + with patch.dict('sys.modules', **{ + 'vdirect_client': self.module_mock, + 'vdirect_client.rest_client.RestClient': self.module_mock, + }): + from ansible_collections.community.network.plugins.modules import vdirect_commit + + BASE_PARAMS.update(COMMIT_PARAMS) + vdirectcommit = vdirect_commit.VdirectCommit(BASE_PARAMS) + vdirectcommit.client.adc = DeviceMock('adc', vdirectcommit.client) + vdirectcommit.client.container = DeviceMock('vx', vdirectcommit.client) + vdirectcommit.client.appWall = DeviceMock('appwall', vdirectcommit.client) + vdirectcommit.client.defensePro = DeviceMock('defensepro', vdirectcommit.client) + + res = vdirectcommit.commit() + assert res == MODULE_RESULT + + vdirectcommit.sync = False + for detail in MODULE_RESULT['details']: + if 'sync' in detail: + detail['sync'] = vdirect_commit.NOT_PERFORMED + res = vdirectcommit.commit() + assert res == MODULE_RESULT + + vdirectcommit.client.adc.control_result = COMMIT_RESULT_204 + vdirectcommit.client.adc.control_result[self.module_mock.rest_client.RESP_STATUS] = 500 + vdirectcommit.client.adc.control_result[self.module_mock.rest_client.RESP_STR] = 'Some Failure' + MODULE_RESULT['msg'] = 'Failure occurred while performing requested actions on devices. See details' + for detail in MODULE_RESULT['details']: + if detail['device_name'] == 'adc': + detail['apply'] = vdirect_commit.FAILED + detail['failure_description'] = 'Some Failure' + detail['save'] = vdirect_commit.NOT_PERFORMED + detail['sync'] = vdirect_commit.NOT_PERFORMED + res = vdirectcommit.commit() + assert res == MODULE_RESULT + + vdirectcommit.client.adc.throw_exception(control_throw=True) + for detail in MODULE_RESULT['details']: + if detail['device_name'] == 'adc': + detail['failure_description'] = 'Exception occurred while performing apply action. ' \ + 'Exception: exception message' + res = vdirectcommit.commit() + assert res == MODULE_RESULT diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_vdirect_file.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_vdirect_file.py new file mode 100644 index 000000000..38669060a --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_vdirect_file.py @@ -0,0 +1,244 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2017 Radware LTD. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +import os +from mock import patch, MagicMock + +from ansible_collections.community.network.tests.unit.compat import unittest +from ansible_collections.community.network.tests.unit.compat.mock import patch + +RESP_STATUS = 0 +RESP_REASON = 1 +RESP_STR = 2 +RESP_DATA = 3 + +NONE_PARAMS = {'vdirect_ip': None, 'vdirect_user': None, 'vdirect_password': None, + 'vdirect_wait': None, 'vdirect_secondary_ip': None, + 'vdirect_https_port': None, 'vdirect_http_port': None, + 'vdirect_timeout': None, 'vdirect_use_ssl': None, 'validate_certs': None} + + +@patch('vdirect_client.rest_client.RestClient') +class RestClient: + def __init__(self, vdirect_ip=None, vdirect_user=None, vdirect_password=None, wait=None, + secondary_vdirect_ip=None, https_port=None, http_port=None, + timeout=None, https=None, strict_http_results=None, + verify=None): + pass + + +@patch('vdirect_client.rest_client.Template') +class Template: + create_from_source_result = None + upload_source_result = None + + def __init__(self, client): + self.client = client + + @classmethod + def set_create_from_source_result(cls, result): + Template.create_from_source_result = result + + @classmethod + def set_upload_source_result(cls, result): + Template.upload_source_result = result + + def create_from_source(self, data, name=None, tenant=None, fail_if_invalid=False): + return Template.create_from_source_result + + def upload_source(self, data, name=None, tenant=None, fail_if_invalid=False): + return Template.upload_source_result + + +@patch('vdirect_client.rest_client.WorkflowTemplate') +class WorkflowTemplate: + create_template_from_archive_result = None + update_archive_result = None + + def __init__(self, client): + self.client = client + + @classmethod + def set_create_template_from_archive_result(cls, result): + WorkflowTemplate.create_template_from_archive_result = result + + @classmethod + def set_update_archive_result(cls, result): + WorkflowTemplate.update_archive_result = result + + def create_template_from_archive(self, data, validate=False, fail_if_invalid=False, tenant=None): + return WorkflowTemplate.create_template_from_archive_result + + def update_archive(self, data, workflow_template_name): + return WorkflowTemplate.update_archive_result + + +class TestManager(unittest.TestCase): + + def setUp(self): + pass + + def test_missing_parameter(self, *args): + module_mock = MagicMock() + with patch.dict('sys.modules', **{ + 'vdirect_client': module_mock, + 'vdirect_client.rest_client': module_mock, + }): + from ansible_collections.community.network.plugins.modules import vdirect_file + + try: + params = NONE_PARAMS.copy() + del params['vdirect_ip'] + vdirect_file.VdirectFile(params) + self.fail("KeyError was not thrown for missing parameter") + except KeyError: + assert True + + def test_wrong_file_extension(self, *args): + module_mock = MagicMock() + with patch.dict('sys.modules', **{ + 'vdirect_client': module_mock, + 'vdirect_client.rest_client': module_mock, + }): + from ansible_collections.community.network.plugins.modules import vdirect_file + + module_mock.RESP_STATUS = 0 + file = vdirect_file.VdirectFile(NONE_PARAMS) + result = file.upload("file.??") + assert result == vdirect_file.WRONG_EXTENSION_ERROR + + def test_missing_file(self, *args): + module_mock = MagicMock() + with patch.dict('sys.modules', **{ + 'vdirect_client': module_mock, + 'vdirect_client.rest_client': module_mock, + }): + from ansible_collections.community.network.plugins.modules import vdirect_file + + file = vdirect_file.VdirectFile(NONE_PARAMS) + try: + file.upload("missing_file.vm") + self.fail("IOException was not thrown for missing file") + except IOError: + assert True + + def test_template_upload_create(self, *args): + module_mock = MagicMock() + with patch.dict('sys.modules', **{ + 'vdirect_client': module_mock, + 'vdirect_client.rest_client': module_mock, + }): + from ansible_collections.community.network.plugins.modules import vdirect_file + vdirect_file.rest_client.RESP_STATUS = 0 + vdirect_file.rest_client.Template = Template + + file = vdirect_file.VdirectFile(NONE_PARAMS) + path = os.path.dirname(os.path.abspath(__file__)) + + Template.set_create_from_source_result([201]) + result = file.upload(os.path.join(path, "ct.vm")) + self.assertEqual(result, vdirect_file.CONFIGURATION_TEMPLATE_CREATED_SUCCESS, + 'Unexpected result received:' + repr(result)) + + Template.set_create_from_source_result([400, "", "Parsing error", ""]) + try: + result = file.upload(os.path.join(path, "ct.vm")) + self.fail("InvalidSourceException was not thrown") + except vdirect_file.InvalidSourceException: + assert True + + def test_template_upload_update(self, *args): + module_mock = MagicMock() + with patch.dict('sys.modules', **{ + 'vdirect_client': module_mock, + 'vdirect_client.rest_client': module_mock, + }): + from ansible_collections.community.network.plugins.modules import vdirect_file + vdirect_file.rest_client.RESP_STATUS = 0 + vdirect_file.rest_client.Template = Template + + file = vdirect_file.VdirectFile(NONE_PARAMS) + path = os.path.dirname(os.path.abspath(__file__)) + + Template.set_create_from_source_result([409]) + Template.set_upload_source_result([201]) + result = file.upload(os.path.join(path, "ct.vm")) + self.assertEqual(result, vdirect_file.CONFIGURATION_TEMPLATE_UPDATED_SUCCESS, + 'Unexpected result received:' + repr(result)) + + Template.set_upload_source_result([400, "", "Parsing error", ""]) + try: + result = file.upload(os.path.join(path, "ct.vm")) + self.fail("InvalidSourceException was not thrown") + except vdirect_file.InvalidSourceException: + assert True + + def test_workflow_upload_create(self, *args): + module_mock = MagicMock() + with patch.dict('sys.modules', **{ + 'vdirect_client': module_mock, + 'vdirect_client.rest_client': module_mock, + }): + from ansible_collections.community.network.plugins.modules import vdirect_file + vdirect_file.rest_client.RESP_STATUS = 0 + vdirect_file.rest_client.WorkflowTemplate = WorkflowTemplate + + file = vdirect_file.VdirectFile(NONE_PARAMS) + path = os.path.dirname(os.path.abspath(__file__)) + + WorkflowTemplate.set_create_template_from_archive_result([201]) + result = file.upload(os.path.join(path, "wt.zip")) + self.assertEqual(result, vdirect_file.WORKFLOW_TEMPLATE_CREATED_SUCCESS, + 'Unexpected result received:' + repr(result)) + + WorkflowTemplate.set_create_template_from_archive_result([400, "", "Parsing error", ""]) + try: + result = file.upload(os.path.join(path, "wt.zip")) + self.fail("InvalidSourceException was not thrown") + except vdirect_file.InvalidSourceException: + assert True + + def test_workflow_upload_update(self, *args): + module_mock = MagicMock() + with patch.dict('sys.modules', **{ + 'vdirect_client': module_mock, + 'vdirect_client.rest_client': module_mock, + }): + from ansible_collections.community.network.plugins.modules import vdirect_file + vdirect_file.rest_client.RESP_STATUS = 0 + vdirect_file.rest_client.WorkflowTemplate = WorkflowTemplate + + file = vdirect_file.VdirectFile(NONE_PARAMS) + path = os.path.dirname(os.path.abspath(__file__)) + + WorkflowTemplate.set_create_template_from_archive_result([409]) + WorkflowTemplate.set_update_archive_result([201]) + result = file.upload(os.path.join(path, "wt.zip")) + self.assertEqual(result, vdirect_file.WORKFLOW_TEMPLATE_UPDATED_SUCCESS, + 'Unexpected result received:' + repr(result)) + + WorkflowTemplate.set_update_archive_result([400, "", "Parsing error", ""]) + try: + result = file.upload(os.path.join(path, "wt.zip")) + self.fail("InvalidSourceException was not thrown") + except vdirect_file.InvalidSourceException: + assert True diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_vdirect_runnable.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_vdirect_runnable.py new file mode 100644 index 000000000..384e19d4e --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_vdirect_runnable.py @@ -0,0 +1,438 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2017 Radware LTD. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch, MagicMock + +from ansible_collections.community.network.tests.unit.compat import unittest +from ansible_collections.community.network.tests.unit.compat.mock import patch + +BASE_PARAMS = {'vdirect_ip': None, 'vdirect_user': None, 'vdirect_password': None, + 'vdirect_wait': None, 'vdirect_secondary_ip': None, + 'vdirect_https_port': None, 'vdirect_http_port': None, + 'vdirect_timeout': None, 'vdirect_use_ssl': None, 'validate_certs': None} + +CONFIGURATION_TEMPLATE_RUNNABLE_PARAMS = { + 'runnable_type': 'ConfigurationTemplate', 'runnable_name': 'runnable', + 'action_name': None, 'parameters': None} + +WORKFLOW_TEMPLATE_RUNNABLE_PARAMS = { + 'runnable_type': 'WorkflowTemplate', 'runnable_name': 'runnable', + 'action_name': None, 'parameters': None} + +WORKFLOW_RUNNABLE_PARAMS = { + 'runnable_type': 'Workflow', 'runnable_name': 'runnable', + 'action_name': 'one', 'parameters': None} + +PLUGIN_RUNNABLE_PARAMS = { + 'runnable_type': 'Plugin', 'runnable_name': 'runnable', + 'action_name': 'two', 'parameters': None} + + +WORKFLOW_RUNNABLE_OBJECT_RESULT = [200, '', '', {'names': ['runnable']}] +ACTIONS_RESULT = [200, '', '', {'names': ['one', 'two']}] + + +ACTIONS_PARAMS_RESULT_BASIC = [200, '', '', + {'parameters': [ + {'name': 'pin', 'type': 'in', 'direction': 'in'}, + {'name': 'pout', 'type': 'out', 'direction': 'out'}, + {'name': 'alteon', 'type': 'alteon'} + ]}] +ACTIONS_PARAMS_RESULT_FULL = [200, '', '', + {'parameters': [ + {'name': 'pin', 'type': 'in', 'direction': 'in'}, + {'name': 'pout', 'type': 'out', 'direction': 'out'}, + {'name': 'alteon', 'type': 'alteon'}, + {'name': 'alteon_array', 'type': 'alteon[]'}, + {'name': 'dp', 'type': 'defensePro'}, + {'name': 'dp_array', 'type': 'defensePro[]'}, + {'name': 'appWall', 'type': 'appWall'}, + {'name': 'appWall_array', 'type': 'appWall[]'} + ]}] + +RUN_RESULT = [200, '', '', { + "uri": "https://10.11.12.13:2189/api/status?token=Workflow%5Ca%5Capply%5Cc4b533a8-8764-4cbf-a19c-63b11b9ccc09", + "targetUri": "https://10.11.12.13:2189/api/workflow/a", + "complete": True, "status": 200, "success": True, "messages": [], "action": "apply", "parameters": {}, +}] + +MODULE_RESULT = {"msg": "Configuration template run completed."} + + +@patch('vdirect_client.rest_client.RestClient') +class RestClient: + def __init__(self, vdirect_ip=None, vdirect_user=None, vdirect_password=None, wait=None, + secondary_vdirect_ip=None, https_port=None, http_port=None, + timeout=None, https=None, strict_http_results=None, + verify=None): + pass + + +@patch('vdirect_client.rest_client.Runnable') +class Runnable: + runnable_objects_result = None + available_actions_result = None + action_info_result = None + run_result = None + + def __init__(self, client): + self.client = client + + @classmethod + def set_runnable_objects_result(cls, result): + Runnable.runnable_objects_result = result + + @classmethod + def set_available_actions_result(cls, result): + Runnable.available_actions_result = result + + @classmethod + def set_action_info_result(cls, result): + Runnable.action_info_result = result + + @classmethod + def set_run_result(cls, result): + Runnable.run_result = result + + def get_runnable_objects(self, type): + return Runnable.runnable_objects_result + + def get_available_actions(self, type=None, name=None): + return Runnable.available_actions_result + + def get_action_info(self, type, name, action_name): + return Runnable.action_info_result + + def run(self, data, type, name, action_name): + return Runnable.run_result + + +@patch('vdirect_client.rest_client.Catalog') +class Catalog: + _404 = False + + def __init__(self, client): + self.client = client + + @classmethod + def set_catalog_item_200(cls): + Catalog._404 = False + + @classmethod + def set_catalog_item_404(cls): + Catalog._404 = True + + @classmethod + def get_catalog_item(cls, type=None, name=None): + if Catalog._404: + from ansible_collections.community.network.plugins.modules import vdirect_runnable + raise vdirect_runnable.MissingRunnableException(name) + + +class TestManager(unittest.TestCase): + + def setUp(self): + self.module_mock = MagicMock() + self.module_mock.rest_client.RESP_STATUS = 0 + self.module_mock.rest_client.RESP_REASON = 1 + self.module_mock.rest_client.RESP_STR = 2 + self.module_mock.rest_client.RESP_DATA = 3 + + def test_missing_parameter(self, *args): + with patch.dict('sys.modules', **{ + 'vdirect_client': self.module_mock, + 'vdirect_client.rest_client': self.module_mock, + }): + from ansible_collections.community.network.plugins.modules import vdirect_runnable + + try: + params = BASE_PARAMS.copy() + vdirect_runnable.VdirectRunnable(params) + self.fail("KeyError was not thrown for missing parameter") + except KeyError: + assert True + + def test_validate_configuration_template_exists(self, *args): + with patch.dict('sys.modules', **{ + 'vdirect_client': self.module_mock, + 'vdirect_client.rest_client': self.module_mock, + }): + from ansible_collections.community.network.plugins.modules import vdirect_runnable + + Catalog.set_catalog_item_200() + BASE_PARAMS.update(CONFIGURATION_TEMPLATE_RUNNABLE_PARAMS) + vdirectRunnable = vdirect_runnable.VdirectRunnable(BASE_PARAMS) + vdirectRunnable.client.runnable = Runnable(vdirectRunnable.client) + vdirectRunnable.client.catalog = Catalog(vdirectRunnable.client) + vdirectRunnable._validate_runnable_exists() + assert True + + def test_validate_workflow_template_exists(self, *args): + with patch.dict('sys.modules', **{ + 'vdirect_client': self.module_mock, + 'vdirect_client.rest_client': self.module_mock, + }): + from ansible_collections.community.network.plugins.modules import vdirect_runnable + + Catalog.set_catalog_item_200() + BASE_PARAMS.update(WORKFLOW_TEMPLATE_RUNNABLE_PARAMS) + vdirectRunnable = vdirect_runnable.VdirectRunnable(BASE_PARAMS) + vdirectRunnable.client.runnable = Runnable(vdirectRunnable.client) + vdirectRunnable.client.catalog = Catalog(vdirectRunnable.client) + vdirectRunnable._validate_runnable_exists() + assert True + + def test_validate_workflow_exists(self, *args): + with patch.dict('sys.modules', **{ + 'vdirect_client': self.module_mock, + 'vdirect_client.rest_client': self.module_mock, + }): + from ansible_collections.community.network.plugins.modules import vdirect_runnable + + Catalog.set_catalog_item_200() + BASE_PARAMS.update(CONFIGURATION_TEMPLATE_RUNNABLE_PARAMS) + Runnable.set_runnable_objects_result(WORKFLOW_RUNNABLE_OBJECT_RESULT) + BASE_PARAMS.update(WORKFLOW_RUNNABLE_PARAMS) + vdirectRunnable = vdirect_runnable.VdirectRunnable(BASE_PARAMS) + vdirectRunnable.client.runnable = Runnable(vdirectRunnable.client) + vdirectRunnable.client.catalog = Catalog(vdirectRunnable.client) + vdirectRunnable._validate_runnable_exists() + assert True + + def test_validate_plugin_exists(self, *args): + with patch.dict('sys.modules', **{ + 'vdirect_client': self.module_mock, + 'vdirect_client.rest_client': self.module_mock, + }): + from ansible_collections.community.network.plugins.modules import vdirect_runnable + + Runnable.set_runnable_objects_result(WORKFLOW_RUNNABLE_OBJECT_RESULT) + BASE_PARAMS.update(WORKFLOW_RUNNABLE_PARAMS) + vdirectRunnable = vdirect_runnable.VdirectRunnable(BASE_PARAMS) + vdirectRunnable.client.runnable = Runnable(vdirectRunnable.client) + vdirectRunnable.client.catalog = Catalog(vdirectRunnable.client) + vdirectRunnable._validate_runnable_exists() + assert True + + BASE_PARAMS['runnable_name'] = 'missing' + vdirectRunnable = vdirect_runnable.VdirectRunnable(BASE_PARAMS) + vdirectRunnable.client.runnable = Runnable(vdirectRunnable.client) + vdirectRunnable.client.catalog = Catalog(vdirectRunnable.client) + try: + vdirectRunnable._validate_runnable_exists() + self.fail("MissingRunnableException was not thrown for missing runnable name") + except vdirect_runnable.MissingRunnableException: + assert True + + def test_validate_configuration_template_action_name(self, *args): + with patch.dict('sys.modules', **{ + 'vdirect_client': self.module_mock, + 'vdirect_client.rest_client': self.module_mock, + }): + from ansible_collections.community.network.plugins.modules import vdirect_runnable + + Catalog.set_catalog_item_200() + BASE_PARAMS.update(PLUGIN_RUNNABLE_PARAMS) + vdirectRunnable = vdirect_runnable.VdirectRunnable(BASE_PARAMS) + vdirectRunnable.client.runnable = Runnable(vdirectRunnable.client) + vdirectRunnable.client.catalog = Catalog(vdirectRunnable.client) + vdirectRunnable._validate_runnable_exists() + assert True + + Catalog.set_catalog_item_404() + try: + vdirectRunnable._validate_runnable_exists() + self.fail("MissingRunnableException was not thrown for missing runnable name") + except vdirect_runnable.MissingRunnableException: + assert True + + def test_validate_configuration_template_action_name(self, *args): + with patch.dict('sys.modules', **{ + 'vdirect_client': self.module_mock, + 'vdirect_client.rest_client': self.module_mock, + }): + from ansible_collections.community.network.plugins.modules import vdirect_runnable + + Runnable.set_available_actions_result(ACTIONS_RESULT) + BASE_PARAMS.update(CONFIGURATION_TEMPLATE_RUNNABLE_PARAMS) + vdirectRunnable = vdirect_runnable.VdirectRunnable(BASE_PARAMS) + vdirectRunnable._validate_action_name() + assert vdirectRunnable.action_name == vdirect_runnable.VdirectRunnable.RUN_ACTION + + def test_validate_workflow_template_action_name(self, *args): + with patch.dict('sys.modules', **{ + 'vdirect_client': self.module_mock, + 'vdirect_client.rest_client': self.module_mock, + }): + from ansible_collections.community.network.plugins.modules import vdirect_runnable + + Runnable.set_available_actions_result(ACTIONS_RESULT) + BASE_PARAMS.update(WORKFLOW_TEMPLATE_RUNNABLE_PARAMS) + vdirectRunnable = vdirect_runnable.VdirectRunnable(BASE_PARAMS) + vdirectRunnable._validate_action_name() + assert vdirectRunnable.action_name == vdirect_runnable.VdirectRunnable.CREATE_WORKFLOW_ACTION + + def test_validate_workflow_action_name(self, *args): + with patch.dict('sys.modules', **{ + 'vdirect_client': self.module_mock, + 'vdirect_client.rest_client': self.module_mock, + }): + from ansible_collections.community.network.plugins.modules import vdirect_runnable + + Runnable.set_available_actions_result(ACTIONS_RESULT) + BASE_PARAMS.update(WORKFLOW_RUNNABLE_PARAMS) + vdirectRunnable = vdirect_runnable.VdirectRunnable(BASE_PARAMS) + vdirectRunnable.client.runnable = Runnable(vdirectRunnable.client) + vdirectRunnable._validate_action_name() + assert vdirectRunnable.action_name == 'one' + + BASE_PARAMS['action_name'] = 'three' + vdirectRunnable = vdirect_runnable.VdirectRunnable(BASE_PARAMS) + vdirectRunnable.client.runnable = Runnable(vdirectRunnable.client) + try: + vdirectRunnable._validate_action_name() + self.fail("WrongActionNameException was not thrown for wrong action name") + except vdirect_runnable.WrongActionNameException: + assert True + + def test_validate_plugin_action_name(self, *args): + with patch.dict('sys.modules', **{ + 'vdirect_client': self.module_mock, + 'vdirect_client.rest_client': self.module_mock, + }): + from ansible_collections.community.network.plugins.modules import vdirect_runnable + + Runnable.set_available_actions_result(ACTIONS_RESULT) + BASE_PARAMS.update(PLUGIN_RUNNABLE_PARAMS) + vdirectRunnable = vdirect_runnable.VdirectRunnable(BASE_PARAMS) + vdirectRunnable.client.runnable = Runnable(vdirectRunnable.client) + vdirectRunnable._validate_action_name() + assert vdirectRunnable.action_name == 'two' + + BASE_PARAMS['action_name'] = 'three' + vdirectRunnable = vdirect_runnable.VdirectRunnable(BASE_PARAMS) + vdirectRunnable.client.runnable = Runnable(vdirectRunnable.client) + try: + vdirectRunnable._validate_action_name() + self.fail("WrongActionNameException was not thrown for wrong action name") + except vdirect_runnable.WrongActionNameException: + assert True + + def test_validate_required_action_params(self, *args): + with patch.dict('sys.modules', **{ + 'vdirect_client': self.module_mock, + 'vdirect_client.rest_client': self.module_mock, + }): + from ansible_collections.community.network.plugins.modules import vdirect_runnable + + Runnable.set_action_info_result(ACTIONS_PARAMS_RESULT_BASIC) + BASE_PARAMS.update(CONFIGURATION_TEMPLATE_RUNNABLE_PARAMS) + + vdirectRunnable = vdirect_runnable.VdirectRunnable(BASE_PARAMS) + vdirectRunnable.client.runnable = Runnable(vdirectRunnable.client) + try: + vdirectRunnable._validate_required_action_params() + self.fail("MissingActionParametersException was not thrown for missing parameters") + except vdirect_runnable.MissingActionParametersException: + assert True + + BASE_PARAMS['parameters'] = {"alteon": "x"} + vdirectRunnable = vdirect_runnable.VdirectRunnable(BASE_PARAMS) + try: + vdirectRunnable._validate_required_action_params() + self.fail("MissingActionParametersException was not thrown for missing parameters") + except vdirect_runnable.MissingActionParametersException: + assert True + + BASE_PARAMS['parameters'] = {"pin": "x", "alteon": "a1"} + vdirectRunnable = vdirect_runnable.VdirectRunnable(BASE_PARAMS) + vdirectRunnable._validate_action_name() + vdirectRunnable._validate_required_action_params() + assert True + + Runnable.set_action_info_result(ACTIONS_PARAMS_RESULT_FULL) + vdirectRunnable._validate_action_name() + try: + vdirectRunnable._validate_required_action_params() + self.fail("MissingActionParametersException was not thrown for missing parameters") + except vdirect_runnable.MissingActionParametersException: + assert True + + BASE_PARAMS['parameters'].update( + {"alteon_array": "[a1, a2]", + "dp": "dp1", "dp_array": "[dp1, dp2]", + "appWall": "appWall1", + "appWall_array": "[appWall1, appWall2]" + }) + vdirectRunnable = vdirect_runnable.VdirectRunnable(BASE_PARAMS) + vdirectRunnable._validate_action_name() + vdirectRunnable._validate_required_action_params() + assert True + + def test_run(self, *args): + with patch.dict('sys.modules', **{ + 'vdirect_client': self.module_mock, + 'vdirect_client.rest_client': self.module_mock, + }): + from ansible_collections.community.network.plugins.modules import vdirect_runnable + + Catalog.set_catalog_item_200() + BASE_PARAMS.update(CONFIGURATION_TEMPLATE_RUNNABLE_PARAMS) + Runnable.set_available_actions_result(ACTIONS_RESULT) + Runnable.set_action_info_result(ACTIONS_PARAMS_RESULT_BASIC) + BASE_PARAMS['parameters'] = {"pin": "x", "alteon": "x"} + + vdirectRunnable = vdirect_runnable.VdirectRunnable(BASE_PARAMS) + vdirectRunnable.client.runnable = Runnable(vdirectRunnable.client) + Runnable.set_run_result(RUN_RESULT) + res = vdirectRunnable.run() + assert res['msg'] == MODULE_RESULT['msg'] + + result_parameters = {"param1": "value1", "param2": "value2"} + RUN_RESULT[self.module_mock.rest_client.RESP_DATA]['parameters'] = result_parameters + MODULE_RESULT['parameters'] = result_parameters + res = vdirectRunnable.run() + assert res['msg'] == MODULE_RESULT['msg'] + assert res['output']['parameters'] == result_parameters + + RUN_RESULT[self.module_mock.rest_client.RESP_DATA]['status'] = 404 + vdirectRunnable.run() + assert res['msg'] == MODULE_RESULT['msg'] + + RUN_RESULT[self.module_mock.rest_client.RESP_STATUS] = 400 + RUN_RESULT[self.module_mock.rest_client.RESP_REASON] = "Reason" + RUN_RESULT[self.module_mock.rest_client.RESP_STR] = "Details" + try: + vdirectRunnable.run() + self.fail("RunnableException was not thrown for failed run.") + except vdirect_runnable.RunnableException as e: + assert str(e) == "Reason: Reason. Details:Details." + + RUN_RESULT[self.module_mock.rest_client.RESP_STATUS] = 200 + RUN_RESULT[self.module_mock.rest_client.RESP_DATA]["status"] = 400 + RUN_RESULT[self.module_mock.rest_client.RESP_DATA]["success"] = False + RUN_RESULT[self.module_mock.rest_client.RESP_DATA]["exception"] = {"message": "exception message"} + try: + vdirectRunnable.run() + self.fail("RunnableException was not thrown for failed run.") + except vdirect_runnable.RunnableException as e: + assert str(e) == "Reason: exception message. Details:Details." diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_voss_command.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_voss_command.py new file mode 100644 index 000000000..f8c380a8e --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_voss_command.py @@ -0,0 +1,120 @@ +# (c) 2016 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import json + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from ansible_collections.community.network.plugins.modules import voss_command +from .voss_module import TestVossModule, load_fixture + + +class TestVossCommandModule(TestVossModule): + + module = voss_command + + def setUp(self): + super(TestVossCommandModule, self).setUp() + + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.voss_command.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestVossCommandModule, self).tearDown() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + + def load_from_file(*args, **kwargs): + module, commands = args + output = list() + + for item in commands: + try: + obj = json.loads(item['command']) + command = obj['command'] + except ValueError: + command = item['command'] + filename = str(command).replace(' ', '_') + output.append(load_fixture(filename)) + return output + + self.run_commands.side_effect = load_from_file + + def test_voss_command_simple(self): + set_module_args(dict(commands=['show sys-info'])) + result = self.execute_module() + self.assertEqual(len(result['stdout']), 1) + self.assertTrue(result['stdout'][0].startswith('General Info')) + + def test_voss_command_multiple(self): + set_module_args(dict(commands=['show sys-info', 'show sys-info'])) + result = self.execute_module() + self.assertEqual(len(result['stdout']), 2) + self.assertTrue(result['stdout'][0].startswith('General Info')) + + def test_voss_command_wait_for(self): + wait_for = 'result[0] contains "General Info"' + set_module_args(dict(commands=['show sys-info'], wait_for=wait_for)) + self.execute_module() + + def test_voss_command_wait_for_fails(self): + wait_for = 'result[0] contains "test string"' + set_module_args(dict(commands=['show sys-info'], wait_for=wait_for)) + self.execute_module(failed=True) + self.assertEqual(self.run_commands.call_count, 10) + + def test_voss_command_retries(self): + wait_for = 'result[0] contains "test string"' + set_module_args(dict(commands=['show sys-info'], wait_for=wait_for, retries=2)) + self.execute_module(failed=True) + self.assertEqual(self.run_commands.call_count, 2) + + def test_voss_command_match_any(self): + wait_for = ['result[0] contains "General Info"', + 'result[0] contains "test string"'] + set_module_args(dict(commands=['show sys-info'], wait_for=wait_for, match='any')) + self.execute_module() + + def test_voss_command_match_all(self): + wait_for = ['result[0] contains "General Info"', + 'result[0] contains "Chassis Info"'] + set_module_args(dict(commands=['show sys-info'], wait_for=wait_for, match='all')) + self.execute_module() + + def test_voss_command_match_all_failure(self): + wait_for = ['result[0] contains "General Info"', + 'result[0] contains "test string"'] + commands = ['show sys-info', 'show sys-info'] + set_module_args(dict(commands=commands, wait_for=wait_for, match='all')) + self.execute_module(failed=True) + + def test_voss_command_configure_error(self): + commands = ['configure terminal'] + set_module_args({ + 'commands': commands, + '_ansible_check_mode': True, + }) + result = self.execute_module(failed=True) + self.assertEqual( + result['msg'], + 'voss_command does not support running config mode commands. Please use voss_config instead' + ) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_voss_config.py.disabled b/ansible_collections/community/network/tests/unit/plugins/modules/test_voss_config.py.disabled new file mode 100644 index 000000000..8437815c3 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_voss_config.py.disabled @@ -0,0 +1,272 @@ +# +# (c) 2016 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch, MagicMock +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from ansible_collections.community.network.plugins.modules.network.voss import voss_config +from ansible_collections.community.network.plugins.cliconf.voss import Cliconf +from .voss_module import TestVossModule, load_fixture + + +class TestVossConfigModule(TestVossModule): + + module = voss_config + + def setUp(self): + super(TestVossConfigModule, self).setUp() + + self.mock_get_config = patch('ansible_collections.community.network.plugins.modules.network.voss.voss_config.get_config') + self.get_config = self.mock_get_config.start() + + self.mock_get_connection = patch('ansible_collections.community.network.plugins.modules.network.voss.voss_config.get_connection') + self.get_connection = self.mock_get_connection.start() + + self.conn = self.get_connection() + self.conn.edit_config = MagicMock() + + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.network.voss.voss_config.run_commands') + self.run_commands = self.mock_run_commands.start() + + self.cliconf_obj = Cliconf(MagicMock()) + self.running_config = load_fixture('voss_config_config.cfg') + + def tearDown(self): + super(TestVossConfigModule, self).tearDown() + self.mock_get_config.stop() + self.mock_run_commands.stop() + self.mock_get_connection.stop() + + def load_fixtures(self, commands=None): + config_file = 'voss_config_config.cfg' + self.get_config.return_value = load_fixture(config_file) + self.get_connection.edit_config.return_value = None + + def test_voss_config_unchanged(self): + src = load_fixture('voss_config_config.cfg') + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff(src, src)) + set_module_args(dict(src=src)) + self.execute_module() + + def test_voss_config_src(self): + src = load_fixture('voss_config_src.cfg') + set_module_args(dict(src=src)) + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff(src, self.running_config)) + commands = ['prompt "VSP8K"', 'interface GigabitEthernet 1/1', + 'name "UNUSED"', 'exit'] + self.execute_module(changed=True, commands=commands) + + def test_voss_config_backup(self): + set_module_args(dict(backup=True)) + result = self.execute_module() + self.assertIn('__backup__', result) + + def test_voss_config_save_always(self): + self.run_commands.return_value = "Hostname foo" + set_module_args(dict(save_when='always')) + self.execute_module(changed=True) + self.assertEqual(self.run_commands.call_count, 1) + self.assertEqual(self.get_config.call_count, 0) + self.assertEqual(self.conn.edit_config.call_count, 0) + args = self.run_commands.call_args[0][1] + self.assertIn('save config\r', args) + + def test_voss_config_save_changed_true(self): + src = load_fixture('voss_config_src.cfg') + set_module_args(dict(src=src, save_when='changed')) + commands = ['prompt "VSP8K"', 'interface GigabitEthernet 1/1', + 'name "UNUSED"', 'exit'] + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff(src, self.running_config)) + self.execute_module(changed=True, commands=commands) + self.assertEqual(self.run_commands.call_count, 1) + self.assertEqual(self.get_config.call_count, 1) + self.assertEqual(self.conn.edit_config.call_count, 1) + args = self.run_commands.call_args[0][1] + self.assertIn('save config\r', args) + + def test_voss_config_save_changed_false(self): + set_module_args(dict(save_when='changed')) + self.execute_module(changed=False) + self.assertEqual(self.run_commands.call_count, 0) + self.assertEqual(self.get_config.call_count, 0) + self.assertEqual(self.conn.edit_config.call_count, 0) + + def test_voss_config_lines_wo_parents(self): + lines = ['prompt "VSP8K"'] + set_module_args(dict(lines=lines)) + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff('\n'.join(lines), self.running_config)) + commands = ['prompt "VSP8K"'] + self.execute_module(changed=True, commands=commands) + + def test_voss_config_lines_w_parents(self): + lines = ['no shutdown'] + parents = ['interface GigabitEthernet 1/1'] + set_module_args(dict(lines=lines, parents=parents)) + module = MagicMock() + module.params = {'lines': lines, 'parents': parents, 'src': None} + candidate_config = voss_config.get_candidate_config(module) + + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff(candidate_config, self.running_config)) + + commands = ['interface GigabitEthernet 1/1', 'no shutdown'] + self.execute_module(changed=True, commands=commands) + + def test_voss_config_before(self): + lines = ['prompt "VSP8K"'] + set_module_args(dict(lines=lines, before=['test1', 'test2'])) + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff('\n'.join(lines), + self.running_config)) + commands = ['test1', 'test2', 'prompt "VSP8K"'] + self.execute_module(changed=True, commands=commands, sort=False) + + def test_voss_config_after(self): + lines = ['prompt "VSP8K"'] + set_module_args(dict(lines=lines, after=['test1', 'test2'])) + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff('\n'.join(lines), + self.running_config)) + commands = ['prompt "VSP8K"', 'test1', 'test2'] + self.execute_module(changed=True, commands=commands, sort=False) + + def test_voss_config_before_after_no_change(self): + lines = ['prompt "VSP300"'] + set_module_args(dict(lines=lines, + before=['test1', 'test2'], + after=['test3', 'test4'])) + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff('\n'.join(lines), self.running_config)) + self.execute_module() + + def test_voss_config_config(self): + config = 'prompt "VSP300"' + lines = ['prompt router'] + set_module_args(dict(lines=lines, config=config)) + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff('\n'.join(lines), config)) + commands = ['prompt router'] + self.execute_module(changed=True, commands=commands) + + def test_voss_config_replace_block(self): + lines = ['name "ServerB"', 'test string'] + parents = ['interface GigabitEthernet 1/2'] + set_module_args(dict(lines=lines, replace='block', parents=parents)) + + module = MagicMock() + module.params = {'lines': lines, 'parents': parents, 'src': None} + candidate_config = voss_config.get_candidate_config(module) + + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff(candidate_config, self.running_config, diff_replace='block', path=parents)) + + commands = parents + lines + self.execute_module(changed=True, commands=commands) + + def test_voss_config_match_none(self): + lines = ['prompt router'] + set_module_args(dict(lines=lines, match='none')) + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff('\n'.join(lines), self.running_config, diff_match='none')) + self.execute_module(changed=True, commands=lines) + + def test_voss_config_match_none_parents(self): + lines = ['name ServerA', 'vlacp enable'] + parents = ['interface GigabitEthernet 1/1'] + set_module_args(dict(lines=lines, parents=parents, match='none')) + + module = MagicMock() + module.params = {'lines': lines, 'parents': parents, 'src': None} + candidate_config = voss_config.get_candidate_config(module) + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff(candidate_config, self.running_config, diff_match='none', path=parents)) + + commands = parents + lines + self.execute_module(changed=True, commands=commands, sort=False) + + def test_voss_config_match_strict(self): + lines = ['name "ServerA"', 'vlacp enable', + 'no shutdown'] + parents = ['interface GigabitEthernet 1/1'] + set_module_args(dict(lines=lines, parents=parents, match='strict')) + + module = MagicMock() + module.params = {'lines': lines, 'parents': parents, 'src': None} + candidate_config = voss_config.get_candidate_config(module) + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff(candidate_config, self.running_config, diff_match='strict', path=parents)) + + commands = parents + ['no shutdown'] + self.execute_module(changed=True, commands=commands, sort=False) + + def test_voss_config_match_exact(self): + lines = ['name "ServerA"', 'vlacp enable', 'no shutdown'] + parents = ['interface GigabitEthernet 1/1'] + set_module_args(dict(lines=lines, parents=parents, match='exact')) + + module = MagicMock() + module.params = {'lines': lines, 'parents': parents, 'src': None} + candidate_config = voss_config.get_candidate_config(module) + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff(candidate_config, self.running_config, diff_match='exact', path=parents)) + + commands = parents + lines + self.execute_module(changed=True, commands=commands, sort=False) + + def test_voss_config_src_and_lines_fails(self): + args = dict(src='foo', lines='foo') + set_module_args(args) + self.execute_module(failed=True) + + def test_voss_config_src_and_parents_fails(self): + args = dict(src='foo', parents='foo') + set_module_args(args) + self.execute_module(failed=True) + + def test_voss_config_match_exact_requires_lines(self): + args = dict(match='exact') + set_module_args(args) + self.execute_module(failed=True) + + def test_voss_config_match_strict_requires_lines(self): + args = dict(match='strict') + set_module_args(args) + self.execute_module(failed=True) + + def test_voss_config_replace_block_requires_lines(self): + args = dict(replace='block') + set_module_args(args) + self.execute_module(failed=True) + + def test_voss_config_replace_config_requires_src(self): + args = dict(replace='config') + set_module_args(args) + self.execute_module(failed=True) + + def test_voss_config_ipv6(self): + lines = ['ip address 1 1.1.1.1/255.255.255.255', + 'ipv6 interface address 2011:0:0:0:0:0:0:1/128'] + parents = ['interface loopback 1'] + set_module_args(dict(lines=lines, parents=parents)) + module = MagicMock() + module.params = {'lines': lines, 'parents': parents, 'src': None} + candidate_config = voss_config.get_candidate_config(module) + + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff(candidate_config, self.running_config)) + self.execute_module(changed=False) + + def test_voss_config_src_ipv6(self): + src = load_fixture('voss_config_ipv6.cfg') + set_module_args(dict(src=src)) + self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff(src, self.running_config)) + commands = ['interface loopback 1', 'ip address 1 2.2.2.2/255.255.255.255', + 'ipv6 interface address 2011:0:0:0:0:0:0:2/128', 'exit'] + self.execute_module(changed=True, commands=commands) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/test_voss_facts.py b/ansible_collections/community/network/tests/unit/plugins/modules/test_voss_facts.py new file mode 100644 index 000000000..adb02bfb4 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/test_voss_facts.py @@ -0,0 +1,86 @@ +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible_collections.community.network.tests.unit.plugins.modules.utils import set_module_args +from ansible_collections.community.network.plugins.modules import voss_facts +from .voss_module import TestVossModule, load_fixture + + +class TestVossFactsModule(TestVossModule): + + module = voss_facts + + def setUp(self): + super(TestVossFactsModule, self).setUp() + self.mock_run_commands = patch('ansible_collections.community.network.plugins.modules.voss_facts.run_commands') + self.run_commands = self.mock_run_commands.start() + + def tearDown(self): + super(TestVossFactsModule, self).tearDown() + self.mock_run_commands.stop() + + def load_fixtures(self, commands=None): + def load_from_file(*args, **kwargs): + module = args + commands = kwargs['commands'] + output = list() + + for command in commands: + filename = str(command).split(' | ')[0].replace(' ', '_') + output.append(load_fixture('voss_facts_%s' % filename)) + return output + + self.run_commands.side_effect = load_from_file + + def test_voss_facts_default(self): + set_module_args(dict(gather_subset='default')) + result = self.execute_module() + self.assertEqual( + result['ansible_facts']['ansible_net_model'], '4450GSX-PWR+' + ) + self.assertEqual( + result['ansible_facts']['ansible_net_serialnum'], '14JP512E0001' + ) + self.assertEqual( + result['ansible_facts']['ansible_net_version'], '7.0.0.0_B015' + ) + + def test_voss_facts_interfaces(self): + set_module_args(dict(gather_subset='interfaces')) + result = self.execute_module() + self.assertEqual( + result['ansible_facts']['ansible_net_interfaces']['1/1']['description'], 'serverA' + ) + self.assertEqual( + result['ansible_facts']['ansible_net_interfaces']['Clip1']['ipv4'][0]['address'], '1.1.1.1' + ) + self.assertEqual( + result['ansible_facts']['ansible_net_neighbors']['1/1'][0]['host'], 'X690-48t-2q-4c' + ) + + def test_voss_facts_hardware(self): + set_module_args(dict(gather_subset='hardware')) + result = self.execute_module() + self.assertEqual( + result['ansible_facts']['ansible_net_memfree_mb'], 625 + ) + self.assertEqual( + result['ansible_facts']['ansible_net_memtotal_mb'], 1002 + ) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/utils.py b/ansible_collections/community/network/tests/unit/plugins/modules/utils.py new file mode 100644 index 000000000..4f336c84b --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/utils.py @@ -0,0 +1,50 @@ +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +import json + +from ansible_collections.community.network.tests.unit.compat import unittest +from ansible_collections.community.network.tests.unit.compat.mock import patch +from ansible.module_utils import basic +from ansible.module_utils._text import to_bytes + + +def set_module_args(args): + if '_ansible_remote_tmp' not in args: + args['_ansible_remote_tmp'] = '/tmp' + if '_ansible_keep_remote_files' not in args: + args['_ansible_keep_remote_files'] = False + + args = json.dumps({'ANSIBLE_MODULE_ARGS': args}) + basic._ANSIBLE_ARGS = to_bytes(args) + + +class AnsibleExitJson(Exception): + pass + + +class AnsibleFailJson(Exception): + pass + + +def exit_json(*args, **kwargs): + if 'changed' not in kwargs: + kwargs['changed'] = False + raise AnsibleExitJson(kwargs) + + +def fail_json(*args, **kwargs): + kwargs['failed'] = True + raise AnsibleFailJson(kwargs) + + +class ModuleTestCase(unittest.TestCase): + + def setUp(self): + self.mock_module = patch.multiple(basic.AnsibleModule, exit_json=exit_json, fail_json=fail_json) + self.mock_module.start() + self.mock_sleep = patch('time.sleep') + self.mock_sleep.start() + set_module_args({}) + self.addCleanup(self.mock_module.stop) + self.addCleanup(self.mock_sleep.stop) diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/show_sys-info b/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/show_sys-info new file mode 100644 index 000000000..6e7099c2b --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/show_sys-info @@ -0,0 +1,107 @@ +General Info : + + SysDescr : VSP-4450GSX-PWR+ (7.0.0.0_B015) + SysName : VSP-4450GSX-PWR+ + SysUpTime : 5 day(s), 17:13:09 + SysContact : http://www.extremenetworks.com/contact/ + SysLocation : + +Chassis Info: + + Chassis : 4450GSX-PWR+ + ModelName : 4450GSX-PWR+ + BrandName : Extreme Networks. + Serial# : 14JP512E0001 + H/W Revision : 01 + H/W Config : none + Part Number : + NumSlots : 1 + NumPorts : 50 + BaseMacAddr : b4:47:5e:00:00:00 + MacAddrCapacity : 256 + System MTU : 1950 + +Card Info : + + Slot# CardType Serial# Part# Oper Admin Power + Status Status State + 1 4450GSX-PWR+ 14JP512E0001 -- up up on + +Temperature Info : + + Chassis Temperature + 30 + + +Power Supply Info : + + Ps#1 Status : UP + Ps#1 Type : AC + Ps#1 Description : AC-DC-54V-1000W + Ps#1 Serial Number: LBNNTMPL20180R + Ps#1 Version : -- + Ps#1 Part Number : 325220-A.01 + + Ps#2 Status : empty + + Total Power Available : 1000 watts + Total Power Usage : 127 watts + +Fan Info : + + Description OperStatus OperSpeed AirflowDir + Tray 1 Fan 1 up mediumSpeed left-right + Tray 1 Fan 2 up mediumSpeed left-right + Tray 1 Fan 3 up mediumSpeed left-right + +LED Info : + + LED#1 Label : PWR + LED#1 Status : GreenSteady + + LED#2 Label : Status + LED#2 Status : GreenSteady + + LED#3 Label : Rps + LED#3 Status : Off + + LED#4 Label : Up + LED#4 Status : UnSupported + + LED#5 Label : Down + LED#5 Status : UnSupported + + LED#6 Label : Base + LED#6 Status : UnSupported + +System Error Info : + + Send Login Success Trap : false + Send Authentication Trap : false + Error Code : 0 + Error Severity : 0 + +Port Lock Info : + + Status : off + LockedPorts : + +Message Control Info : + + Action : suppress-msg + Control-Interval : 5 + Max-msg-num : 5 + Status : disable + + +Configuration Operation Info Since Boot Up: + Last Change: 0 day(s), 08:31:10 (5 day(s), 08:41:59 ago) + Last Vlan Change: 0 day(s), 08:27:35 (5 day(s), 08:45:34 ago) +Last Statistic Reset: 5 day(s), 16:56:45 (0 day(s), 00:16:24 ago) + +Current Uboot Info : +---------------------------------------------------------------------------------------------------- + + VU-Boot 2012.04-00002-g6fb1c26 (Apr 26 2017 - 13:37:44) bld=17042617 + + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_config_config.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_config_config.cfg new file mode 100644 index 000000000..29e5233fb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_config_config.cfg @@ -0,0 +1,16 @@ +prompt "VSP300" +interface GigabitEthernet 1/1 +name "ServerA" +vlacp enable +exit +interface GigabitEthernet 1/2 +name "ServerB" +vlacp enable +no shutdown +exit +interface loopback 1 +ip address 1 1.1.1.1/255.255.255.255 +exit +interface loopback 1 +ipv6 interface address 2011:0:0:0:0:0:0:1/128 +exit diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_config_ipv6.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_config_ipv6.cfg new file mode 100644 index 000000000..53611e7dd --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_config_ipv6.cfg @@ -0,0 +1,6 @@ +interface loopback 1 +ip address 1 2.2.2.2/255.255.255.255 +exit +interface loopback 1 +ipv6 interface address 2011:0:0:0:0:0:0:2/128 +exit diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_config_src.cfg b/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_config_src.cfg new file mode 100644 index 000000000..72aa54587 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_config_src.cfg @@ -0,0 +1,10 @@ +prompt "VSP8K" +interface GigabitEthernet 1/1 +name "UNUSED" +vlacp enable +exit +interface GigabitEthernet 1/2 +name "ServerB" +vlacp enable +no shutdown +exit diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_facts_show_interfaces_gigabitEthernet_interface b/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_facts_show_interfaces_gigabitEthernet_interface new file mode 100644 index 000000000..cdebd4068 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_facts_show_interfaces_gigabitEthernet_interface @@ -0,0 +1,93 @@ + +========================================================================================== + Port Interface +========================================================================================== +PORT LINK PORT PHYSICAL STATUS +NUM INDEX DESCRIPTION TRAP LOCK MTU ADDRESS ADMIN OPERATE +------------------------------------------------------------------------------------------ +1/1 192 10GbNone true false 1950 00:51:00:16:40:00 down down +1/2 193 10GbNone true false 1950 00:51:00:16:40:01 down down +1/3 194 10GbNone true false 1950 00:51:00:16:40:02 down down +1/4 195 10GbNone true false 1950 00:51:00:16:40:03 down down +1/5 196 10GbNone true false 1950 00:51:00:16:40:04 down down +1/6 197 10GbNone true false 1950 00:51:00:16:40:05 down down +1/7 198 10GbNone true false 1950 00:51:00:16:40:06 down down +1/8 199 10GbNone true false 1950 00:51:00:16:40:07 down down +1/9 200 10GbNone true false 1950 00:51:00:16:40:08 down down +1/10 201 10GbNone true false 1950 00:51:00:16:40:09 down down +1/11 202 10GbNone true false 1950 00:51:00:16:40:0a down down +1/12 203 10GbNone true false 1950 00:51:00:16:40:0b down down +1/13 204 10GbNone true false 1950 00:51:00:16:40:0c down down +1/14 205 10GbNone true false 1950 00:51:00:16:40:0d down down +1/15 206 10GbNone true false 1950 00:51:00:16:40:0e down down +1/16 207 10GbNone true false 1950 00:51:00:16:40:0f down down +1/17 208 10GbNone true false 1950 00:51:00:16:40:10 down down +1/18 209 10GbNone true false 1950 00:51:00:16:40:11 down down +1/19 210 10GbNone true false 1950 00:51:00:16:40:12 down down +1/20 211 10GbNone true false 1950 00:51:00:16:40:13 down down +1/21 212 10GbNone true false 1950 00:51:00:16:40:14 down down +1/22 213 10GbNone true false 1950 00:51:00:16:40:15 down down +1/23 214 10GbNone true false 1950 00:51:00:16:40:16 down down +1/24 215 10GbNone true false 1950 00:51:00:16:40:17 down down +1/25 216 10GbNone true false 1950 00:51:00:16:40:18 down down +1/26 217 10GbNone true false 1950 00:51:00:16:40:19 down down +1/27 218 10GbNone true false 1950 00:51:00:16:40:1a down down +1/28 219 10GbNone true false 1950 00:51:00:16:40:1b down down +1/29 220 10GbNone true false 1950 00:51:00:16:40:1c down down +1/30 221 10GbNone true false 1950 00:51:00:16:40:1d down down +1/31 222 10GbNone true false 1950 00:51:00:16:40:1e down down +1/32 223 10GbNone true false 1950 00:51:00:16:40:1f down down +1/33 224 10GbNone true false 1950 00:51:00:16:40:20 down down +1/34 225 10GbNone true false 1950 00:51:00:16:40:21 down down +1/35 226 10GbNone true false 1950 00:51:00:16:40:22 down down +1/36 227 10GbNone true false 1950 00:51:00:16:40:23 down down +1/37 228 10GbNone true false 1950 00:51:00:16:40:24 down down +1/38 229 10GbNone true false 1950 00:51:00:16:40:25 down down +1/39 230 10GbNone true false 1950 00:51:00:16:40:26 down down +1/40 231 10GbNone true false 1950 00:51:00:16:40:27 down down +1/41 232 40GbNone true false 1950 00:51:00:16:40:28 down down +1/42 236 40GbNone true false 1950 00:51:00:16:40:2c down down +2/1 256 10GbNone true false 1950 00:51:00:16:40:40 down down +2/2 257 10GbNone true false 1950 00:51:00:16:40:41 down down +2/3 258 10GbNone true false 1950 00:51:00:16:40:42 down down +2/4 259 10GbNone true false 1950 00:51:00:16:40:43 down down +2/5 260 10GbNone true false 1950 00:51:00:16:40:44 down down +2/6 261 10GbNone true false 1950 00:51:00:16:40:45 down down +2/7 262 10GbNone true false 1950 00:51:00:16:40:46 down down +2/8 263 10GbNone true false 1950 00:51:00:16:40:47 down down +2/9 264 10GbNone true false 1950 00:51:00:16:40:48 down down +2/10 265 10GbNone true false 1950 00:51:00:16:40:49 down down +2/11 266 10GbNone true false 1950 00:51:00:16:40:4a down down +2/12 267 10GbNone true false 1950 00:51:00:16:40:4b down down +2/13 268 10GbNone true false 1950 00:51:00:16:40:4c down down +2/14 269 10GbNone true false 1950 00:51:00:16:40:4d down down +2/15 270 10GbNone true false 1950 00:51:00:16:40:4e down down +2/16 271 10GbNone true false 1950 00:51:00:16:40:4f down down +2/17 272 10GbNone true false 1950 00:51:00:16:40:50 down down +2/18 273 10GbNone true false 1950 00:51:00:16:40:51 down down +2/19 274 10GbNone true false 1950 00:51:00:16:40:52 down down +2/20 275 10GbNone true false 1950 00:51:00:16:40:53 down down +2/21 276 10GbNone true false 1950 00:51:00:16:40:54 down down +2/22 277 10GbNone true false 1950 00:51:00:16:40:55 down down +2/23 278 10GbNone true false 1950 00:51:00:16:40:56 down down +2/24 279 10GbNone true false 1950 00:51:00:16:40:57 down down +2/25 280 10GbNone true false 1950 00:51:00:16:40:58 down down +2/26 281 10GbNone true false 1950 00:51:00:16:40:59 down down +2/27 282 10GbNone true false 1950 00:51:00:16:40:5a down down +2/28 283 10GbNone true false 1950 00:51:00:16:40:5b down down +2/29 284 10GbNone true false 1950 00:51:00:16:40:5c down down +2/30 285 10GbNone true false 1950 00:51:00:16:40:5d down down +2/31 286 10GbNone true false 1950 00:51:00:16:40:5e down down +2/32 287 10GbNone true false 1950 00:51:00:16:40:5f down down +2/33 288 10GbNone true false 1950 00:51:00:16:40:60 down down +2/34 289 10GbNone true false 1950 00:51:00:16:40:61 down down +2/35 290 10GbNone true false 1950 00:51:00:16:40:62 down down +2/36 291 10GbNone true false 1950 00:51:00:16:40:63 down down +2/37 292 10GbNone true false 1950 00:51:00:16:40:64 down down +2/38 293 10GbNone true false 1950 00:51:00:16:40:65 down down +2/39 294 10GbNone true false 1950 00:51:00:16:40:66 down down +2/40 295 10GbNone true false 1950 00:51:00:16:40:67 down down +2/41 296 40GbNone true false 1950 00:51:00:16:40:68 down down +2/42 300 40GbNone true false 1950 00:51:00:16:40:6c down down + + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_facts_show_interfaces_gigabitEthernet_name b/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_facts_show_interfaces_gigabitEthernet_name new file mode 100644 index 000000000..7efcfd07f --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_facts_show_interfaces_gigabitEthernet_name @@ -0,0 +1,93 @@ + +========================================================================================== + Port Name +========================================================================================== +PORT OPERATE OPERATE OPERATE +NUM NAME DESCRIPTION STATUS DUPLX SPEED VLAN +---------------------------------------------------------------------------------------------------- +1/1 serverA 10GbNone down full 0 Access +1/2 10GbNone down full 0 Access +1/3 10GbNone down full 0 Access +1/4 10GbNone down full 0 Access +1/5 10GbNone down full 0 Access +1/6 10GbNone down full 0 Access +1/7 10GbNone down full 0 Access +1/8 10GbNone down full 0 Access +1/9 10GbNone down full 0 Access +1/10 10GbNone down full 0 Access +1/11 10GbNone down full 0 Access +1/12 10GbNone down full 0 Access +1/13 10GbNone down full 0 Access +1/14 10GbNone down full 0 Access +1/15 10GbNone down full 0 Access +1/16 10GbNone down full 0 Access +1/17 10GbNone down full 0 Access +1/18 10GbNone down full 0 Access +1/19 10GbNone down full 0 Access +1/20 10GbNone down full 0 Access +1/21 10GbNone down full 0 Access +1/22 10GbNone down full 0 Access +1/23 10GbNone down full 0 Access +1/24 10GbNone down full 0 Access +1/25 10GbNone down full 0 Access +1/26 10GbNone down full 0 Access +1/27 10GbNone down full 0 Access +1/28 10GbNone down full 0 Access +1/29 10GbNone down full 0 Access +1/30 10GbNone down full 0 Access +1/31 10GbNone down full 0 Access +1/32 10GbNone down full 0 Access +1/33 10GbNone down full 0 Access +1/34 10GbNone down full 0 Access +1/35 10GbNone down full 0 Access +1/36 10GbNone down full 0 Access +1/37 10GbNone down full 0 Access +1/38 10GbNone down full 0 Access +1/39 10GbNone down full 0 Access +1/40 10GbNone down full 0 Access +1/41 40GbNone down half 0 Access +1/42 40GbNone down half 0 Access +2/1 10GbNone down full 0 Access +2/2 10GbNone down full 0 Access +2/3 10GbNone down full 0 Access +2/4 10GbNone down full 0 Access +2/5 10GbNone down full 0 Access +2/6 10GbNone down full 0 Access +2/7 10GbNone down full 0 Access +2/8 10GbNone down full 0 Access +2/9 10GbNone down full 0 Access +2/10 10GbNone down full 0 Access +2/11 10GbNone down full 0 Access +2/12 10GbNone down full 0 Access +2/13 10GbNone down full 0 Access +2/14 10GbNone down full 0 Access +2/15 10GbNone down full 0 Access +2/16 10GbNone down full 0 Access +2/17 10GbNone down full 0 Access +2/18 10GbNone down full 0 Access +2/19 10GbNone down full 0 Access +2/20 10GbNone down full 0 Access +2/21 10GbNone down full 0 Access +2/22 10GbNone down full 0 Access +2/23 10GbNone down full 0 Access +2/24 10GbNone down full 0 Access +2/25 10GbNone down full 0 Access +2/26 10GbNone down full 0 Access +2/27 10GbNone down full 0 Access +2/28 10GbNone down full 0 Access +2/29 10GbNone down full 0 Access +2/30 10GbNone down full 0 Access +2/31 10GbNone down full 0 Access +2/32 10GbNone down full 0 Access +2/33 10GbNone down full 0 Access +2/34 10GbNone down full 0 Access +2/35 10GbNone down full 0 Access +2/36 10GbNone down full 0 Access +2/37 10GbNone down full 0 Access +2/38 10GbNone down full 0 Access +2/39 10GbNone down full 0 Access +2/40 10GbNone down full 0 Access +2/41 40GbNone down half 0 Access +2/42 40GbNone down half 0 Access + + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_facts_show_ip_interface b/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_facts_show_ip_interface new file mode 100644 index 000000000..7283cef13 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_facts_show_ip_interface @@ -0,0 +1,12 @@ + +==================================================================================================== + IP Interface - GlobalRouter +==================================================================================================== +INTERFACE IP NET BCASTADDR REASM VLAN BROUTER IPSEC + ADDRESS MASK FORMAT MAXSIZE ID PORT STATE +---------------------------------------------------------------------------------------------------- +Clip1 1.1.1.1 255.255.255.255 ones 1500 -- false disable +Vlan1 10.10.10.10 255.255.255.0 ones 1500 1 false disable + + +All 2 out of 2 Total Num of IP interfaces displayed diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_facts_show_ipv6_address_interface b/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_facts_show_ipv6_address_interface new file mode 100644 index 000000000..51b1caed4 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_facts_show_ipv6_address_interface @@ -0,0 +1,12 @@ +======================================================================================================= + Address Information - GlobalRouter +======================================================================================================= +IPV6 ADDRESS/PREFIX LENGTH VID/BID/TID TYPE ORIGIN STATUS VALID PREF + LIFETIME LIFETIME +------------------------------------------------------------------------------------------------------- +2011:0:0:0:0:0:0:1/128 C-1 UNICAST MANUAL PREFERRED INF INF +2001:0:0:0:0:0:0:1/64 V-1 UNICAST MANUAL INACCESSIBLE INF INF +2002:0:0:0:0:0:0:1/64 V-1 UNICAST MANUAL INACCESSIBLE INF INF +fe80:0:0:0:251:ff:fe16:4100/64 V-1 UNICAST LINKLAYER INACCESSIBLE INF INF + +4 out of 4 Total Num of Address Entries displayed. diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_facts_show_khi_performance_memory b/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_facts_show_khi_performance_memory new file mode 100644 index 000000000..a9628f8a2 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_facts_show_khi_performance_memory @@ -0,0 +1,14 @@ + Slot:1 + Used: 386164 (KB) + Free: 639868 (KB) + Current utilization: 37 % + 5-minute average utilization: 37 % + 5-minute high water mark: 37 (%) + 10-minute average utilization: 37 % + 10-minute high water mark: 37 (%) + 1-Hour average utilization: 37 % + 1-Hour high water mark: 37 (%) + 1-Day average utilization: 36 % + 1-Month average utilization: 0 % + 1-Year average utilization: 0 % + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_facts_show_lldp_neighbor b/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_facts_show_lldp_neighbor new file mode 100644 index 000000000..02e6b1600 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_facts_show_lldp_neighbor @@ -0,0 +1,12 @@ +Port: 1/1 Index : 1 + PortId : IfName 5 + SysName : X690-48t-2q-4c + PortDescr: +Port: 1/2 Index : 2 + PortId : IfName 1/2 + SysName : VSP2 + PortDescr: Extreme Networks Virtual Services Platform 4450GSX-PWR+ - 1000BaseTX Port 1/2 +Port: 1/12 Index : 2 + PortId : IfName 1/12 + SysName : VSP2 + PortDescr: Extreme Networks Virtual Services Platform 4450GSX-PWR+ - 1000BaseTX Port 1/12 diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_facts_show_running-config b/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_facts_show_running-config new file mode 100644 index 000000000..a049a2796 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_facts_show_running-config @@ -0,0 +1,903 @@ +Preparing to Display Configuration... +# +# Wed Aug 15 05:20:06 2018 UTC +# box type : VSP-8284XSQ +# software version : 7.0.0.0_B015 +# cli mode : ECLI +# + +#Card Info : + +# Slot 1 : +# CardType : 8242XSQ +# CardDescription : 8242XSQ +# CardSerial# : +# CardPart# : +# CardAssemblyDate : +# CardHWRevision : +# CardHWConfig : +# AdminStatus : up +# OperStatus : up + +# Slot 2 : +# CardType : 8242XSQ +# CardDescription : 8242XSQ +# CardSerial# : +# CardPart# : +# CardAssemblyDate : +# CardHWRevision : +# CardHWConfig : +# AdminStatus : up +# OperStatus : up + +# +#!end +# +config terminal + +# +# BOOT CONFIGURATION +# + +boot config flags block-snmp +boot config flags sshd +# end boot flags + +# +# CLI CONFIGURATION +# + +cli timeout 3600 +password password-history 3 + +# +# SYSTEM CONFIGURATION +# + + +# +# LOG CONFIGURATION +# + + +# +# LINK-FLAP-DETECT CONFIGURATION +# + + +# +# IEEE VLAN AGING CONFIGURATION +# + + +# +# ACCESS-POLICY CONFIGURATION +# + +# +# SSH CONFIGURATION +# + +ssh keyboard-interactive-auth + + + +ssh secure + +# +# ASG CONFIGURATION +# + + +# +# MCAST SOFTWARE FORWARDING CONFIGURATION +# + + +# +# MCAST SMLT CONFIGURATION +# + + +# +# SNMP V3 GLOBAL CONFIGURATION +# + + +# +# SNMP V3 GROUP MEMBERSHIP CONFIGURATION +# + + +# +# SNMP V3 NOTIFY FILTER CONFIGURATION +# + + +# +# SNMP V3 MIB VIEW CONFIGURATION +# + + +# +# SNMP V3 GROUP CONFIGURATION +# + + +# +# SNMP V3 TARGET ADDRESS CONFIGURATION +# + + +# +# DDI CONFIGURATION +# + + +# +# SLOT CONFIGURATION +# + + +# +# MAC AGING CONFIGURATION +# + + +# +# SMTP CONFIGURATION +# + + +# +# WEB CONFIGURATION +# + +web-server enable + + +# +# GLOBAL FDB FILTER CONFIGURATION +# + + + + +# +# QOS CONFIGURATION - PHASE I +# + + +# +# LACP CONFIGURATION +# + + +# +# VRF CONFIGURATION +# + +ip vrf dmz vrfid 1 + +# +# MAINTENANCE-DOMAIN CONFIGURATION +# + + +# +# MAINTENANCE-ASSOCIATION CONFIGURATION +# + + +# +# MAINTENANCE-ENDPOINT CONFIGURATION +# + + +# +# PORT CHANNELIZE CONFIGURATION +# + + +# +# PORT CONFIGURATION - PHASE I +# + + +# +# ISIS SPBM CONFIGURATION +# + + +# +# SPB-PIM-GW CONFIGURATION +# + + +# +# MLT CONFIGURATION +# + + +# +# IP PREFIX LIST CONFIGURATION - GlobalRouter +# + + +# +# IP PREFIX LIST CONFIGURATION - VRF +# + + +# +# IPv6 PREFIX LIST CONFIGURATION - GlobalRouter +# + + +# +# RMON CONFIGURATION +# + + +# +# DVR CONFIGURATION +# + + +# +# VLAN CONFIGURATION +# + +interface Vlan 1 +ip address 10.10.10.10 255.255.255.0 0 +ipv6 interface mac-offset 0 +ipv6 interface address 2001:0:0:0:0:0:0:1/64 +ipv6 interface address 2002:0:0:0:0:0:0:1/64 + +exit +vlan create 3 type port-mstprstp 0 + +# +# MSTP CONFIGURATION +# + + +# +# NLS CONFIGURATION +# + + +# +# FHS CONFIGURATION +# + + +# +# MAC ACL CONFIGURATION +# + + +# +# IPv6 FHS ACL CONFIGURATION +# + + +# +# RA-GUARD CONFIGURATION +# + + +# +# DHCP-GUARD CONFIGURATION +# + + +# +# FHS SNOOPING CONFIGURATION +# + + +# +# SFLOW CONFIGURATION +# + + +# +# DHCP SNOOPING CONFIGURATION +# + + +# +# DHCP SNOOPING BINDING CONFIGURATION +# + + +# +# LINK-STATE TRACKING +# + + +# +# VIRTUAL IST CONFIGURATION +# + + +# +# MLT INTERFACE CONFIGURATION +# + + +# +# PORT CONFIGURATION - PHASE II +# + +interface mgmtEthernet mgmt +auto-negotiate +ip address 192.168.8.10 255.255.255.0 + +exit +interface GigabitEthernet 1/1 +name "serverA" +exit + +# +# IP CONFIGURATION +# + + +# +# IP AS LIST CONFIGURATION - GlobalRouter +# + + +# +# IP AS LIST CONFIGURATION - VRF +# + + +# +# IP COMMUNITY LIST CONFIGURATION - GlobalRouter +# + + +# +# IP COMMUNITY LIST CONFIGURATION - VRF +# + + +# +# IP EXTENDED COMMUNITY LIST CONFIGURATION - GlobalRouter +# + + +# +# IP EXTENDED COMMUNITY LIST CONFIGURATION - VRF +# + + +# +# IP ROUTE MAP CONFIGURATION - GlobalRouter +# + + +# +# IP ROUTE MAP CONFIGURATION - VRF +# + + +# +# IP CONFIGURATION - GlobalRouter +# + + +# +# IP CONFIGURATION - VRF +# + + +# +# CIRCUITLESS IP INTERFACE CONFIGURATION - GlobalRouter +# + +interface loopback 1 +ip address 1 1.1.1.1/255.255.255.255 +exit + +# +# CIRCUITLESS IP INTERFACE CONFIGURATION - VRF +# + +interface loopback 2 +ip address 2 4.4.4.4/255.255.255.255 vrf dmz +exit + +# +# TOPOLOGY-CLIP-IP +# + + +# +# MSDP CONFIGURATION - GlobalRouter +# + + + + +# +# CIRCUITLESS IPV6 INTERFACE CONFIGURATION - GlobalRouter +# + +interface loopback 1 +ipv6 interface address 2011:0:0:0:0:0:0:1/128 +exit + +# +# CIRCUITLESS IPV6 INTERFACE CONFIGURATION - VRF +# + + +# +# VRRP CONFIGURATION - GlobalRouter +# + + +# +# VRRP CONFIGURATION - VRF +# + + +# +# UDP FORWARDING CONFIGURATION - GlobalRouter +# + + +# +# UDP FORWARDING CONFIGURATION - VRF +# + + +# +# UDP FORWARDING VLAN CONFIGURATION +# + + +# +# DHCP CONFIGURATION - GlobalRouter +# + + +# +# DHCP CONFIGURATION - VRF +# + + +# +# RIP CONFIGURATION - GlobalRouter +# + + +# +# RIP CONFIGURATION - VRF +# + + +# +# RIP VLAN CONFIGURATION +# + + +# +# IGMP CONFIGURATION - GlobalRouter +# + + +# +# IGMP CONFIGURATION - VRF +# + + +# +# MROUTE CONFIGURATION +# + + +# +# MCAST RESOURCE USAGE CONFIGURATION - GlobalRouter +# + + +# +# MCAST RESOURCE USAGE CONFIGURATION - VRF +# + + +# +# TIMED PRUNE CONFIGURATION - GlobalRouter +# + + +# +# TIMED PRUNE CONFIGURATION - VRF +# + + +# +# RSMLT CONFIGURATION +# + + +# +# IPV6 CONFIGURATION - GlobalRouter +# + + +# +# IPV6 CONFIGURATION - VRF +# + + +# +# MLD CONFIGURATION - GlobalRouter +# + + +# +# MROUTE6 CONFIGURATION +# + + +# +# ISIS CONFIGURATION +# + + +# +# VTEP CONFIGURATION +# + + +# +# REMOTE VTEP CONFIGURATIONS +# + + +# +# VLAN NODAL MEP/MIP CONFIGURATION +# + + +# +# QOS CONFIGURATION - PHASE II +# + +qos queue-profile 1 member add 1/1-1/42,2/1-2/42 + +# +# CFM CONFIGURATION - PHASE II +# + + +# +# DIAG CONFIGURATION +# + + +# +# NTP CONFIGURATION +# + +no ntp + +# +# OSPF CONFIGURATION - GlobalRouter +# + +router ospf +exit + +# +# OSPF CONFIGURATION - VRF +# + + +# +# OSPF ACCEPT CONFIGURATION - GlobalRouter +# + + +# +# OSPF ACCEPT CONFIGURATION - VRF +# + + +# +# BGP CONFIGURATION - GlobalRouter +# + + +# +# BGP CONFIGURATION - VRF +# + + +# +# ISIS SPBM IPVPN CONFIGURATION +# + +# +# IP ISID LIST CONFIGURATION - GlobalRouter +# + + +# +# IP ISID LIST CONFIGURATION - VRF +# + + +# +# ISIS ACCEPT CONFIGURATION - GlobalRouter +# + + +# +# ISIS ACCEPT CONFIGURATION - VRF +# + + +# +# IP REDISTRIBUTION CONFIGURATION - GlobalRouter +# + + +# +# IP REDISTRIBUTION CONFIGURATION - VRF +# + + +# +# OSPF VLAN CONFIGURATION +# + + +# +# OSPF PORT CONFIGURATION +# + + +# +# OSPF LOOPBACK CONFIGURATION +# + + +# +# RIP PORT CONFIGURATION +# + + +# +# IPVPN CONFIGURATION +# + +# +# SLPP CONFIGURATION +# + + +# +# FILTER CONFIGURATION +# + + +# +# IPV6 TUNNEL CONFIGURATION +# + + +# +# IPV6 OSPFV3 CONFIGURATION +# + +router ospf + +exit + +# +# IPV6 RIPng CONFIGURATION +# + +router rip +exit + +# +# IPV6 STATIC ROUTE CONFIGURATION - GlobalRouter +# + + +# +# IPV6 STATIC ROUTE CONFIGURATION - VRF +# + +# +# IPV6 MGMT INTERFACE CONFIGURATION +# + + +# +# IPV6 OSPF VLAN CONFIGURATION +# + + +# +# IPV6 OSPF PORT CONFIGURATION +# + + +# +# IPV6 RIP VLAN CONFIGURATION +# + + +# +# IPV6 RIP PORT CONFIGURATION +# + + +# +# IPV6 VRRP VLAN CONFIGURATION +# + + +# +# IPV6 VRRP PORT CONFIGURATION +# + + +# +# IPV6 NEIGHBOR CONFIGURATION - GlobalRouter +# + + +# +# IPV6 NEIGHBOR CONFIGURATION - VRF +# + + +# +# IPV6 DHCP CONFIGURATION - GlobalRouter +# + + + +# +# IPV6 DHCP CONFIGURATION - VRF +# + + +# +# I-SID CONFIGURATION +# + + +# +# VNID CONFIGURATION +# + + + + +# +# RADIUS CONFIGURATION +# + + +# +# TACACS CONFIGURATION +# + + +# +# LLDP CONFIGURATION +# + + +# +# EAP CONFIGURATION +# + + +# +# MACSEC CONFIGURATION +# + + +# +# FABRIC ATTACH CONFIGURATION +# + + +# +# SPB-PIM-GW CONFIGURATION +# + + +# +# SOFTWARE CONFIGURATION +# + + +# +# APPLICATION CONFIGURATION +# + + +# +# OVSDB CONFIGURATION +# + + + + + + +# +# IPSEC CONFIGURATION +# + + +# +# IPSEC POLICY TABLE CONFIGURATION +# + + +# +# IPSEC SA TABLE CONFIGURATION +# + + +# +# IPSEC SA POLICY LINK TABLE CONFIGURATION +# + + +# +# IPV6 OSPFV3 IPSEC CONFIGURATION +# + + +# +# IPV6 IPSEC INTERFACE CONFIGURATION +# + + +# +# IP IPSEC INTERFACE CONFIGURATION +# + + + + + + +# +# IKE CONFIGURATION +# + + + + +# +# IP REDISTRIBUTE APPLY CONFIGURATIONS + +# +# + + +# +# IP ECMP APPLY CONFIGURATIONS + + + + +end + + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_facts_show_sys-info b/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_facts_show_sys-info new file mode 100644 index 000000000..6e7099c2b --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/voss_fixtures/voss_facts_show_sys-info @@ -0,0 +1,107 @@ +General Info : + + SysDescr : VSP-4450GSX-PWR+ (7.0.0.0_B015) + SysName : VSP-4450GSX-PWR+ + SysUpTime : 5 day(s), 17:13:09 + SysContact : http://www.extremenetworks.com/contact/ + SysLocation : + +Chassis Info: + + Chassis : 4450GSX-PWR+ + ModelName : 4450GSX-PWR+ + BrandName : Extreme Networks. + Serial# : 14JP512E0001 + H/W Revision : 01 + H/W Config : none + Part Number : + NumSlots : 1 + NumPorts : 50 + BaseMacAddr : b4:47:5e:00:00:00 + MacAddrCapacity : 256 + System MTU : 1950 + +Card Info : + + Slot# CardType Serial# Part# Oper Admin Power + Status Status State + 1 4450GSX-PWR+ 14JP512E0001 -- up up on + +Temperature Info : + + Chassis Temperature + 30 + + +Power Supply Info : + + Ps#1 Status : UP + Ps#1 Type : AC + Ps#1 Description : AC-DC-54V-1000W + Ps#1 Serial Number: LBNNTMPL20180R + Ps#1 Version : -- + Ps#1 Part Number : 325220-A.01 + + Ps#2 Status : empty + + Total Power Available : 1000 watts + Total Power Usage : 127 watts + +Fan Info : + + Description OperStatus OperSpeed AirflowDir + Tray 1 Fan 1 up mediumSpeed left-right + Tray 1 Fan 2 up mediumSpeed left-right + Tray 1 Fan 3 up mediumSpeed left-right + +LED Info : + + LED#1 Label : PWR + LED#1 Status : GreenSteady + + LED#2 Label : Status + LED#2 Status : GreenSteady + + LED#3 Label : Rps + LED#3 Status : Off + + LED#4 Label : Up + LED#4 Status : UnSupported + + LED#5 Label : Down + LED#5 Status : UnSupported + + LED#6 Label : Base + LED#6 Status : UnSupported + +System Error Info : + + Send Login Success Trap : false + Send Authentication Trap : false + Error Code : 0 + Error Severity : 0 + +Port Lock Info : + + Status : off + LockedPorts : + +Message Control Info : + + Action : suppress-msg + Control-Interval : 5 + Max-msg-num : 5 + Status : disable + + +Configuration Operation Info Since Boot Up: + Last Change: 0 day(s), 08:31:10 (5 day(s), 08:41:59 ago) + Last Vlan Change: 0 day(s), 08:27:35 (5 day(s), 08:45:34 ago) +Last Statistic Reset: 5 day(s), 16:56:45 (0 day(s), 00:16:24 ago) + +Current Uboot Info : +---------------------------------------------------------------------------------------------------- + + VU-Boot 2012.04-00002-g6fb1c26 (Apr 26 2017 - 13:37:44) bld=17042617 + + diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/voss_module.py b/ansible_collections/community/network/tests/unit/plugins/modules/voss_module.py new file mode 100644 index 000000000..d89699916 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/voss_module.py @@ -0,0 +1,88 @@ +# (c) 2016 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os +import json + +from ansible_collections.community.network.tests.unit.plugins.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase + + +fixture_path = os.path.join(os.path.dirname(__file__), 'voss_fixtures') +fixture_data = {} + + +def load_fixture(name): + path = os.path.join(fixture_path, name) + + if path in fixture_data: + return fixture_data[path] + + with open(path) as f: + data = f.read() + + try: + data = json.loads(data) + except Exception: + pass + + fixture_data[path] = data + return data + + +class TestVossModule(ModuleTestCase): + + def execute_module(self, failed=False, changed=False, commands=None, sort=True, defaults=False): + + self.load_fixtures(commands) + + if failed: + result = self.failed() + self.assertTrue(result['failed'], result) + else: + result = self.changed(changed) + self.assertEqual(result['changed'], changed, result) + + if commands is not None: + if sort: + self.assertEqual(sorted(commands), sorted(result['commands']), result['commands']) + else: + self.assertEqual(commands, result['commands'], result['commands']) + + return result + + def failed(self): + with self.assertRaises(AnsibleFailJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertTrue(result['failed'], result) + return result + + def changed(self, changed=False): + with self.assertRaises(AnsibleExitJson) as exc: + self.module.main() + + result = exc.exception.args[0] + self.assertEqual(result['changed'], changed, result) + return result + + def load_fixtures(self, commands=None): + pass diff --git a/ansible_collections/community/network/tests/unit/plugins/modules/wt.zip b/ansible_collections/community/network/tests/unit/plugins/modules/wt.zip new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/modules/wt.zip diff --git a/ansible_collections/community/network/tests/unit/plugins/terminal/__init__.py b/ansible_collections/community/network/tests/unit/plugins/terminal/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/terminal/__init__.py diff --git a/ansible_collections/community/network/tests/unit/plugins/terminal/test_slxos.py b/ansible_collections/community/network/tests/unit/plugins/terminal/test_slxos.py new file mode 100644 index 000000000..f0cfff022 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/terminal/test_slxos.py @@ -0,0 +1,53 @@ +# +# (c) 2018 Extreme Networks Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from mock import MagicMock + +from ansible_collections.community.network.tests.unit.compat import unittest +from ansible_collections.community.network.plugins.terminal import slxos +from ansible.errors import AnsibleConnectionFailure + + +class TestPluginTerminalSLXOS(unittest.TestCase): + """ Test class for SLX-OS Terminal Module + """ + def setUp(self): + self._mock_connection = MagicMock() + self._terminal = slxos.TerminalModule(self._mock_connection) + + def test_on_open_shell(self): + """ Test on_open_shell + """ + self._mock_connection.exec_command.side_effect = [ + b'Looking out my window I see a brick building, and people. Cool.', + ] + self._terminal.on_open_shell() + self._mock_connection.exec_command.assert_called_with(u'terminal length 0') + + def test_on_open_shell_error(self): + """ Test on_open_shell with error + """ + self._mock_connection.exec_command.side_effect = [ + AnsibleConnectionFailure + ] + + with self.assertRaises(AnsibleConnectionFailure): + self._terminal.on_open_shell() diff --git a/ansible_collections/community/network/tests/unit/plugins/terminal/test_weos4.py b/ansible_collections/community/network/tests/unit/plugins/terminal/test_weos4.py new file mode 100644 index 000000000..10d1c00e7 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/plugins/terminal/test_weos4.py @@ -0,0 +1,37 @@ +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) +# Copyright (c) 2020 Ernst Oudhof, ernst@mailfrom.nl +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from mock import MagicMock + +from ansible_collections.community.network.tests.unit.compat import unittest +from ansible_collections.community.network.plugins.terminal import weos4 +from ansible.errors import AnsibleConnectionFailure + + +class TestPluginTerminalWEOS4(unittest.TestCase): + """ Test class for WeOS4 Terminal Module + """ + def setUp(self): + self._mock_connection = MagicMock() + self._terminal = weos4.TerminalModule(self._mock_connection) + + def test_on_open_shell(self): + """ Test on_open_shell + """ + self._mock_connection.exec_command.side_effect = [ + b'Looking out my window I see a brick building, and people. Cool.', + ] + self._terminal.on_open_shell() + self._mock_connection.exec_command.assert_called_with(u'batch') + + def test_on_open_shell_error(self): + """ Test on_open_shell with error + """ + self._mock_connection.exec_command.side_effect = [ + AnsibleConnectionFailure + ] + + with self.assertRaises(AnsibleConnectionFailure): + self._terminal.on_open_shell() diff --git a/ansible_collections/community/network/tests/unit/requirements.txt b/ansible_collections/community/network/tests/unit/requirements.txt new file mode 100644 index 000000000..51c436d08 --- /dev/null +++ b/ansible_collections/community/network/tests/unit/requirements.txt @@ -0,0 +1,8 @@ +unittest2 ; python_version <= '2.6' + +# requirements for ftd module_utils +firepower-kickstart ; python_version >= '3.6' and python_version < '3.9' # Python 3.6+ only; dependency does not work with 3.9 yet + +# requirements for Nuage modules - CURRENTLY BROKEN! +# vspk +# bambou diff --git a/ansible_collections/community/network/tests/utils/constraints.txt b/ansible_collections/community/network/tests/utils/constraints.txt new file mode 100644 index 000000000..b476b7c6c --- /dev/null +++ b/ansible_collections/community/network/tests/utils/constraints.txt @@ -0,0 +1,50 @@ +coverage >= 4.2, < 5.0.0, != 4.3.2 ; python_version <= '3.7' # features in 4.2+ required, avoid known bug in 4.3.2 on python 2.6, coverage 5.0+ incompatible +coverage >= 4.5.4, < 5.0.0 ; python_version > '3.7' # coverage had a bug in < 4.5.4 that would cause unit tests to hang in Python 3.8, coverage 5.0+ incompatible +cryptography < 2.2 ; python_version < '2.7' # cryptography 2.2 drops support for python 2.6 +deepdiff < 4.0.0 ; python_version < '3' # deepdiff 4.0.0 and later require python 3 +jinja2 < 2.11 ; python_version < '2.7' # jinja2 2.11 and later require python 2.7 or later +urllib3 < 1.24 ; python_version < '2.7' # urllib3 1.24 and later require python 2.7 or later +pywinrm >= 0.3.0 # message encryption support +sphinx < 1.6 ; python_version < '2.7' # sphinx 1.6 and later require python 2.7 or later +sphinx < 1.8 ; python_version >= '2.7' # sphinx 1.8 and later are currently incompatible with rstcheck 3.3 +pygments >= 2.4.0 # Pygments 2.4.0 includes bugfixes for YAML and YAML+Jinja lexers +wheel < 0.30.0 ; python_version < '2.7' # wheel 0.30.0 and later require python 2.7 or later +yamllint != 1.8.0, < 1.14.0 ; python_version < '2.7' # yamllint 1.8.0 and 1.14.0+ require python 2.7+ +pycrypto >= 2.6 # Need features found in 2.6 and greater +ncclient >= 0.5.2 # Need features added in 0.5.2 and greater +idna < 2.6, >= 2.5 # linode requires idna < 2.9, >= 2.5, requests requires idna < 2.6, but cryptography will cause the latest version to be installed instead +paramiko < 2.4.0 ; python_version < '2.7' # paramiko 2.4.0 drops support for python 2.6 +pytest < 3.3.0 ; python_version < '2.7' # pytest 3.3.0 drops support for python 2.6 +pytest < 5.0.0 ; python_version == '2.7' # pytest 5.0.0 and later will no longer support python 2.7 +pytest-forked < 1.0.2 ; python_version < '2.7' # pytest-forked 1.0.2 and later require python 2.7 or later +pytest-forked >= 1.0.2 ; python_version >= '2.7' # pytest-forked before 1.0.2 does not work with pytest 4.2.0+ (which requires python 2.7+) +ntlm-auth >= 1.3.0 # message encryption support using cryptography +requests < 2.20.0 ; python_version < '2.7' # requests 2.20.0 drops support for python 2.6 +requests-ntlm >= 1.1.0 # message encryption support +requests-credssp >= 0.1.0 # message encryption support +voluptuous >= 0.11.0 # Schema recursion via Self +openshift >= 0.6.2, < 0.9.0 # merge_type support +virtualenv < 16.0.0 ; python_version < '2.7' # virtualenv 16.0.0 and later require python 2.7 or later +pathspec < 0.6.0 ; python_version < '2.7' # pathspec 0.6.0 and later require python 2.7 or later +pyopenssl < 18.0.0 ; python_version < '2.7' # pyOpenSSL 18.0.0 and later require python 2.7 or later +pyyaml < 5.1 ; python_version < '2.7' # pyyaml 5.1 and later require python 2.7 or later +pycparser < 2.19 ; python_version < '2.7' # pycparser 2.19 and later require python 2.7 or later +mock >= 2.0.0 # needed for features backported from Python 3.6 unittest.mock (assert_called, assert_called_once...) +pytest-mock >= 1.4.0 # needed for mock_use_standalone_module pytest option +xmltodict < 0.12.0 ; python_version < '2.7' # xmltodict 0.12.0 and later require python 2.7 or later +lxml < 4.3.0 ; python_version < '2.7' # lxml 4.3.0 and later require python 2.7 or later +pyvmomi < 6.0.0 ; python_version < '2.7' # pyvmomi 6.0.0 and later require python 2.7 or later +pyone == 1.1.9 # newer versions do not pass current integration tests +boto3 < 1.11 ; python_version < '2.7' # boto3 1.11 drops Python 2.6 support +botocore >= 1.10.0, < 1.14 ; python_version < '2.7' # adds support for the following AWS services: secretsmanager, fms, and acm-pca; botocore 1.14 drops Python 2.6 support +botocore >= 1.10.0 ; python_version >= '2.7' # adds support for the following AWS services: secretsmanager, fms, and acm-pca +setuptools < 45 ; python_version <= '2.7' # setuptools 45 and later require python 3.5 or later + +# freeze pylint and its requirements for consistent test results +astroid == 2.2.5 +isort == 4.3.15 +lazy-object-proxy == 1.3.1 +mccabe == 0.6.1 +pylint == 2.3.1 +typed-ast == 1.4.0 # 1.4.0 is required to compile on Python 3.8 +wrapt == 1.11.1 diff --git a/ansible_collections/community/network/tests/utils/requirements.txt b/ansible_collections/community/network/tests/utils/requirements.txt new file mode 100644 index 000000000..62c7e2aa4 --- /dev/null +++ b/ansible_collections/community/network/tests/utils/requirements.txt @@ -0,0 +1,39 @@ +boto3 +placebo +pycrypto +passlib +pypsrp +python-memcached +pytz +pyvmomi +redis +requests +setuptools > 0.6 # pytest-xdist installed via requirements does not work with very old setuptools (sanity_ok) +unittest2 ; python_version < '2.7' +importlib ; python_version < '2.7' +netaddr +ipaddress +netapp-lib +solidfire-sdk-python + +# requirements for F5 specific modules +f5-sdk ; python_version >= '2.7' +f5-icontrol-rest ; python_version >= '2.7' +deepdiff + +# requirement for aci_rest module +xmljson + +# requirement for winrm connection plugin tests +pexpect + +# requirement for the linode module +linode-python # APIv3 +linode_api4 ; python_version > '2.6' # APIv4 + +# requirement for the gitlab module +python-gitlab +httmock + +# requirment for kubevirt modules +openshift ; python_version >= '2.7' diff --git a/ansible_collections/community/network/tests/utils/shippable/cloud.sh b/ansible_collections/community/network/tests/utils/shippable/cloud.sh new file mode 100755 index 000000000..d76c32282 --- /dev/null +++ b/ansible_collections/community/network/tests/utils/shippable/cloud.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +set -o pipefail -eux + +declare -a args +IFS='/:' read -ra args <<< "$1" + +cloud="${args[0]}" +python="${args[1]}" +group="${args[2]}" + +target="shippable/${cloud}/group${group}/" + +stage="${S:-prod}" + +# shellcheck disable=SC2086 +ansible-test integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \ + --remote-terminate always --remote-stage "${stage}" \ + --docker --python "${python}" diff --git a/ansible_collections/community/network/tests/utils/shippable/collection_versions_page_size-2.10.patch b/ansible_collections/community/network/tests/utils/shippable/collection_versions_page_size-2.10.patch new file mode 100644 index 000000000..f07a433e4 --- /dev/null +++ b/ansible_collections/community/network/tests/utils/shippable/collection_versions_page_size-2.10.patch @@ -0,0 +1,11 @@ +--- before/lib/ansible/galaxy/api.py ++++ after/lib/ansible/galaxy/api.py +@@ -554,7 +554,7 @@ + results_key = 'results' + pagination_path = ['next'] + +- n_url = _urljoin(self.api_server, api_path, 'collections', namespace, name, 'versions', '/') ++ n_url = _urljoin(self.api_server, api_path, 'collections', namespace, name, 'versions', '?page_size=100') + + error_context_msg = 'Error when getting available collection versions for %s.%s from %s (%s)' \ + % (namespace, name, self.name, self.api_server) diff --git a/ansible_collections/community/network/tests/utils/shippable/collection_versions_page_size-2.11.patch b/ansible_collections/community/network/tests/utils/shippable/collection_versions_page_size-2.11.patch new file mode 100644 index 000000000..276b7f787 --- /dev/null +++ b/ansible_collections/community/network/tests/utils/shippable/collection_versions_page_size-2.11.patch @@ -0,0 +1,37 @@ +--- before/lib/ansible/galaxy/api.py ++++ after/lib/ansible/galaxy/api.py +@@ -21,7 +21,7 @@ + from ansible.galaxy.user_agent import user_agent + from ansible.module_utils.six import string_types + from ansible.module_utils.six.moves.urllib.error import HTTPError +-from ansible.module_utils.six.moves.urllib.parse import quote as urlquote, urlencode, urlparse ++from ansible.module_utils.six.moves.urllib.parse import quote as urlquote, urlencode, urlparse, parse_qs + from ansible.module_utils._text import to_bytes, to_native, to_text + from ansible.module_utils.urls import open_url, prepare_multipart + from ansible.utils.display import Display +@@ -312,6 +312,7 @@ + def _call_galaxy(self, url, args=None, headers=None, method=None, auth_required=False, error_context_msg=None, + cache=False): + url_info = urlparse(url) ++ query = parse_qs(url_info.query) + cache_id = get_cache_id(url) + if cache and self._cache: + server_cache = self._cache.setdefault(cache_id, {}) +@@ -342,7 +343,7 @@ + + return res + +- elif not url_info.query: ++ elif 'page' not in query: + # The cache entry had expired or does not exist, start a new blank entry to be filled later. + expires = datetime.datetime.utcnow() + expires += datetime.timedelta(days=1) +@@ -781,7 +782,7 @@ + api_path = self.available_api_versions['v2'] + pagination_path = ['next'] + +- versions_url = _urljoin(self.api_server, api_path, 'collections', namespace, name, 'versions', '/') ++ versions_url = _urljoin(self.api_server, api_path, 'collections', namespace, name, 'versions', '?page_size=100') + versions_url_info = urlparse(versions_url) + + # We should only rely on the cache if the collection has not changed. This may slow things down but it ensures diff --git a/ansible_collections/community/network/tests/utils/shippable/collection_versions_page_size-2.9.patch b/ansible_collections/community/network/tests/utils/shippable/collection_versions_page_size-2.9.patch new file mode 100644 index 000000000..f07a433e4 --- /dev/null +++ b/ansible_collections/community/network/tests/utils/shippable/collection_versions_page_size-2.9.patch @@ -0,0 +1,11 @@ +--- before/lib/ansible/galaxy/api.py ++++ after/lib/ansible/galaxy/api.py +@@ -554,7 +554,7 @@ + results_key = 'results' + pagination_path = ['next'] + +- n_url = _urljoin(self.api_server, api_path, 'collections', namespace, name, 'versions', '/') ++ n_url = _urljoin(self.api_server, api_path, 'collections', namespace, name, 'versions', '?page_size=100') + + error_context_msg = 'Error when getting available collection versions for %s.%s from %s (%s)' \ + % (namespace, name, self.name, self.api_server) diff --git a/ansible_collections/community/network/tests/utils/shippable/collection_versions_page_size-devel.patch b/ansible_collections/community/network/tests/utils/shippable/collection_versions_page_size-devel.patch new file mode 100644 index 000000000..276b7f787 --- /dev/null +++ b/ansible_collections/community/network/tests/utils/shippable/collection_versions_page_size-devel.patch @@ -0,0 +1,37 @@ +--- before/lib/ansible/galaxy/api.py ++++ after/lib/ansible/galaxy/api.py +@@ -21,7 +21,7 @@ + from ansible.galaxy.user_agent import user_agent + from ansible.module_utils.six import string_types + from ansible.module_utils.six.moves.urllib.error import HTTPError +-from ansible.module_utils.six.moves.urllib.parse import quote as urlquote, urlencode, urlparse ++from ansible.module_utils.six.moves.urllib.parse import quote as urlquote, urlencode, urlparse, parse_qs + from ansible.module_utils._text import to_bytes, to_native, to_text + from ansible.module_utils.urls import open_url, prepare_multipart + from ansible.utils.display import Display +@@ -312,6 +312,7 @@ + def _call_galaxy(self, url, args=None, headers=None, method=None, auth_required=False, error_context_msg=None, + cache=False): + url_info = urlparse(url) ++ query = parse_qs(url_info.query) + cache_id = get_cache_id(url) + if cache and self._cache: + server_cache = self._cache.setdefault(cache_id, {}) +@@ -342,7 +343,7 @@ + + return res + +- elif not url_info.query: ++ elif 'page' not in query: + # The cache entry had expired or does not exist, start a new blank entry to be filled later. + expires = datetime.datetime.utcnow() + expires += datetime.timedelta(days=1) +@@ -781,7 +782,7 @@ + api_path = self.available_api_versions['v2'] + pagination_path = ['next'] + +- versions_url = _urljoin(self.api_server, api_path, 'collections', namespace, name, 'versions', '/') ++ versions_url = _urljoin(self.api_server, api_path, 'collections', namespace, name, 'versions', '?page_size=100') + versions_url_info = urlparse(versions_url) + + # We should only rely on the cache if the collection has not changed. This may slow things down but it ensures diff --git a/ansible_collections/community/network/tests/utils/shippable/freebsd.sh b/ansible_collections/community/network/tests/utils/shippable/freebsd.sh new file mode 100755 index 000000000..cd3014cca --- /dev/null +++ b/ansible_collections/community/network/tests/utils/shippable/freebsd.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +set -o pipefail -eux + +declare -a args +IFS='/:' read -ra args <<< "$1" + +platform="${args[0]}" +version="${args[1]}" + +if [ "${#args[@]}" -gt 2 ]; then + target="shippable/posix/group${args[2]}/" +else + target="shippable/posix/" +fi + +stage="${S:-prod}" +provider="${P:-default}" + +# shellcheck disable=SC2086 +ansible-test integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \ + --remote "${platform}/${version}" --remote-terminate always --remote-stage "${stage}" --remote-provider "${provider}" diff --git a/ansible_collections/community/network/tests/utils/shippable/linux.sh b/ansible_collections/community/network/tests/utils/shippable/linux.sh new file mode 100755 index 000000000..9cc2f966c --- /dev/null +++ b/ansible_collections/community/network/tests/utils/shippable/linux.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +set -o pipefail -eux + +declare -a args +IFS='/:' read -ra args <<< "$1" + +image="${args[1]}" + +if [ "${#args[@]}" -gt 2 ]; then + target="shippable/posix/group${args[2]}/" +else + target="shippable/posix/" +fi + +# shellcheck disable=SC2086 +ansible-test integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \ + --docker "${image}" diff --git a/ansible_collections/community/network/tests/utils/shippable/macos.sh b/ansible_collections/community/network/tests/utils/shippable/macos.sh new file mode 100755 index 000000000..cd3014cca --- /dev/null +++ b/ansible_collections/community/network/tests/utils/shippable/macos.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +set -o pipefail -eux + +declare -a args +IFS='/:' read -ra args <<< "$1" + +platform="${args[0]}" +version="${args[1]}" + +if [ "${#args[@]}" -gt 2 ]; then + target="shippable/posix/group${args[2]}/" +else + target="shippable/posix/" +fi + +stage="${S:-prod}" +provider="${P:-default}" + +# shellcheck disable=SC2086 +ansible-test integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \ + --remote "${platform}/${version}" --remote-terminate always --remote-stage "${stage}" --remote-provider "${provider}" diff --git a/ansible_collections/community/network/tests/utils/shippable/osx.sh b/ansible_collections/community/network/tests/utils/shippable/osx.sh new file mode 100755 index 000000000..cd3014cca --- /dev/null +++ b/ansible_collections/community/network/tests/utils/shippable/osx.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +set -o pipefail -eux + +declare -a args +IFS='/:' read -ra args <<< "$1" + +platform="${args[0]}" +version="${args[1]}" + +if [ "${#args[@]}" -gt 2 ]; then + target="shippable/posix/group${args[2]}/" +else + target="shippable/posix/" +fi + +stage="${S:-prod}" +provider="${P:-default}" + +# shellcheck disable=SC2086 +ansible-test integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \ + --remote "${platform}/${version}" --remote-terminate always --remote-stage "${stage}" --remote-provider "${provider}" diff --git a/ansible_collections/community/network/tests/utils/shippable/remote.sh b/ansible_collections/community/network/tests/utils/shippable/remote.sh new file mode 100755 index 000000000..cd3014cca --- /dev/null +++ b/ansible_collections/community/network/tests/utils/shippable/remote.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +set -o pipefail -eux + +declare -a args +IFS='/:' read -ra args <<< "$1" + +platform="${args[0]}" +version="${args[1]}" + +if [ "${#args[@]}" -gt 2 ]; then + target="shippable/posix/group${args[2]}/" +else + target="shippable/posix/" +fi + +stage="${S:-prod}" +provider="${P:-default}" + +# shellcheck disable=SC2086 +ansible-test integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \ + --remote "${platform}/${version}" --remote-terminate always --remote-stage "${stage}" --remote-provider "${provider}" diff --git a/ansible_collections/community/network/tests/utils/shippable/rhel.sh b/ansible_collections/community/network/tests/utils/shippable/rhel.sh new file mode 100755 index 000000000..cd3014cca --- /dev/null +++ b/ansible_collections/community/network/tests/utils/shippable/rhel.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +set -o pipefail -eux + +declare -a args +IFS='/:' read -ra args <<< "$1" + +platform="${args[0]}" +version="${args[1]}" + +if [ "${#args[@]}" -gt 2 ]; then + target="shippable/posix/group${args[2]}/" +else + target="shippable/posix/" +fi + +stage="${S:-prod}" +provider="${P:-default}" + +# shellcheck disable=SC2086 +ansible-test integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \ + --remote "${platform}/${version}" --remote-terminate always --remote-stage "${stage}" --remote-provider "${provider}" diff --git a/ansible_collections/community/network/tests/utils/shippable/sanity.sh b/ansible_collections/community/network/tests/utils/shippable/sanity.sh new file mode 100755 index 000000000..9da9a2d7f --- /dev/null +++ b/ansible_collections/community/network/tests/utils/shippable/sanity.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env bash + +set -o pipefail -eux + +declare -a args +IFS='/:' read -ra args <<< "$1" + +group="${args[1]}" + +if [ "${BASE_BRANCH:-}" ]; then + base_branch="origin/${BASE_BRANCH}" +else + base_branch="" +fi + +if [ "${group}" == "extra" ]; then + pip install junit-xml --disable-pip-version-check + + # ansible-galaxy -vvv collection install community.internal_test_tools + git clone --single-branch --depth 1 https://github.com/ansible-collections/community.internal_test_tools.git ../internal_test_tools + + ../internal_test_tools/tools/run.py --color --bot --junit + exit +fi + +case "${group}" in + 1) options=(--skip-test pylint --skip-test ansible-doc --skip-test validate-modules) ;; + 2) options=( --test ansible-doc ) ;; + 3) options=( --test validate-modules) ;; + 4) options=(--test pylint --exclude tests/unit/ --exclude plugins/module_utils/) ;; + 5) options=(--test pylint tests/unit/ plugins/module_utils/) ;; +esac + +# allow collection migration sanity tests for groups 3 and 4 to pass without updating this script during migration +network_path="lib/ansible/modules/network/" + +if [ -d "${network_path}" ]; then + if [ "${group}" -eq 3 ]; then + options+=(--exclude "${network_path}") + elif [ "${group}" -eq 4 ]; then + options+=("${network_path}") + fi +fi + +# shellcheck disable=SC2086 +ansible-test sanity --color -v --junit ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} \ + --docker --base-branch "${base_branch}" \ + "${options[@]}" --allow-disabled diff --git a/ansible_collections/community/network/tests/utils/shippable/shippable.sh b/ansible_collections/community/network/tests/utils/shippable/shippable.sh new file mode 100755 index 000000000..ad0bf940d --- /dev/null +++ b/ansible_collections/community/network/tests/utils/shippable/shippable.sh @@ -0,0 +1,216 @@ +#!/usr/bin/env bash + +set -o pipefail -eux + +declare -a args +IFS='/:' read -ra args <<< "$1" + +ansible_version="${args[0]}" +script="${args[1]}" + +function join { + local IFS="$1"; + shift; + echo "$*"; +} + +# Ensure we can write other collections to this dir +sudo chown "$(whoami)" "${PWD}/../../" + +test="$(join / "${args[@]:1}")" + +docker images ansible/ansible +docker images quay.io/ansible/* +docker ps + +for container in $(docker ps --format '{{.Image}} {{.ID}}' | grep -v -e '^drydock/' -e '^quay.io/ansible/azure-pipelines-test-container:' | sed 's/^.* //'); do + docker rm -f "${container}" || true # ignore errors +done + +docker ps + +if [ -d /home/shippable/cache/ ]; then + ls -la /home/shippable/cache/ +fi + +command -v python +python -V + +function retry +{ + # shellcheck disable=SC2034 + for repetition in 1 2 3; do + set +e + "$@" + result=$? + set -e + if [ ${result} == 0 ]; then + return ${result} + fi + echo "@* -> ${result}" + done + echo "Command '@*' failed 3 times!" + exit 1 +} + +command -v pip +pip --version +pip list --disable-pip-version-check +if [ "${ansible_version}" == "devel" ]; then + retry pip install https://github.com/ansible/ansible/archive/devel.tar.gz --disable-pip-version-check +else + retry pip install "https://github.com/ansible/ansible/archive/stable-${ansible_version}.tar.gz" --disable-pip-version-check +fi + +if [ "${SHIPPABLE_BUILD_ID:-}" ]; then + export ANSIBLE_COLLECTIONS_PATHS="${HOME}/.ansible" + SHIPPABLE_RESULT_DIR="$(pwd)/shippable" + TEST_DIR="${ANSIBLE_COLLECTIONS_PATHS}/ansible_collections/community/network" + mkdir -p "${TEST_DIR}" + cp -aT "${SHIPPABLE_BUILD_DIR}" "${TEST_DIR}" + cd "${TEST_DIR}" +else + export ANSIBLE_COLLECTIONS_PATHS="${PWD}/../../../" +fi + +# START: page_size patch +sudo apt update && sudo apt -y install patch +ANSIBLE_DIR=$(ansible --version | grep 'ansible python module location' | sed 's/^.*= //g') +patch --forward "${ANSIBLE_DIR}/galaxy/api.py" "tests/utils/shippable/collection_versions_page_size-${ansible_version}.patch" && echo "ansible_version ${ansible_version} page_size patch applied" || echo "ansible_version ${ansible_version} page_size patch NOT applied" +# END: page_size patch + +# START: HACK install dependencies +retry git clone --depth=1 --single-branch https://github.com/ansible-collections/ansible.netcommon.git "${ANSIBLE_COLLECTIONS_PATHS}/ansible_collections/ansible/netcommon" +retry git clone --depth=1 --single-branch https://github.com/ansible-collections/ansible.utils.git "${ANSIBLE_COLLECTIONS_PATHS}/ansible_collections/ansible/utils" + +# END: HACK + +export PYTHONIOENCODING='utf-8' + +if [ "${JOB_TRIGGERED_BY_NAME:-}" == "nightly-trigger" ]; then + COVERAGE=yes + COMPLETE=yes +fi + +if [ -n "${COVERAGE:-}" ]; then + # on-demand coverage reporting triggered by setting the COVERAGE environment variable to a non-empty value + export COVERAGE="--coverage" +elif [[ "${COMMIT_MESSAGE}" =~ ci_coverage ]]; then + # on-demand coverage reporting triggered by having 'ci_coverage' in the latest commit message + export COVERAGE="--coverage" +else + # on-demand coverage reporting disabled (default behavior, always-on coverage reporting remains enabled) + export COVERAGE="--coverage-check" +fi + +if [ -n "${COMPLETE:-}" ]; then + # disable change detection triggered by setting the COMPLETE environment variable to a non-empty value + export CHANGED="" +elif [[ "${COMMIT_MESSAGE}" =~ ci_complete ]]; then + # disable change detection triggered by having 'ci_complete' in the latest commit message + export CHANGED="" +else + # enable change detection (default behavior) + export CHANGED="--changed" +fi + +if [ "${IS_PULL_REQUEST:-}" == "true" ]; then + # run unstable tests which are targeted by focused changes on PRs + export UNSTABLE="--allow-unstable-changed" +else + # do not run unstable tests outside PRs + export UNSTABLE="" +fi + +# remove empty core/extras module directories from PRs created prior to the repo-merge +find plugins -type d -empty -print -delete + +function cleanup +{ + # for complete on-demand coverage generate a report for all files with no coverage on the "sanity/5" job so we only have one copy + if [ "${COVERAGE}" == "--coverage" ] && [ "${CHANGED}" == "" ] && [ "${test}" == "sanity/5" ]; then + stub="--stub" + # trigger coverage reporting for stubs even if no other coverage data exists + mkdir -p tests/output/coverage/ + else + stub="" + fi + + if [ -d tests/output/coverage/ ]; then + if find tests/output/coverage/ -mindepth 1 -name '.*' -prune -o -print -quit | grep -q .; then + process_coverage='yes' # process existing coverage files + elif [ "${stub}" ]; then + process_coverage='yes' # process coverage when stubs are enabled + else + process_coverage='' + fi + + if [ "${process_coverage}" ]; then + # use python 3.7 for coverage to avoid running out of memory during coverage xml processing + # only use it for coverage to avoid the additional overhead of setting up a virtual environment for a potential no-op job + virtualenv --python /usr/bin/python3.7 ~/ansible-venv + set +ux + . ~/ansible-venv/bin/activate + set -ux + + # shellcheck disable=SC2086 + ansible-test coverage xml --color -v --requirements --group-by command --group-by version ${stub:+"$stub"} + cp -a tests/output/reports/coverage=*.xml "$SHIPPABLE_RESULT_DIR/codecoverage/" + + if [ "${ansible_version}" != "2.9" ]; then + # analyze and capture code coverage aggregated by integration test target + ansible-test coverage analyze targets generate -v "$SHIPPABLE_RESULT_DIR/testresults/coverage-analyze-targets.json" + fi + + # upload coverage report to codecov.io only when using complete on-demand coverage + if [ "${COVERAGE}" == "--coverage" ] && [ "${CHANGED}" == "" ]; then + for file in tests/output/reports/coverage=*.xml; do + flags="${file##*/coverage=}" + flags="${flags%-powershell.xml}" + flags="${flags%.xml}" + # remove numbered component from stub files when converting to tags + flags="${flags//stub-[0-9]*/stub}" + flags="${flags//=/,}" + flags="${flags//[^a-zA-Z0-9_,]/_}" + + bash <(curl -s https://ansible-ci-files.s3.us-east-1.amazonaws.com/codecov/codecov.sh) \ + -f "${file}" \ + -F "${flags}" \ + -n "${test}" \ + -t 1b3f34da-5ed0-420e-9b65-4c8b3b50905f \ + -X coveragepy \ + -X gcov \ + -X fix \ + -X search \ + -X xcode \ + || echo "Failed to upload code coverage report to codecov.io: ${file}" + done + fi + fi + fi + + if [ -d tests/output/junit/ ]; then + cp -aT tests/output/junit/ "$SHIPPABLE_RESULT_DIR/testresults/" + fi + + if [ -d tests/output/data/ ]; then + cp -a tests/output/data/ "$SHIPPABLE_RESULT_DIR/testresults/" + fi + + if [ -d tests/output/bot/ ]; then + cp -aT tests/output/bot/ "$SHIPPABLE_RESULT_DIR/testresults/" + fi +} + +if [ "${SHIPPABLE_BUILD_ID:-}" ]; then trap cleanup EXIT; fi + +if [[ "${COVERAGE:-}" == "--coverage" ]]; then + timeout=60 +else + timeout=50 +fi + +ansible-test env --dump --show --timeout "${timeout}" --color -v + +if [ "${SHIPPABLE_BUILD_ID:-}" ]; then "tests/utils/shippable/check_matrix.py"; fi +"tests/utils/shippable/${script}.sh" "${test}" diff --git a/ansible_collections/community/network/tests/utils/shippable/units.sh b/ansible_collections/community/network/tests/utils/shippable/units.sh new file mode 100755 index 000000000..e5c1f238c --- /dev/null +++ b/ansible_collections/community/network/tests/utils/shippable/units.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash + +set -o pipefail -eux + +declare -a args +IFS='/:' read -ra args <<< "$1" + +version="${args[1]}" +group="${args[2]}" + +if [[ "${COVERAGE:-}" == "--coverage" ]]; then + timeout=90 +else + timeout=30 +fi + +group1=() + +case "${group}" in + 1) options=("${group1[@]:+${group1[@]}}") ;; +esac + +if [ ${#options[@]} -eq 0 ] && [ "${group}" -gt 1 ]; then + # allow collection migration unit tests for groups other than 1 to "pass" without updating shippable.yml or this script during migration + echo "No unit tests found for group ${group}." + exit +fi + +ansible-test env --timeout "${timeout}" --color -v + +# shellcheck disable=SC2086 +ansible-test units --color -v --docker default --python "${version}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} \ + "${options[@]:+${options[@]}}" \ |